-
-
Notifications
You must be signed in to change notification settings - Fork 455
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(YouTube): Bump compatibility to 18.37.36
#3028
Conversation
74f37c2
to
0726df5
Compare
0726df5
to
7a2869e
Compare
…37.36` -- Needs additional fix for new shorts UI, and needs small fix for old layout too (first short opened does not show dislikes) --
I partially fixed RYD and it works with regular videos. But, it's broken with Shorts in two ways:
|
Do you mean the
If the shorts dislike button is built by Litho, a TextSpec component should be used for the "Dislike" label. This means the same hook can be used as the normal player dislike button to filter the correct TextSpec component using the path builder object. |
Yes hide shorts components. No I haven't checked the litho logs yet.
I haven't checked that either. If it is possible to fix that way, hopefully it doesn't block the video playback or cause the UI to be unresponsive. Will try later. |
I have confirmed that the shorts components now show up in the logs and can be blocked, I'll push a fix for them but constrain the compatibility of this patch to the latest version to get rid of legacy code. |
Would it make sense to keep the legacy code for app spoofing? If the patch later acts up could remove it then, but right now it still works. |
Alright, I'll try to keep it. |
…ding litho components
@LisoUseInAIKyrios It may be possible to filter properly through protobufBufferArray. The abstract class Filter has two fields: But this class is missing a field for
Do you mean filter patterns in the sense of |
The abstract class group lists are always searched for, all the time, for every litho item. The buffer can contain free form text which includes user comments, video descriptions, and more. So it's theoretically possible to match bogus text if the buffer is always searched for each litho item without first checking if the identifier/path is correct. There's also performance issues with always searching the buffer, because the buffer can get enormous in some situations and the overhead is noticable. Surely there must be an identifier or path that can be matched first, and then the buffer is searched inside the patch? That way its certain the buffer is for the item in question, and performance is good because it's only searching the buffer when needed (and most importantly, no false matches on comments or other junk). The patch would have it's own byte filter list that it searches after an identifier/path is matched (like how the hide actions buttons patch works. It has its own buffer search that is checked only after an action button identifier/path is matched).
Both cases should use If there is more than 1 pattern (regardless if it's in a single group or multiple groups), then it should always be filtered using a group list. The individual |
All todos are now ticked. I am not yet entirely sure about the spoof to old version issue as I was not able to reproduce it with the latest commits. Once you give me the green light with ReVanced/revanced-integrations#483 (comment) we should be able to merge. |
There's a new small issue with the new shorts player that's caused by the way litho text is patched. Since the creating and updating of litho components blocks until the RYD fetch is completed, occasionally shorts will either:
A possible fix is to handle this the same way as the old native shorts buttons: get a reference to the dislike litho button on creation, don't block the litho thread, and then update the dislike button asynchronously after RYD fetch completes. For now a temporary fix is to spoof to 18.20.39 which uses the old shorts player. |
Does the video desync with audio or sync after the request is finished? If it desyncs, it may be better to set a shorter timeout. |
When the video unfreezes its in sync with the audio and everything is ok. Previously RYD had this same issue before it was changed to handle shorts asynchronously. So the old issue is basically back but now it's with litho. |
Unfortunately, we do not know any hook that would allow us to get a reference that we can pass via a callback to the future to edit the text, so this is gonna be a limitation. |
I can't find any noticeable differences between 18.37.36 and the current target version. Could merge this after dev to main is merged, so this change will have more time on dev branch before it's eventually merged to main. |
Each patch is constrained to versions. The patches with issues can remain as is (as long as they are compatible with all the previous versions) while the other working patches can be bumped. This branch can then be merged to dev and main. ReVanced Manager will continue to suggest the current version as most patches support it, while being able to patch the latest version either including the patches that do not yet work reliably (toggling in the settings) or without them (default). |
Ok sure. I can't find any other issues and I guess this is ready to go now. |
I've been also testing this version and it works fine, I can personally not reproduce blocking thread issue, but I suppose it occurs on slow networks. Once I'm home, I'll append the new compatible version to the annotation field and merge |
RYD patch lost compatibility with the current supported version. Either we have to revert the changes for RYD patch in this PR or we have to constrain it to the currently working version (with the present issue). |
The current issue won't be fixed anytime soon (add support to alter litho asynchronously). The app can be spoofed to 18.20.39 and that fixes any RYD shorts issues. I think keep the RYD changes and merge. |
# [2.191.0-dev.17](ReVanced/revanced-patches@v2.191.0-dev.16...v2.191.0-dev.17) (2023-09-27) ### Features * **YouTube:** Bump compatibility to `18.37.36` ([#3028](ReVanced/revanced-patches#3028)) ([eda28e5](ReVanced/revanced-patches@eda28e5))
Missing something:
|
@cyberboh will be fixed in next dev release. Use |
# [2.191.0](ReVanced/revanced-patches@v2.190.0...v2.191.0) (2023-10-04) ### Bug Fixes * Add hooks to existing hook set ([5655067](ReVanced/revanced-patches@5655067)) * **Duolingo - Unlock Super:** Get correct instruction offset ([#3023](ReVanced/revanced-patches#3023)) ([5146de8](ReVanced/revanced-patches@5146de8)) * **Google Recorder - Remove device restrictions:** Clarify limitation ([094f57b](ReVanced/revanced-patches@094f57b)) * **Infinity for Reddit - Spoof client:** Constrain patch to last working versions ([#2944](ReVanced/revanced-patches#2944)) ([ee975de](ReVanced/revanced-patches@ee975de)) * **Relay - Spoof client:** Restore OAuth login ([96e01f7](ReVanced/revanced-patches@96e01f7)) * **Slide - Spoof client:** Use correct patch name ([f355dbf](ReVanced/revanced-patches@f355dbf)) * **Sync for Reddit:** Do not throw an error when not necessary ([ef644e4](ReVanced/revanced-patches@ef644e4)) * **TikTok - Hide ads:** Constrain to last working version ([56e45a6](ReVanced/revanced-patches@56e45a6)) * **Twitch - Audio ads:** Support missing version `16.1.0` ([#2928](ReVanced/revanced-patches#2928)) ([688d8fa](ReVanced/revanced-patches@688d8fa)) * Use consistent toggle description ([#2983](ReVanced/revanced-patches#2983)) ([ceaa512](ReVanced/revanced-patches@ceaa512)) * Use correct instruction ([246cf2c](ReVanced/revanced-patches@246cf2c)) * **YouTube - Client spoof:** adjust settings text ([#3035](ReVanced/revanced-patches#3035)) ([59a2e96](ReVanced/revanced-patches@59a2e96)) * **YouTube - Client spoof:** Display seekbar thumbnails in high quality ([5e8a2d3](ReVanced/revanced-patches@5e8a2d3)) * **YouTube - Client spoof:** Do not record feed videos to history by default ([#3017](ReVanced/revanced-patches#3017)) ([5ccbf1b](ReVanced/revanced-patches@5ccbf1b)) * **YouTube - Client spoof:** Removed unused code ([#3030](ReVanced/revanced-patches#3030)) ([15e27bf](ReVanced/revanced-patches@15e27bf)) * **YouTube - Client spoof:** Restore seekbar thumbnails ([bf4a115](ReVanced/revanced-patches@bf4a115)) * **YouTube - Client spoof:** Show seekbar thumbnail for age restricted and paid videos ([1a79300](ReVanced/revanced-patches@1a79300)) * **YouTube - Custom filter:** Use new lines between components instead of commas ([#2952](ReVanced/revanced-patches#2952)) ([ecb2e32](ReVanced/revanced-patches@ecb2e32)) * **YouTube - Hide "Load more" button:** Use correct names ([569c3cd](ReVanced/revanced-patches@569c3cd)) * **YouTube - Hide info cards:** Fix info cards not hiding for some users ([#3039](ReVanced/revanced-patches#3039)) ([cb38637](ReVanced/revanced-patches@cb38637)) * **YouTube - Hide layout components:** Always hide redundant 'player audio track' button ([#2951](ReVanced/revanced-patches#2951)) ([ca632bd](ReVanced/revanced-patches@ca632bd)) * **YouTube - Hide shorts components:** Fix hiding navigation bar ([2de51e6](ReVanced/revanced-patches@2de51e6)) * **YouTube - Premium heading:** Correct inverted logic ([#3042](ReVanced/revanced-patches#3042)) ([b33ed75](ReVanced/revanced-patches@b33ed75)) * **YouTube - ReturnYouTubeDislike:** Revert support for 18.37.36 ([#3041](ReVanced/revanced-patches#3041)) ([3761073](ReVanced/revanced-patches@3761073)) * **YouTube - SponsorBlock:** Adjust import/export UI text ([#3063](ReVanced/revanced-patches#3063)) ([4e5513e](ReVanced/revanced-patches@4e5513e)) * **YouTube - Video Id:** Fix video id not showing the currently playing video ([#3038](ReVanced/revanced-patches#3038)) ([f6f226b](ReVanced/revanced-patches@f6f226b)) * **YouTube:** Restore functionality of `Old video quality menu` and `Custom speeds` on tablets ([#2999](ReVanced/revanced-patches#2999)) ([238bed1](ReVanced/revanced-patches@238bed1)) ### Features * Add notice for thumbnails for age restricted or paid videos ([f7cf70b](ReVanced/revanced-patches@f7cf70b)) * **Duolingo:** Remove `Unlock Duolingo Super` patch ([b4b9746](ReVanced/revanced-patches@b4b9746)) * **SPB Serviceportal Bund:** Add `Remove root detection` patch ([#3049](ReVanced/revanced-patches#3049)) ([481bf58](ReVanced/revanced-patches@481bf58)) * **Strava:** Add `Disable subscription suggestions` patch ([#2997](ReVanced/revanced-patches#2997)) ([af02175](ReVanced/revanced-patches@af02175)) * **Sync for Reddit - Client spoof:** Restore upload functionality ([9344c8a](ReVanced/revanced-patches@9344c8a)) * **TikTok - Hide ads:** Constrain to last working version ([516e8a1](ReVanced/revanced-patches@516e8a1)) * **TU Dortmund:** Add `Show on lockscreen` patch ([#2947](ReVanced/revanced-patches#2947)) ([9a18326](ReVanced/revanced-patches@9a18326)) * **Tumblr:** Add `Disable blog notification reminder` patch ([29f19b9](ReVanced/revanced-patches@29f19b9)) * **Tumblr:** Add `Disable dashboard ads` patch ([#2979](ReVanced/revanced-patches#2979)) ([07c267a](ReVanced/revanced-patches@07c267a)) * **Tumblr:** Add `Disable gift message popup` patch ([a4d6b4e](ReVanced/revanced-patches@a4d6b4e)) * **Tumblr:** Add `Disable in-app update` patch ([#3058](ReVanced/revanced-patches#3058)) ([5e8076b](ReVanced/revanced-patches@5e8076b)) * **Tumblr:** Add `Disable Tumblr Live` patch ([#2987](ReVanced/revanced-patches#2987)) ([bf1f9dc](ReVanced/revanced-patches@bf1f9dc)) * **Twitch - Block embedded ads:** Switch from `ttv.lol` to `luminous.dev` ([0fe115e](ReVanced/revanced-patches@0fe115e)) * Use properties file for `Client spoof` patches ([e5d548c](ReVanced/revanced-patches@e5d548c)) * **YouTube - Hide layout components:** Hide "Join" button ([1b71f89](ReVanced/revanced-patches@1b71f89)) * **YouTube - Hide layout components:** Hide "Notify me" button ([3027c15](ReVanced/revanced-patches@3027c15)) * **YouTube - Hide layout components:** Hide search result shelf header ([f4eda8c](ReVanced/revanced-patches@f4eda8c)) * **YouTube - Hide layout components:** Hide timed reactions ([d0a775d](ReVanced/revanced-patches@d0a775d)) * **YouTube - Premium heading:** Allow using default heading ([#3029](ReVanced/revanced-patches#3029)) ([d5ab35a](ReVanced/revanced-patches@d5ab35a)) * **YouTube - Spoof app version:** add version 18.20.39 ([#3001](ReVanced/revanced-patches#3001)) ([f14c5e7](ReVanced/revanced-patches@f14c5e7)) * **YouTube:** Add `Bypass URL redirects` patch ([125cac5](ReVanced/revanced-patches@125cac5)) * **YouTube:** Bump compatibility to `18.37.36` ([#3028](ReVanced/revanced-patches#3028)) ([eda28e5](ReVanced/revanced-patches@eda28e5))
Depends on ReVanced/revanced-integrations#483
TODO
Remember video quality
: Fix class cast exception (likely offset issue)Return YouTube Dislike
: Failing fingerprintTextComponentAtomicReferenceFingerprint
Return YouTube Dislike
: Add support for new shorts player UI (dislikes do not appear in shorts)Edit: problem is unrelated to 18.37.36Return YouTube Dislike
: Fix shorts player not showing dislikes on first video loadedDisable auto captions
: Fix patching null pointer exceptionHide endscreen cards
: Failing fingerprintLayoutIconFingerprint
Hide Shorts components
: Add support for new shorts UI components (patch does not function)