FreeTube
FreeTube copied to clipboard
[Bug]: [BAD_HTTP_STATUS: 403] Potential causes: IP block or streaming URL deciphering failed
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
Followup to #6701, which is locked. After the fix update came out, some videos still give the error on the first attempt, but backing out and then reopening them work. (e.g. https://youtu.be/-CBGK2Xujs8). I'm not sure what the factor is that make some videos still affected and most of the others not, and sorry for the obvious dupe, but the existing thread is locked and hoped the link to an example video might be helpful.
Expected Behavior
The video plays
Issue Labels
inconsistent behavior
FreeTube Version
v0.23.2 Beta
Operating System Version
Windows 10 2H22
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.
I'm experiencing the same - this bug is not fixed. It's improved as videos will play after retrying, but the error still occurs frequently enough to be annoying.
Just to clarify what is probably going on, the other issue was fixed but now something else is causing problems. The error message you are getting is the same because YouTube just returns a 403 status code when something goes wrong but they don't specify what went wrong, so all we can show you is "something went wrong, we can't tell you what exactly but here are some things that have been known to cause it in the past, it could also be something else".
@Targren @phenty please provide the following info:
- Do you use a VPN?
- Do you use a Proxy?
- Do you use the Local API?
- Is the following setting enabled or disabled: Settings -> Player -> Proxy through Invidious?
- What is the default video format that you're using: Settings -> Player -> Default video format?
VPN is turned off. When it's on I get a different message (YouTube has blocked your IP address). No proxy Using Local API Proxy through invidious is off (and greyed out) Default video format is DASH
[BAD_HTTP_STATUS: 403] Potential causes: IP block or streaming URL deciphering failed
I use a VPN. Sometimes all I have to do is change location, but lately all locations still get the error. Even my local ISP IP address gets the message.
Work arounds that have worked for me until recently.
- Add a Celluloid as external player and open video in external player, works every time even IP that seems to break internal player.
- I also exported my subscriptions list. Install Feedbro - Advanced RSS Feed Reader in my browser (Librewolf) and import those subscriptions into Feedbro. Of course I also use uBlock Origin and SponsorBlock in my browser along with using a VPN.
I appreciate what you do, I hope this can be resolved.
-
Do you use a VPN? No
-
Do you use a Proxy? No
-
Do you use the Local API? Yes
-
Is the following setting enabled or disabled: Settings -> Player -> Proxy through Invidious? Turned off (setting seems to be disabled/grayed out)
-
What is the default video format that you're using: Settings -> Player -> Default video format? DASH Formats
This issue has already been discussed in #6701 they released a hotfix for in 23.2 i couldent use freetube untill jsuta few days ago for days ago if i remeber correctly. mpv didnt work neither the public invidious instances except for one and my self hosted invidious instance i figured out that mpv was a issue on my end where installing yt-dlp fixed it as for my invidious instance it was very outdated and wasnt storing dash formats in the settings. im not on the latest version of freetube but i no longer get this error messege they fixed it on 0.23.2 and yet i can use it fine on 0.23.1 it must be a error on your end and probbaly a separate error entirely
I had the same issue. I was running FreeTube on the Flatpak. I uninstalled the Flatpak along with user settings, reinstalled it from base, and the issue seems resolved for me. Not sure what happens on the backend, but I hope this provides some useful info, esp if this fix can be replicated with other users.
I'm still getting the error after the 0.23.2 hotfix that was supposed to solve it. No VPN.
30 videos in I had the same error. On reload the video played ok. Debian 12 installed via deb package. No VPN
Something very strange on my end. Because I'm using the Flatpak version the update wasn't pushed until today (or yesterday, I didn't check). So I'm still on v0.23.1, ready to update and then... Freetube is now working flawlessly. Without me updating.
v0.23.1 No reload, no fallback to Invidious, it just works. I'm using a VPN, Local API, DASH formats, no Proxy.
(Sending a bug report when things work is a bit odd, I know, but a bug that resolves itself is a rare thing. Does that help in any way?)
Same here using Appimage on Debian with VPN turned on and off.
Short time solution could be auto retry when having any kind of connection related issues.
FT_v0.23.1n5653 does not give the error(most avc1/DASH), and with FT_v0.23.2n5663 it occurs again. Before the repair, autoplay looked like it was activated before loading the first part of the video buffer and separately could cause a playback error. (Win10 FT_v0.23.1n5653 Portable).
Linux Mint 21.3 Cinnamon, Freetube v0.23.2 Beta Appimage,
no VPN, no proxy, local API, Proxy Videos Through Invidious is disabled, DASH Formats as Default video format
I have encountered the 'deciperhing failed' again. I was able to grab the console output from one of those incidents; I hope it helps. Yes, there are a few dead channels in the subscriptions. Navigating backwards once or twice, then the video played.
[...]
Failed to load resource: the server responded with a status of 404 ()
www.youtube.com/feeds/videos.xml?channel_id=UCWjrCQdeJ4yGPrxvaPcn_cg:1
Failed to load resource: the server responded with a status of 404 ()
www.youtube.com/feeds/videos.xml?channel_id=UC98nMIxmpaBgaR6mezPsCAQ:1
Failed to load resource: the server responded with a status of 404 ()
KMyHX7mqeDtj34bnBg7rBm4E1QhJVDPy01RiDFssh-K6K4ioQU1Tg_mBoCb1wvhMy1tJgBi9dQ=s176-c-k-c0x00ffffff-no-rj:1
Failed to load resource: the server responded with a status of 404 ()
JBFyjzaasgysHlwmRVSJbPk-CQP5LTPVKpq5dvm5RhXBXwOxS8u4pgxu2sCPAPZlGc1BckQI=s176-c-k-c0x00ffffff-no-rj:1
Failed to load resource: the server responded with a status of 404 ()
CbeODylzW2bdpspzDoGIkkcE0IirKvCRhNteSs6rdwaR_Aa5N7kSACJWrNxVwfG1lkQSOJd2mA=s176-c-k-c0x00ffffff-no-rj-mo:1
Failed to load resource: the server responded with a status of 404 ()
ducKlNqBWgzMdiHVsHhR3N3ORgleaE4bULvdzo57xuEXZeOB-fP7sUPsc8qDS4OUqsa1Ee7ED1g=s160-c-k-c0x00ffffff-no-rj:1
Failed to load resource: the server responded with a status of 404 ()
-T7DFQEKNO_WWwGUujxglK6jDY4gldxs3hjpzco0SezBOlJkdRMxmknAGkeuXCoZo4KWNyjlUg=s176-c-k-c0x00ffffff-no-rj:1
Failed to load resource: the server responded with a status of 404 ()
KrSepKsPtnNYwggIRVu4I9E5q3268utgldDU-ZzClVUH1itzofkxAx2mjkiPXfn3pQRtymy_s4U=s176-c-k-c0x00ffffff-no-rj:1
Failed to load resource: the server responded with a status of 404 ()
_WMsTG7eBUmxWMoJMVFVtldnkolArV3sDeQkAyTFfIkHpY2wJfaSXfNpdYnlLei7-zJrWtxA=s176-c-k-c0x00ffffff-no-rj:1
Failed to load resource: the server responded with a status of 404 ()
renderer.js:2 [YOUTUBEJS][Parser]: UG: Type mismatch, got MerchandiseShelf expected VideoDescriptionHeader | ExpandableVideoDescriptionBody | VideoDescriptionMusicSection | VideoDescriptionInfocardsSection | VideoDescriptionCourseSection | VideoDescriptionTranscriptSection | VideoDescriptionTranscriptSection | HorizontalCardList | ReelShelf | VideoAttributesSectionView | HowThisWasMadeSectionView.
at iV (app://bundle/renderer.js:2:1454998)
at dV (app://bundle/renderer.js:2:1463168)
at hV (app://bundle/renderer.js:2:1463663)
at new Z_ (app://bundle/renderer.js:2:1292374)
at dV (app://bundle/renderer.js:2:1463379)
at new tC (app://bundle/renderer.js:2:1292557)
at dV (app://bundle/renderer.js:2:1463379)
at hV (app://bundle/renderer.js:2:1463663)
at uV (app://bundle/renderer.js:2:1462058)
at new BV (app://bundle/renderer.js:2:1469414)
2 @ renderer.js:2
renderer.js:2 jG: No valid URL to decipher
at fW.decipher (app://bundle/renderer.js:2:1673429)
at YU.decipher (app://bundle/renderer.js:2:1453579)
at lX (app://bundle/renderer.js:2:1830612)
at oX (app://bundle/renderer.js:2:1830245)
at async r.getVideoInformationLocal (app://bundle/renderer.js:2:2292413)
getVideoInformationLocal @ renderer.js:2
Chrome is moving towards a new experience that allows users to choose to browse without third-party cookies.
[...]
#######TONS OF THE SAME MESSAGE BEING REPEATED#######
[...]
Chrome is moving towards a new experience that allows users to choose to browse without third-party cookies.
iv.ggtyler.dev/api/v1/videos/7Tc9FfWB4Fk?:1
Failed to load resource: net::ERR_TIMED_OUT
renderer.js:2 Invidious API error https://iv.ggtyler.dev/api/v1/videos/7Tc9FfWB4Fk? TypeError: Failed to fetch
at XK (renderer.js:2:1767832)
at renderer.js:2:1768037
at new Promise (<anonymous>)
at QK (renderer.js:2:1767927)
at oY (renderer.js:2:1769124)
at r.getVideoInformationInvidious (renderer.js:2:2300814)
at r.getVideoInformationLocal (renderer.js:2:2300686)
(anonymous) @ renderer.js:2
renderer.js:2 TypeError: Failed to fetch
at XK (renderer.js:2:1767832)
at renderer.js:2:1768037
at new Promise (<anonymous>)
at QK (renderer.js:2:1767927)
at oY (renderer.js:2:1769124)
at r.getVideoInformationInvidious (renderer.js:2:2300814)
at r.getVideoInformationLocal (renderer.js:2:2300686)
(anonymous) @ renderer.js:2
renderer.js:2 TypeError: Failed to fetch
at XK (renderer.js:2:1767832)
at renderer.js:2:1768037
at new Promise (<anonymous>)
at QK (renderer.js:2:1767927)
at oY (renderer.js:2:1769124)
at r.getVideoInformationInvidious (renderer.js:2:2300814)
at r.getVideoInformationLocal (renderer.js:2:2300686)
(anonymous) @ renderer.js:2
renderer.js:2 MediaImage src can only be of http/https/data/blob scheme: app://bundle/index.html
mounted @ renderer.js:2
Ht @ renderer.js:2
wi @ renderer.js:2
insert @ renderer.js:2
T @ renderer.js:2
(anonymous) @ renderer.js:2
e._update @ renderer.js:2
n @ renderer.js:2
e.get @ renderer.js:2
e.run @ renderer.js:2
Li @ renderer.js:2
(anonymous) @ renderer.js:2
Xt @ renderer.js:2
Promise.then
Wt @ renderer.js:2
ti @ renderer.js:2
open @ renderer.js:2
LJ @ renderer.js:2
(anonymous) @ renderer.js:2
renderer.js:2 Player Error (category and code explainations here: https://shaka-player-demo.appspot.com/docs/api/shaka.util.Error.html)
Video ID: "7Tc9FfWB4Fk"
FreeTube player context: "loading dash/audio manifest and setting default quality in mounted"
Severity: CRITICAL (2)
Category: NETWORK (1)
Code: UNSUPPORTED_SCHEME (1000)
Stack trace:
Error: Shaka Error 1000
at new Ee (app://bundle/renderer.js:2:24640)
at la (app://bundle/renderer.js:2:97084)
at app://bundle/renderer.js:2:101205
at app://bundle/renderer.js:2:99035
at app://bundle/renderer.js:2:99276
shaka-player Data: [re]
KQ @ renderer.js:2
Ae @ renderer.js:2
Ve @ renderer.js:2
await in Ve
(anonymous) @ renderer.js:2
await in (anonymous)
Ht @ renderer.js:2
wi @ renderer.js:2
insert @ renderer.js:2
T @ renderer.js:2
(anonymous) @ renderer.js:2
e._update @ renderer.js:2
n @ renderer.js:2
e.get @ renderer.js:2
e.run @ renderer.js:2
Li @ renderer.js:2
(anonymous) @ renderer.js:2
Xt @ renderer.js:2
Promise.then
Wt @ renderer.js:2
ti @ renderer.js:2
open @ renderer.js:2
LJ @ renderer.js:2
(anonymous) @ renderer.js:2
renderer.js:2 Unable to play DASH formats. Reverting to legacy formats...
handlePlayerError @ renderer.js:2
Ht @ renderer.js:2
i @ renderer.js:2
Ht @ renderer.js:2
e.$emit @ renderer.js:2
Ae @ renderer.js:2
Ve @ renderer.js:2
await in Ve
(anonymous) @ renderer.js:2
await in (anonymous)
Ht @ renderer.js:2
wi @ renderer.js:2
insert @ renderer.js:2
T @ renderer.js:2
(anonymous) @ renderer.js:2
e._update @ renderer.js:2
n @ renderer.js:2
e.get @ renderer.js:2
e.run @ renderer.js:2
Li @ renderer.js:2
(anonymous) @ renderer.js:2
Xt @ renderer.js:2
Promise.then
Wt @ renderer.js:2
ti @ renderer.js:2
open @ renderer.js:2
LJ @ renderer.js:2
(anonymous) @ renderer.js:2
No valid URL to decipher
That's a new and very concerning error message, it means that the only streaming URL in the response was the legacy 360p one and that DASH playback has to use the SABR URL, something that will require a lot of work to get working with the player (we will basically have to build a translation layer between the video player and the SABR requests and responses to and from YouTube).
I have the same issue, my current workaround is just using FreeTube to subscribe and track the videos, but then copy the YT link and paste it into mpv, that works fine for me.
This issue seem to come and go for me, without any setting changes etc. MPV seem to be reliable however.
I have had the same issue. I have found that by going back and forth between 2 videos I can often get playback to work. but i have to do this fro each video, and sometimes many times. but not using the current version. I went back to a number of precious versions. when i went back to 22.0 beta i accidently clicked on one of the arrows to got foreward page/ back page more than once. and a video started playing.
have not tried that with other versions.
windows 10 10.0.19045 ryzen 5800 6900xt 64gig ram MB msi ms-7a38
this fixed it for me: change from Invideous API to Local API.
Same issue on and off. The problem was solved after updating to v0.23.2 Beta and started again from now. There is also no instance with API available for Invidious.
Same issue on and off. The problem was solved after updating to v0.23.2 Beta and started again from now. There is also no instance with API available for Invidious.
Try some of these:
@uncharted-user
working now thanks for help
Try some of these:
I don't see any instance with API in https://api.invidious.io/
Not ideal, but I have found that if you back-page out of the video's page and reopen it, it will play. Sometimes it takes even three or four times, but it will eventually play. As I said, not ideal, but if seeing the video is important, that will make it possible.
i may try that "back then go back to the video" thing someone suggested and I hate to contribute to the "noise" but I had this same issue, the beta seemed to work for me (newest beta .. 0.23.x i think worked for a day or so, and then later that night, the 403 was back. I do see some other YT related "apps" playing the same cat and mouse game with YT fixing this latest issue
Not ideal, but I have found that if you back-page out of the video's page and reopen it, it will play. Sometimes it takes even three or four times, but it will eventually play. As I said, not ideal, but if seeing the video is important, that will make it possible.
Not working anymore!
I encountered this issue today, it's become much more infrequent since 0.23.2 Beta but it's still there.
FreeTube version: 0.23.2 Beta Operating System Version: Debian Unstable Installation Method: Flathub Primary API Used: Local API
Not working anymore!
Still doable, albeit I use 0.22.1 currently due to unrelated issue of running newer versions on old OS I did notice a curious thing, however. A video plays for a few seconds before throwing an error, requiring going to the previous page and back again to the video, allowing it to play for a few seconds more before throwing an error again. While the error sometimes stops appears after a few to a dozen or so of times (fast forwarding to further point in the vid straight away makes no difference though), someone stubborn enough can watch a whole short video just going back and forth between said video's page and the previous one.
While not an solution, perhaps forcing Freetube to automatically reload video from the last point of time before the error once said error appears without reloading the rest of page would allow one to watch it relatively smoothly despie multiple reloads "under the hood"? It's inelegant, but a sort of temporary workaround all the same.
Setting Default Video Format to Legacy Formats seems to be a workaround, although all videos are 360p in that case.
Setting
Default Video FormattoLegacy Formatsseems to be a workaround, although all videos are 360p in that case.
Alas, it may do so for some videos, especially after a couple of tries the same as going back and forth mentioned previously does, but it doesn't do reliably.
Still doable
This not my experience all the time. Many new uploaded videos cannot be played no matter how many times I reload.