code-charity / youtube

[top~1 open YouTube & Video web-extension] Enrich your experience & choice! 🧰180+ options & clever features📌set+forget📌Longest-standing(been tough). Please join🧩us👨‍👩‍👧‍👧 ..⋮ {playback|content discovery|player|extra buttons|distractions|related videos|shorts|ads|quality|codec|full tab|full screen}
http://improvedtube.com
Other
3.4k stars 513 forks source link

1060+ extra tweaks to come! Please help us name (/tag) them in advance #2251

Open ImprovedTube opened 4 months ago

ImprovedTube commented 4 months ago

YouTube has over 1060 "experiment flags"

1. My Trashbin (disabled stuff) 2. My Tweaks ( voluntarily enabled or modified YouTube experiments)


Long-term structure/vision for our UI:

  1. my content & discovery logic

  2. my~?setup:
    a) (Web-)Video Features (+specific Youtube Tweaking + Youtube's Experiment Flags , those added by the user) ). b) Youtube: Cleaning/Trashbin (Up to 100s (including disabled Youtube's Experiment Flags) Ideally needed decreasingly often.) c) Youtube Minimap/Layout (more sections, maybe Drag&drop for Sizes, Positions & paint bucket for Colors)

( https://github.com/code-charity/youtube/discussions/848#discussioncomment-588359, https://github.com/code-charity/youtube/issues/890#issuecomment-1034264001 )

while extra exceptions/conditions like video genre could be set for many features on right click. and shortcuts or buttons to toggle any experiment flag or anything could be setup with right click too.

Anoaxx commented 4 months ago

So when next update is going to be pushed to web store?

ImprovedTube commented 4 months ago

guess! @Anoaxx

ImprovedTube commented 2 months ago

the way uBO 'set' works is they put a Proxy over object prototypes https://github.com/gorhill/uBlock/blob/c154aaa69c6a2a4009d43923f1097c6298062b82/assets/resources/scriptlets.js#L556-L586 they even hide proxy presence so YT cant detect it (afaik YT doesnt try, but plenty of shady websites try to detect adblock/overrides) https://github.com/gorhill/uBlock/blob/c154aaa69c6a2a4009d43923f1097c6298062b82/assets/resources/scriptlets.js#L578-L580

This way no matter what inside real yt.config_.EXPERIMENT_FLAGS.kevlar_watch_grid any reader will always receive overridden value. We can definitely implement this, much saner, safer and more reliable than blindly writing to yt.config_.EXPERIMENT_FLAGS.kevlar_watch_grid hoping 1 its there 2 it wasnt read by YT engine yet

thanks @raszpl #2430