revanced-patches
revanced-patches copied to clipboard
feat(YouTube): Allow selecting video codec and other advanced audio / video format options
Application
Youtube
Issue
Currently there is only a simple quality selection menu, which can only select quality, but not codec nor framerate
Patch
provide more choices to user. For example, from 1080p60 to 1080p60, vp9, 5.0Mbit, similar to that of SmartTube. remember-quality should also be able to remember the spectific quality, framerate, codec. As theres more formats available, if remember-quality could change to order the priority of different qualities, then it would be nice.
1080p30, vp9, 2.26Mbit, HDR
1080p30, avc, 5.07Mbit
1080p30, av1, 2.22Mbit
720p30, vp9, 0.91Mbit
720p30, avc, 0.95Mbit
720p30, av1, 1.1Mbit
...
Motivation
- codec selection
- not all codec are created equal
- some device handle one codec better than others
- can choose not to enable HDR (depends on server)
- can choose 30fps instead of 60fps
- some phone might not have 60fps+ screens
- less battery usage
- less data usage
- possibly solve the following issues:
- ReVanced/revanced-patches-template#1877
- ReVanced/revanced-patches-template#1909
- ReVanced/revanced-patches-template#1950
- ReVanced/revanced-patches-template#2104
- All further issues on (not) prioritize/force X codec
Acknowledgements
- [X] I have searched the existing issues and this is a new and no duplicate or related to another open issue.
- [X] I have written a short but informative title.
- [x] I filled out all of the requested information in this issue properly.
Moved from #744
What I was thinking on ordering or ranking quality preference menu could be like:
Prefered video qualities, automatically falls back to the next if not available
- 1080p60, VP9+HDR
- 1080p60, VP9
- 1080p30, AVC
- 720p60, VP9
- 720p30, AVC
Lock order [ True | False ] The highest prefered quality [ will | will not ] change when you select new quality in player
Related PR: ReVanced/revanced-patches#1242 Bumping this issue for attention as this was asked quite a lot in reddit.
Even if this is too complex to implement, having something simpler similar to the H264ify extension on web browsers would still be very nice to have. The way the H264ify extension works is by spoofing the browser not having support for VP8/9 and AV1 so YT only offers H264/AVC. Something like that should be simpler to implement on ReVanced by spoofing an older device that does not have VP9 decoding. The old Vanced had partial support to this where you could spoof your device to a SM-T(any number) and it would not show 60 FPS streams. But that wasn't enough to block VP9 (it even showed your real device model at the top of Stats for Nerds), the only way to block it was editing the build.prop which is very not-ideal. So something similar to the "Spoof old app version" but instead it spoofs an old device instead could work and be easier to implement if OP's idea turns out to not be viable or too hard to implement.