Removes ads and unwanted feed content from the official YouTube Android app, skips SponsorBlock segments, and adds fullscreen brightness/volume swipes and original-audio selection. Each removal is authorized by a compiled Brainfuck policy. The host is a single XAX semantic store.
| Feature | Default |
|---|---|
| Video, feed/search and shopping ads | On |
| Sponsored Shorts, removed before the pager is built | On |
| Premium, fullscreen and engagement-panel promotions | On |
| SponsorBlock skipping (sponsor, self-promotion; other categories optional) | On |
| Playables shelves, cards and Explore entry | Hidden |
| Preview videos, Explore more topics, posts | Hidden |
| Shorts in feeds | Shown |
| AI channels, high and medium confidence (AiSList) | Off |
| Fullscreen swipes: left brightness, right media volume | On |
| Prefer the original audio track | On |
Settings are under YouTube → You → Settings → YoutubeHideAds. Reload a feed after changing its switches.
com.google.android.youtube
Select YouTube as the module's only scope.
- A rooted arm64 device with a framework that implements libxposed API 102: Vector or current LSPosed.
- Android 9 (API 28) or newer.
- The official YouTube app. Tested on 21.41.525.
- Install the APK from the release attached to this repository.
- Enable YoutubeHideAds in the manager, with YouTube as its only scope.
- Force-stop YouTube, then reopen it.
- Log entries are tagged:
YouTubeHideAds:
On a cold start the log reports the startup self-checks (531 in total) followed by Hook installed lines.
Measured on a Pixel 8 Pro, Android 17, YouTube 21.41.525 and Vector 2.2. All 531 startup self-checks pass, every hook installs, and video ads, feed ads, sponsored Shorts and Playables are removed live. Premium, fullscreen and panel promotions passed controlled hook tests; naturally delivered positives remain unverified. Other YouTube versions and devices are not certified.
| Problem | Suggested action |
|---|---|
| No module log entries | Check that the module is enabled with YouTube in scope, then force-stop YouTube. |
UnsatisfiedLinkError right after an update |
Let the update settle, then force-stop and reopen YouTube. The manager can briefly keep the old APK path. |
A self-check reports false |
The module will not act on that feature. Capture the YouTubeHideAds: log and open an issue. |
| A hook is missing after a YouTube update | YouTube changed an internal structure. Capture the log and open an issue. |
| Project | Contribution |
|---|---|
| DexKit by LuckyPray | Structural discovery of obfuscated classes and methods. Apache-2.0. |
| libxposed, Vector | Hooking API and framework. |
| SponsorBlock | Community segment data, fetched through a privacy-preserving hash prefix. |
| Override92/AiSList | Optional AI-channel lists, CC BY-NC 4.0; not bundled. |
| Morphe Patches | Behavior reference; no implementation copied. |
Not affiliated with, endorsed by or sponsored by Google LLC or YouTube. The module changes the app's behavior in memory on the user's own device and does not redistribute the YouTube APK. It contacts only SponsorBlock and, if enabled, the AiSList download. Provided for personal use. YouTube updates may break hooks without notice.