[Bug]: `Audio formats are not available for this video` / 360p only streams - SABR
SCROLL DOWN TO THE MOST RECENT MESSAGE FOR THE LATEST UPDATES ON THE ISSUE
Guidelines
- [x] I have encountered this bug in the latest release of FreeTube.
- [x] I have encountered this bug in the official downloads of FreeTube.
- [x] I have searched the issue tracker for open and closed issues that are similar to the bug report I want to file, without success.
- [x] I have searched the documentation for information that matches the description of the bug I want to file, without success.
- [x] This issue contains only one bug.
Describe the bug
When opening a video from search results, or subscription page, rarely (perhaps 1/30 times) a message "Audio formats are not available for this video" is briefly displayed at the bottom of the program and the video will not play. Going back and then re-opening the video seems to always resolve the issue, and the video then plays with no problem.
Expected Behavior
The video should play first time, as audio formats are available, as is evident of retrying the same video a second time and it working.
Issue Labels
inconsistent behavior
FreeTube Version
v0.23.3 Beta
Operating System Version
Microsoft Windows Version 10 22H2 (OS Build 19045:5608)
Installation Method
.exe
Primary API used
Local API
Last Known Working FreeTube Version (If Any)
No response
Additional Information
No response
Nightly Build
- [ ] I have encountered this bug in the latest nightly build.
Quoting the changelog, it literally says don't open bug reports for this:
IMPORTANT Please note that you may occasionally encounter Legacy Formats (available video quality, 360p) while playing a video. This is expected behavior, SO DO NOT SUBMIT BUG REPORTS FOR THIS. In these cases, FreeTube's video playback wouldn't work at all, and an error message (No valid URLs to decipher error) would be shown. This workaround allows users to still watch videos in those cases.
In my experience with this bug, the error will be displayed, and the video won't play at all. If I leave the video page and come back into it a few times, it will eventually work. So, something isn't working properly, and in my opinion it's a legitimate bug, if only because there is inconsistent behavior when viewing the video page multiple times.
In this instance, the error message "No valid URLs to decipher error" is not displayed. Instead the error message "Audio formats are not available for this video" is instead displayed.
I am sorry if this is the same error, however it has an entirely different error dialog.
The whole point of the legacy 360p fallback is that you won't see the "No valid URLs to decipher error" error anymore instead it will show 360p stream. In your case it sounds like it got a SABR only response (no DASH and audio only formats), went into that fallback and is then failing to play the 360p stream for some reason (you will need to provide screenshots of the devtools (CTRL+SHIFT+I) console if you want us to have any idea why) and is then going into the normal error handling in FreeTube which changes between legacy, audio and DASH formats, which of course doesn't work in this case as only the legacy formats are available.
Been having the same issue on and off myself, here's a screenshot of the console. The player behaved as expected after reloading the page.
Experienced the same issue and it resolved itself after reloading video in x64 .deb newest version of Freetube 0.23.4 . When the error "Audio formats are not available for this video" shows the video is not playable.
The console errors that maybe related but its hard to tell:
renderer.js:2 Player Error (category and code explainations here: https://shaka-player-demo.appspot.com/docs/api/shaka.util.Error.html) Video ID: "EtYeJqRxYjM" FreeTube player context: "setLegacyFormat"
Severity: CRITICAL (2) Category: MEDIA (3) Code: VIDEO_ERROR (3016) Stack trace: Error: Shaka Error 3016 at new Ee (app://bundle/renderer.js:2:24640) at kd (app://bundle/renderer.js:2:278026) at app://bundle/renderer.js:2:296865 at HTMLVideoElement.n (app://bundle/renderer.js:2:51425)
shaka-player Data: Array(3) 0 : 4 1 : undefined 2 : "MEDIA_ELEMENT_ERROR: Format error" length : 3 [[Prototype]] : Array(0)
FreeTube data: Object rQ @ renderer.js:2
Unable to play legacy formats. Reverting to audio formats... handlePlayerError @ renderer.js:2
Have this issue myself even on the latest version I have a guess that it got stuck in a failstate while loading the video in legacy formats
DASH failed to load > legacy failed to load > audio failed to load > unplayable
I was having this issue intermittently yesterday, although now it is pretty much every video. I also have this on the latest version. If I close and reopen the video a few times, it will eventually allow me to play it, but the bug is definitely getting worse.
In my case, the error is not intermittent, but quite frequent. Here is a screenshot of console after such an error:
FWIW, if the error cannot be meaningfully resolved, I do think it's worth discussing if we can improve the logging and notification to the user. The error notification message does not match the user's expectation of what is actually occurring, and it disappears so quickly that it can be easily missed, thus occasionally not properly conveying to the user that a terminal error has occurred.
There's also the matter of if we should programmatically route the user places based on terminal video errors, but that's a somewhat separate discussion
Fyi: the user receive the no audio formats error when they get a SABR only response and YouTube throws the 403 for the first few seconds, so FreeTube tries to do it's fallback thing and then shows the no audio formats message because it tried to switch to it.
This wouldnt be an issue at all if SABR was already implemented
FWIW, if the error cannot be meaningfully resolved, I do think it's worth discussing if we can improve the logging and notification to the user. The error notification message does not match the user's expectation of what is actually occurring, and it disappears so quickly that it can be easily missed, thus occasionally not properly conveying to the user that a terminal error has occurred.
There's also the matter of if we should programmatically route the user places based on terminal video errors, but that's a somewhat separate discussion
I agree with this. A more visible/communicative error notification instructing the user to reload the video, and a refresh button as suggested in #7273 would at least improve usability in the meantime while the devs experiment with more permanent solutions.
See https://github.com/FreeTubeApp/FreeTube/issues/7273#issuecomment-2832500603
If it's not valid to refresh the video window using the Ctrl+R shortcut (#7281; though personally, I've never seen this break anything in the application), what's the recommended way to retry loading the video when this error occurs?
When i try ctrl+R, i realized that it erases the whole session history so it is probly more like restarting the application than refreshing the page.
Note, for this video, refreshing does NOT work: https://youtu.be/WPtSoNK8P-A
EDIT: Scratch that, I refreshed 4 times and finally it began working. What an odd bug.
@mkalinski navigate away and navigate back to the watch page
As nice as it is to know that this bug has a workaround, the fact of the matter is that between the frequency that it's been happening going up and the non-intuitiveness of the solution, it should very much be called out as something that needs a better fix in some capacity. I've had to start refreshing videos upwards of four times to get them to work, whereas the problem used to only rear its head once every couple of videos, and a single refresh would do the trick.
(Somewhat relatedly, I was not aware of the CTRL+R key combo, but that is because I'm used to refreshable pages having a refresh button; a refresh button being added to the UI in some regard and the error notification pointing to it could be a good interim patch if the actual problem is one that does not have a simple solution.)
Tried to do the refresh workaround on this video and no matter how much I try, it will not work.
Well, as I was typing this comment, it started working. But the video is stuck in 360p with no option to change it to a higher resolution which is odd.
https://youtu.be/OFQbyCZt6p4
I click on a video. The video doesn't load. It says "Audio formats are not available for this video." No matter how often I click back and forth to the video this doesn't fix it. So this video is unwatchable for me with FreeTube: https://youtu.be/8gDGeXL05PI
Why is this marked as "Not planned", exactly? I's clearly a bug.
Also, why do other players work fine on the video? What are they doing differently to FreeTube?
This is now happening on every video and no videos are playable now. Looks like youtube has added another way to break freetube. I'm using the appimage 23.4.
I believe this issue should be re-opened. Currently, FreeTube is unusable without the fix. The error occurs on every single video and no amount of refreshing can fix it. Similar problem is observed in NewPipe, just like 360p video @quuinnn has described. https://github.com/TeamNewPipe/NewPipe/issues/12126
The issue should be open and pinned so users who are having problem (which will be everyone) can see it and use this thread as an update to fix progress and when they can continue using FreeTube; and not make new duplicate threads and offtopic comments.
It's working for me when I load the videos with external media players (I'm using mpv.)
It's those YouTube boys cracking down again I reckon.
Yeah, it's completely unusable for me as well now. I've reloaded the video 9 times, no signs of improvement. Tried a different video, the same thing. I think this should be reopened as it is no longer a small inconvenience but a complete lack of functionality.
External media players aren't working for me either. Tried mpv, VLC and Celluloid. I've tried switching back and forth between Legacy format. No videos are playable. It does seem like YouTube has cracked down in some way.
the "go back and then go forward" is not working anymore. the error is now persistent & appear on EVERY VIDEO. reloading FreeTube doesn't work either
This is now happening on every video and no videos are playable now. Looks like youtube has added another way to break freetube. I'm using the appimage 23.4.
Someone tell Youtube that we WILL NOT COMPLY!!!
Even Invidious is broken now. Sounds like NewPipe is having issues as well. It's definitely YouTube, seems like. Do we know what they did to cause this?
The issue is almost certainly related to this:
https://github.com/TeamNewPipe/NewPipe/issues/12126 https://github.com/TeamNewPipe/NewPipe/issues/12126#issuecomment-2754182010
YouTube have likely rolled out this change on a wider scale after a few weeks of testing. In the case of NewPipe it is still able to fetch the 360p stream, and it looks as though there is a known fix but it requires changes in the protocol of how clients fetch the streams.