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]: [BAD_HTTP_STATUS: 403] Potential causes: IP block or streaming URL deciphering failed #6912

Open
5 of 6 tasks
Targren opened this issue Feb 24, 2025 · 18 comments
Open
5 of 6 tasks
Labels
B: inconsistent behavior bug Something isn't working

Comments

@Targren
Copy link

Targren commented Feb 24, 2025

Guidelines

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

@Targren Targren added the bug Something isn't working label Feb 24, 2025
@github-project-automation github-project-automation bot moved this to To assign in Bug Reports Feb 24, 2025
@phenty
Copy link

phenty commented Feb 24, 2025

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.

@absidue
Copy link
Member

absidue commented Feb 24, 2025

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".

@efb4f5ff-1298-471a-8973-3d47447115dc

@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?

@phenty
Copy link

phenty commented Feb 24, 2025

@Targren @phenty please provide the following info:

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

@rjc3rd
Copy link

rjc3rd commented Feb 24, 2025

[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.

  1. Add a Celluloid as external player and open video in external player, works every time even IP that seems to break internal player.
  2. 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.

@Targren
Copy link
Author

Targren commented Feb 24, 2025

  • 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

@awesome769

This comment has been minimized.

@JohnTheGit1

This comment has been minimized.

@exekutive

This comment has been minimized.

@nartahn

This comment has been minimized.

@galure

This comment has been minimized.

@alarm10101010

This comment has been minimized.

@riverpiers

This comment has been minimized.

@CEHitchens
Copy link

CEHitchens commented Feb 25, 2025

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

@absidue
Copy link
Member

absidue commented Feb 25, 2025

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).

@PyroDevil
Copy link

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.

@locoloon
Copy link

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

@javierxio

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B: inconsistent behavior bug Something isn't working
Projects
Status: To assign
Development

No branches or pull requests