Skip to content
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

bug(Youtube): Default video quality is permanently set to a lower value if the default quality is not available on one video #3872

Closed
3 tasks done
Novgorod opened this issue Nov 7, 2024 · 17 comments · Fixed by #3879
Labels
Bug report Something isn't working

Comments

@Novgorod
Copy link

Novgorod commented Nov 7, 2024

Bug description

The issue is at least several months old but I haven't seen it brought up yet. This sounds similar but that's not it because it doesn't affect just vertical videos.

Image
If you pre-select a particular default video quality (for Wifi or mobile networks) in the Revanced video settings, say 1080p, it will apply this exact quality to every video IF the video provides this quality. If that quality is not available, it selects the next lower one (e.g. 720p or 480p). That's expected behavior. This lower quality setting should be temporary only for this video which lacks the higher default quality. However, this new lower quality is now "stuck" and overrides the default quality for all subsequent videos, even if my default quality is available, until I manually select a higher quality (e.g. 1080p) in the video's quality menu GUI, then it will respect the default setting again. All the while the default quality setting is unchanged in the Revanced video menu (still shows 1080p) but it wrongly sets the quality to the lower value until I manually change it.

Example:
Image
This video only has 240p quality available, which is correctly selected (the default is 1080p as above). Afterwards I play this video with all qualities available up to 4K, so it's supposed to play at 1080p due to my default setting - it does so right away, but only for about 5-10 seconds:
Image
Then it automatically changes to the previously encountered 240p quality:
Image

It looks like the default setting (in the Revanced menu) works initially, but is then wrongfully overridden by some faulty auto-quality behavior which is triggered by encountering a lower max quality than the default one. The "video quality preferences" option in the Youtube app's own menu is set to "higher picture quality", but this should be always overridden with a particular quality (like 1080p) by the Revanced quality setting.

Here is a video recording - note: it changes to 144p in the next video because 240p was not available, but 1080p was, which it started out with. The default settings are the same as shown above.

  • I have checked all open and closed bug reports and this is not a duplicate.
  • I have chosen an appropriate title.
  • All requested information has been provided properly.
@Novgorod Novgorod added the Bug report Something isn't working label Nov 7, 2024
@oSumAtrIX
Copy link
Member

Please attach a video recording of the issue.

@oSumAtrIX oSumAtrIX added the Waiting on author Further information is requested label Nov 7, 2024
@LisoUseInAIKyrios
Copy link
Contributor

Verify the settings about screen says patches v4.17

Old patches could show low resolution video and it was fixed a while ago.

@Novgorod
Copy link
Author

Novgorod commented Nov 7, 2024

Here is a video recording - note: it changes to 144p in the next video because 240p was not available, but 1080p was, which it started out with. The default settings are the same as in the first post.

Patches version is 4.16 - I'll check if it was fixed in 4.17!

@Novgorod
Copy link
Author

Novgorod commented Nov 7, 2024

Verify the settings about screen says patches v4.17

Old patches could show low resolution video and it was fixed a while ago.

Ok, I tested with 4.17 patches and it's the same behavior. Youtube version is still 19.16.39 even though 19.34.42 seems to be the latest according to here but the manager (1.22) with latest patches (4.17) doesn't let me choose it because 19.16.39 is still recommended apparently.

I also now noticed that playing a "normal" video after a low-quality one sets the quality to the highest available setting first (e.g. 4K even if 1080p is default) and after ~5 seconds it changes to the previous low quality (240p or whatever) as shown above. Not sure if it was always like that and I just didn't notice because most videos I tested were 1080p max, or if it's because of the 4.17 patches, but in any case it's still bugged with the latest patches + suggested YT version.

@oSumAtrIX
Copy link
Member

In your video you have not selected the highest video quality first. Can you please set to that first. Also in YouTube settings, change the default video quality to "high"

@Novgorod
Copy link
Author

Novgorod commented Nov 7, 2024

In your video you have not selected the highest video quality first. Can you please set to that first. Also in YouTube settings, change the default video quality to "high"

What do you mean? The first video has a max quality of 240p, which was automatically selected. I just clicked on the cog wheel to show the quality. I've also posted a link to the video where you can verify that 240p is the max quality for it. The second video is set to 1080p right away but after some seconds changes to 240p by itself. If I manually set it to 1080p again, it will of course keep 1080p, and also for the subsequent videos

The Revanced quality setting is supposed to set that quality for every video automatically so I don't have to do it manually - and it works unless I encounter a video with a lower max quality than the one I set as default.

In Youtube's video settings, I've already set "higher picture quality" (see first post); the other options are auto and data saver. The Revanced setting should override that anyway.

@oSumAtrIX
Copy link
Member

There are some debug logs you can capture. In ReVanced misc settings enable debug logging. Use logcat and filter for "RememberVideoQualityPatch" using grep (logcat | grep RememberVideoQualityPatch). Reproduce the issue, capture and send the logs

@Novgorod
Copy link
Author

Novgorod commented Nov 8, 2024

There are some debug logs you can capture. In ReVanced misc settings enable debug logging. Use logcat and filter for "RememberVideoQualityPatch" using grep (logcat | grep RememberVideoQualityPatch). Reproduce the issue, capture and send the logs

I don't see the debug log option in the misc settings. Do I have to enable it in the build somehow?
Image

@oSumAtrIX
Copy link
Member

Use the default selection of patches for that.

@Novgorod
Copy link
Author

Novgorod commented Nov 8, 2024

Use the default selection of patches for that.

Oh right, it's a patch setting. Here's the log output filtered for the video quality patch:

11-08 19:15:55.206 26697 26697 D revanced: RememberVideoQualityPatch: newVideoStarted
11-08 19:15:55.739 26697 26697 D revanced: RememberVideoQualityPatch: videoQualities: [-2, 2160, 1440, 1080, 720, 480, 360, 240, 144]
11-08 19:15:55.739 26697 26697 D revanced: RememberVideoQualityPatch: Quality changed from: 360 to: 1080
11-08 19:16:16.578 26697 26697 D revanced: RememberVideoQualityPatch: newVideoStarted
11-08 19:16:16.888 26697 26697 D revanced: RememberVideoQualityPatch: videoQualities: [-2, 2160, 1440, 1080, 720, 480, 360, 240, 144]
11-08 19:16:16.888 26697 26697 D revanced: RememberVideoQualityPatch: Quality changed from: -2 to: 1080
11-08 19:16:42.637 26697 26697 D revanced: RememberVideoQualityPatch: newVideoStarted
11-08 19:16:42.961 26697 26697 D revanced: RememberVideoQualityPatch: videoQualities: [-2, 240, 144]
11-08 19:16:42.961 26697 26697 D revanced: RememberVideoQualityPatch: Quality changed from: -2 to: 240

@oSumAtrIX
Copy link
Member

So where does it change to 240 when there's 1080?

@Novgorod
Copy link
Author

Novgorod commented Nov 8, 2024

So where does it change to 240 when there's 1080?

hmm, looks like the logs are incomplete, the last video after the 240p one is missing.. let me try again..

@Novgorod
Copy link
Author

Novgorod commented Nov 8, 2024

@oSumAtrIX Ok I investigated a bit more and it's now clearer what's going on. In the log above, there are 3 videos - the first one was a "normal" one with all qualities (4k to 144p), the second one was the 240p video (!) but its quality list was enumerated wrongly as 4k to 144p.. The plugin selects 1080p but it's not available so youtube defaults to the highest available (240p), but it's not shown in the log because it's set by youtube, not by the plugin. The third video in the list is a "normal" one again with all qualities, but it's enumerated wrongly as [-2, 240, 144] which is the quality list from the previous video - here it sets the quality wrongly to 240p because it thinks that's the highest available. Running logcat | grep RememberVideoQualityPatch in the terminal shows the log live while I click on a video, so I could observe this exact behavior...

So it looks like the plugin somehow caches the qualities list from the previous video instead of the current one. Not sure if it happens only in some cases or always.

@LisoUseInAIKyrios
Copy link
Contributor

What video did you use that is 240p?

@Novgorod
Copy link
Author

Novgorod commented Nov 9, 2024

What video did you use that is 240p?

The link is in the first post under the screenshot.

The issue affects any video that has a lower quality than the default you set, not just 240p.

@LisoUseInAIKyrios
Copy link
Contributor

Fixed in latest release

@Novgorod
Copy link
Author

Fantastic, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug report Something isn't working
Projects
None yet
3 participants