Skip to content

Conversation

@LisoUseInAIKyrios
Copy link
Contributor

@LisoUseInAIKyrios LisoUseInAIKyrios commented Sep 25, 2025

Adds support for newer versions of YouTube using unreleased patcher instruction filters API.

 

How to use these patches now

Before these changes are merged, you can patch now using a computer with command prompt and CLI tools.

Download an unreleased CLI tools from here:
https://github.com/LisoUseInAIKyrios/revanced-cli/releases/tag/v6.0.0-dev.2

Download this branch as a release here:
https://github.com/LisoUseInAIKyrios/revanced-patches/releases/tag/liso-v6.0.0-dev.2

Then patch as usual with CLI. See CLI documentation if you've never patched with CLI before.

 

Regarding patching 20.22.36 and higher.

20.22+ Litho buffer filtering is now dramatically different from previous versions of YouTube. New litho filtering limitations currently exist due to internal changes made by YouTube and the Meta Litho framework.

Current ReVanced litho limitations when patching 20.22.36+

  • Cannot hide player/Shorts action buttons. In the future this theoretically can be fixed by forcing on a new client flag that uses non litho action buttons and patching a few places in the app.
  • Litho custom filters that use the buffer may not work, or the custom filter may also hide the parent UI component.
  • Hide keyword filters cannot hide individual Shorts in a Shorts shelf. If any Short matches a keyword, then the entire shelf is hidden.
  • Potential for unidentified litho filtering issues of some ReVanced hide settings (only affects hide settings that use the litho buffer).

 

Supported YouTube app targets:

YouTube 20.14.43

  • All patch features work.

YouTube 20.21.37

The recommended target for most users

  • All patch features work.

YouTube 20.31.40

Only recommended if you don't care about hiding player action buttons or hiding Shorts player components. Not the overall recommended app target.

  • Adds ReVanced bold setting icons.
  • Adds minor new patch features such as fullscreen large seekbar.
  • Wide search bar patch is no longer available.
  • Hide buttons patch cannot hide player action buttons (patch is not included by default)
  • Hide Shorts components patch cannot hide Shorts buttons (patch is not included by default).
  • Note: YouTube targets from here and higher no longer support Android 8.0 and 9.0 is the minimum supported version.

YouTube 20.47.32

Recommended only if you want to use the latest version with lots of A/B tests. Must turn off version constrains when patching. Only recommended for those who like to tinker with software and they accept that some patch functionality may not work.

  • Dislikes may not show in regular player or Shorts player.
  • Notification tab icon does not show selected state when active.
  • Lots of YouTube A/B tests that only affect some users. Has a higher chance of some patch features not working correctly for some users, or the patches work but the app has weird and unusual UI layouts and features.
  • Much higher chance of playback issues due to unidentified A/B flags that break playback.

…tion_filters

# Conflicts:
#	patches/api/patches.api
#	patches/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/PermanentShufflePatch.kt
#	patches/src/main/kotlin/app/revanced/patches/music/misc/spoof/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/music/misc/spoof/SpoofClientPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt
…tion_filters

# Conflicts:
#	patches/api/patches.api
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/Fingerprints.kt
…tion_filters

# Conflicts:
#	extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/StreamingDataRequest.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/LicenseActivityHook.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java
#	patches/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/PermanentRepeatPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/DownloadsPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/layout/theme/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/misc/extension/hooks/ApplicationInitHook.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/shared/Fingerprints.kt
…tion_filters

# Conflicts:
#	extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/StreamingDataRequest.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LithoFilterPatch.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter.java
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/viber/ads/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt
…tion_filters

# Conflicts:
#	patches/api/patches.api
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt
…tion_filters

# Conflicts:
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java
#	patches/src/main/kotlin/app/revanced/patches/music/layout/navigationbar/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/layout/player/fullscreen/OpenVideosFullscreenPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/FixBackToExitGesturePatch.kt
…tion_filters

# Conflicts:
#	extensions/music/src/main/java/app/revanced/extension/music/settings/GoogleApiActivityHook.java
#	extensions/shared/library/src/main/java/app/revanced/extension/shared/Utils.java
#	extensions/shared/library/src/main/java/app/revanced/extension/shared/checks/Check.java
#	extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseActivityHook.java
#	extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ColorPickerPreference.java
#	extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/CustomDialogListPreference.java
#	extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ToolbarPreferenceFragment.java
#	extensions/twitch/src/main/java/app/revanced/extension/twitch/settings/TwitchActivityHook.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/AlternativeThumbnailsPatch.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HidePlayerOverlayButtonsPatch.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/theme/SeekbarColorPatch.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/SearchViewController.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/YouTubeActivityHook.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ExternalDownloaderPreference.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SkipSponsorButton.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController.java
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/VideoQualityDialogButton.java
#	patches/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/PermanentShufflePatch.kt
#	patches/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/HideUpgradeButtonPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/music/misc/settings/SettingsPatch.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsPatch.kt
…tion_filters

# Conflicts:
#	extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/RemoveTrackingQueryParameterPatch.java
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/privacy/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt
…tion_filters

# Conflicts:
#	patches/src/main/kotlin/app/revanced/patches/youtube/shared/Fingerprints.kt
…tion_filters

# Conflicts:
#	patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt
…tion_filters

# Conflicts:
#	patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/Fingerprints.kt
#	patches/src/main/kotlin/app/revanced/patches/music/misc/extension/hooks/ApplicationInitHook.kt
#	patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/Fingerprints.kt
@LisoUseInAIKyrios

This comment was marked as resolved.

@MarcaDian
Copy link
Contributor

MarcaDian commented Nov 19, 2025

Even 20.14 is now infected with a\b flags (or some kind of javascript) to change the channel action bar below the player. For me it turns on and off from time to time (there are even several closed issues about this at the moment)

PS: this bar #6000 (comment)

@LisoUseInAIKyrios
Copy link
Contributor Author

Do dislikes show? Does turning off the hooked client flags fix it?

@MarcaDian
Copy link
Contributor

MarcaDian commented Nov 19, 2025

I've already written somewhere here before, this panel is not controlled by flags, or they haven't been hooked yet. You then suggested that it's possible that it's controlled server-side (via a java script)

At the same time, dislikes work in both versions of the panel for me.

Although I have already seen 4 versions of this panel: the full one, which is currently untouched in 20.14, the short hybrid, and the short hybrid without inscriptions, and full with the panel expand button

@LisoUseInAIKyrios
Copy link
Contributor Author

If dislikes still work then it's still litho based.

@MarcaDian
Copy link
Contributor

MarcaDian commented Nov 19, 2025

"Another" fork has a commit for remove ads from shorts if you are interested (I don't watch them).

@LisoUseInAIKyrios
Copy link
Contributor Author

LisoUseInAIKyrios commented Nov 19, 2025

I saw but it doesn't fix Shorts still showing ads for some users. Instead it separates the ad-blocking part of swap create with notification tab to be more selective, so shorts ads are blocked for (most) users independently from the nav bar settings.

@Figim
Copy link

Figim commented Nov 19, 2025

Hi guys. When will this PR be merged?

@MarcaDian
Copy link
Contributor

MarcaDian commented Nov 19, 2025

Some notes.

Sometimes exiting the application when pressing back does not work, often happens when I just opened the application.

Screenrecorder-2025-11-19-18-00-35-803.mp4

Also at 20.46.35 I got an animation of hiding the navigation bar when scrolling.
PS: I remember the navigation bar was transparent with a matte effect? but now it's opaque black.

Screenrecorder-2025-11-19-18-02-38-739.mp4

@MarcaDian
Copy link
Contributor

Hi guys. When will this PR be merged?

Probably never)

@Figim
Copy link

Figim commented Nov 19, 2025

Hi guys. When will this PR be merged?

Probably never)

Why bro?

@LisoUseInAIKyrios
Copy link
Contributor Author

LisoUseInAIKyrios commented Nov 19, 2025

Hi guys. When will this PR be merged?

Probably never)

In January it will be the 1 year anniversary of this PR. Can we throw a birthday party (or a funeral?).

You can patch using CLI tools now as explained in the first post.

Maybe someone will setup a one off Flutter manager with the instruction filtering patcher changes, and then it can be patched using https://github.com/LisoUseInAIKyrios/revanced-patches/ as an alternative source in ReVanced Manager.

Or someone makes a one off Manager compose build with instruction filter patcher, and then it can be patched using a rvp file.

@0xrxL
Copy link

0xrxL commented Nov 20, 2025

Today I updated the action buttons filtering patch, and I must admit that this new layout (renamed to "compactify") it's not bad, when there are just few buttons (there's nothing after the "save" button).

Screenshot_20251120_094232

@MarcaDian
Copy link
Contributor

it's not bad, when there are just few buttons (there's nothing after the "save" button).

Is there any empty space left between hidden buttons?

@LisoUseInAIKyrios
Copy link
Contributor Author

Is there any empty space left between hidden buttons?

No the empty space is hidden. It uses code from a fork that infers what action buttons exist and what order they appear in (without using litho hooks). The buttons are then hidden (including the padding) based on the button/padding index and it doesn't use the litho buffer.

If no other way is found, it would be a solution for the 20.22+ litho buffer limitation that prevent using the buffer to hide action buttons. Because right now the only major unresolved issue with going past 20.21 is no way to hide the player action buttons.

@MarcaDian
Copy link
Contributor

MarcaDian commented Nov 20, 2025

If no other way is found, it would be a solution for the 20.22+ litho buffer limitation that prevent using the buffer to hide action buttons.

But we know who is against such a solution. Well, it seems like this fork is preparing to support versions above 20.21, but is waiting for some actions from ReVanced.

@0xrxL
Copy link

0xrxL commented Nov 20, 2025

@LisoUseInAIKyrios Something good for Android_VR client (properties without SABR and a more fast loading)

inotia00/revanced-patches@c8e8e5d

@oSumAtrIX
Copy link
Member

oSumAtrIX commented Nov 20, 2025

As long as it makes an additional API call, it can't be implemented. Users are hit with anti bot warnings because there's more than one request already preventing playback and adding one more API call will make this even worse. This is not hard to grasp. An additional call is not permitted. The only way to hide action buttons is allowed is locally. The stringified ViewComponent objects should expose enough information to filter

@yonggamer
Copy link

how about adding suport for 20.26.46

@oSumAtrIX
Copy link
Member

And why

@yonggamer
Copy link

it is the last version for android 8

@oSumAtrIX
Copy link
Member

And how does it make any difference to use 20.21 as the latest

@OrdinaryPerson0
Copy link

20.22+ Litho buffer filtering is now dramatically different from previous versions of YouTube. New litho filtering limitations currently exist due to internal changes made by YouTube and the Meta Litho framework.

@yonggamer That's why

@MarcaDian
Copy link
Contributor

MarcaDian commented Nov 20, 2025

how about adding suport for 20.26.46

I think you can safely patch this version, after disabling the recommended version check in the CLI or ReVanced manager (in the future).

@LisoUseInAIKyrios LisoUseInAIKyrios changed the title feat(YouTube): Support YouTube targets 20.21.37, 20.31.40 feat(YouTube): Support versions 20.21.37, 20.31.40 Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants