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

Unable to unlock this video - PlayabilityError - Proxy #263

Open
1 task
jonny2369 opened this issue Oct 22, 2024 · 26 comments
Open
1 task

Unable to unlock this video - PlayabilityError - Proxy #263

jonny2369 opened this issue Oct 22, 2024 · 26 comments
Labels
bug Something isn't working

Comments

@jonny2369
Copy link

What happened?

An ETA on when this will be fixed yet? Script has not been working now for over a month, and keep checking in every day just to see that it is still Sep 12 release. YouTube is censoring more and more (even comedy shows like this, https://www.youtube.com/watch?v=HwezhqnDZoo, now has age restriction), and if one doesn't want to give YT/Google all your personal data + credit card info, then a script like this is a must...

Edit: Just to make clear I am not complaining or ungrateful (in my book, the makers of this script are great guys), but since there's a lot of people depending on this, an update/ETA would be nice...

Platform

Userscript

Version

2.5.11

What browser are you on?

Chrome

Browser version

130.0.6723.59

Link to the video

https://www.youtube.com/watch?v=HwezhqnDZoo

Screenshots or Videos

image

About you

  • I am a developer and/or have knowledge in programming
@jonny2369 jonny2369 added the bug Something isn't working label Oct 22, 2024
@Loistar
Copy link

Loistar commented Oct 27, 2024

Ditto, script stopped working.

@ten4dinosaur
Copy link

This script has 2 methods of "bypass". TV client and account proxy. TV client is died, now it require login for requesting any video (but it did not enforce EU age "verification", so you can use account without credit card). Account proxy method itself is working, but authors server seems offline. So for not to use this method you need to setup your own account proxy server as described in readme.

@Vangelis66
Copy link

Account proxy method itself is working

... Well, hardly; even if the maintainers restore their age-verified-YT-account proxy instance, YT itself made it sure that, as of writing this, only the lowly fmt=18 format could be accessed, at best (360p25 standalone pre-muxed MP4, avc1+aac); with fmt=22 (720p25) having been axed recently, all adaptive bitrate formats (MPEG-DASH/HLS) in separate video/audio streams are being inaccessible due to them being protected by a POtoken (Point-of-Origin-Token) valid only for the original YT account holder/machine, not for the machines of people sharing the verified account via the proxy...

c64fa7e

* Workaround: when we provide `adaptiveFormats` the client cannot playback the video.
*
* It seems the URLs we get here or the one the client constructs from these URLs are tied to the requesting account.
* The low quality `formats` URLs seem fine.

you need to setup your own account proxy server as described in readme.

https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/tree/main/account-proxy#installation

IIUC, this is for people who want to share their age-verified YT account with others, just like the maintainers here (used to) do; but existing userscript/extension installations only work with https://youtube-proxy.zerody.one/, don't they?

@ten4dinosaur
Copy link

POtoken (Point-of-Origin-Token) valid only for the original YT account

c64fa7e

* Workaround: when we provide `adaptiveFormats` the client cannot playback the video.
*
* It seems the URLs we get here or the one the client constructs from these URLs are tied to the requesting account.
* The low quality `formats` URLs seem fine.

POT for authorized accounts relay on datasyncId, it's present in unlockedPlayerResponse at responseContext.mainAppWebResponseContext.datasyncId.

Just apply it to POT generator, and than, all adaptive formats works. Here is example script.

https://www.youtube.com/watch?v=HwezhqnDZoo

@drunkwinter
Copy link
Collaborator

drunkwinter commented Oct 31, 2024

@ten4dinosaur That's a great find, if you want to make a pull request I'll be happy to review and merge it.

Yes, unfortunately the videos are now being protected by a POtoken (didn't previously know it had a name).

Unfortunately, the bigger problem here is that, we had a US based YT account that the proxy was using, which recently got banned and creating a new account now requires a phone number for verification. And with the decreasing number and effectiveness of client based bypasses I don't see how this project can be easily sustainable at this point.

@Vangelis66
Copy link

we had a US based YT account that the proxy was using, which recently got banned

Thanks for your additional input 👍 ; from your previous communication, I got the impression that it was the proxy cloud instance itself that had expired (and/or got "banned" by its hoster); itself a problem that would take time to remedy; but did I now understand correctly that the age-verified YT account was actually banned by most evil Google, too?

Google had always fought against other projects helping users consume YouTube videos in ways not endorsed by Google, but, if I may say so, "they" are currently, and since mid-summer, conducting a holy war against ALL the other parties 😡 ; browser extensions, browser userscripts, invidious instances, standalone non-official YT clients and, above all, most of the YT downloaders have been affected, each to a variable degree, most put out of action 😭 ...

As for this project, which I had occasionally used over the past years (in my browsers and also as part of the AGB yt-dlp plugin), I have to thank the maintainers for past services, but its future looks uncertain/grim; perhaps some savvy members of the community can step up with new, un-banned, age-verified YT account(s) that the maintainers could use in a future iteration of the script (once proxy hosting issues, if any, have been dealt with) ?
Sadly, not a programmer, so no "real" help to offer myself 😉 ...

rant mode, you've been warned What irks me the most is that Google have had their ways forced upon the web communities once more, with no practical workaround; Google are effectively the "owners" of the web: them writing new web specs (JS+CSS) and implementing them into their monopoly browser, Chrome; via Chrome's "popularity", they also dictate the OS and browser engine people must use to "surf the web" (make no mistake, Mozilla Firefox is just their lackey); they also own the most popular search engine, one of the most popular video platforms (YT) and own the dominant DRM module, Widevine; Chrome extension MV3 (so that adblockers become crippled)? Do you feel their tight grasp on you already? BTW, I'm not even going to mention Android, ChromeOS, smart "things", etc. So now Google have also appointed themselves as the ultimate "web police", age-blocking much YT content for "political correctness", in reality a ploy to take hold of users' (more) private details...

Despite surfing the web since 2005, I have resisted selling my soul to Google by creating an account with them (no Android phone owned, either); whenever I had the ability to unblock content with this fine project, it was for me a sort of "FU Google" moment; and it's that feeling I'll miss more than the videos I won't be able to unblock from now on...

Great debt owed to the zerodytrash team ! 👍

@drunkwinter
Copy link
Collaborator

drunkwinter commented Oct 31, 2024

Thanks for your additional input 👍 ; from your previous communication, I got the impression that it was the proxy cloud instance itself that had expired (and/or got "banned" by its hoster); itself a problem that would take time to remedy; but did I now understand correctly that the age-verified YT account was actually banned by most evil Google, too?

I have no idea who that is, but he is not a contributor in any way. You can find the list of contributors here: https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/graphs/contributors. @zerodytrash and me currently only have the access to the server.

But yes the account seems to be banned by Google, most likely automated by their systems. We get a This content isn't available. message on all videos. My concern now is that even if we somehow got a new account, the question is how long will it last? And how straight forward is it to get a new US number each time? What happens when at some point the server IP gets banned?

Anyway, about the rant, I think we're all on the same page regarding opinions about Google ;)

@ten4dinosaur
Copy link

We get a This content isn't available. message on all videos.

yt-dlp/yt-dlp#10108

What happens when at some point the server IP gets banned?

It's exactly seems like similar case. Try cloudflare warp maybe, hope they wouldn't ban cloudflare.

@Vangelis66
Copy link

I have no idea who that is, but he is not a contributor in any way.

... Oh 😕 ; the way in which he commented in this tracker (see also his comment here) made me assume he was a member of your team 😉 ; it turns out he maintains a fork of this project:

https://github.com/joaquinito2070/Simple-YouTube-Age-Restriction-Bypass

(which doesn't make him a bad person, TBH, but he could've been more clear about this...)

the question is how long will it last?

Going by the yt-dlp issue tracker, one can see that YT accounts are being routinely blocked, possibly through AI infrastructure, when "unrealistic" (read: excessive for just one person) traffic (requests) is being observed originating from those accounts; same goes for age-verified accounts...
This is just a guess of mine, but when the tv_embedded hack was patched by Google, the (many) users of your script were suddenly making use of the YT account on the proxy (whereas before the proxy was only used for non-embeddable age-gated content); this must've triggered some fuses and the account was then BLOCKED 😢 ...

Apparently @ten4dinosaur has already set up his proxy instance with a working age-verified YT account (plus his fix for bypassing poToken), everything works for him, but what if his proxy address became public? Ruthless Google would probably at some point block 1) the YT account 2) proxy's IP ...
And what's the point of creating your own age-verified YT account proxy if NOT to share it publicly? Just so that you yourself can watch in browsers without logging in, when, at the same time, you already have an account with them?

Not being optimistic myself...

@ten4dinosaur
Copy link

Apparently @ten4dinosaur has already set up his proxy instance
And what's the point of creating your own age-verified YT account proxy if NOT to share it publicly?

No, I have no proxy instance. I use custom script. So sharing it = sharing account.

Just so that you yourself can watch in browsers without logging in, when, at the same time, you already have an account with them?

Yeah, exactly for this. I wouldn't like to use google account on my main browser, but I have no problem to register one in portable browser and never use it except for grabbing cookies

@Genuline
Copy link

Genuline commented Nov 1, 2024

mine was fucked but then I disabled & re-enabled it and it worked :D

@jonny2369
Copy link
Author

Lots of info now in this thread (and many thanks to everyone contributing for their help), so just to get things straight:

  1. The main script is dead, and no ETA on when it will be fixed (and unsure even IF it can be fixed). Obligatory Google can go fsck itself.
  2. The account proxy (https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass/tree/main/account-proxy) is still technically working, but a) the account it connects to is down (probably permanently), and b) it is not a script one can simply put into Tampermonkey either (to add to/replace main script).
  3. A possible workaround, provided curtesy of @ten4dinosaur and requiring the account proxy (does it?), seems to be working for now, and can be found here: https://gist.github.com/ten4dinosaur/6fdba5ae41d4190d1d0022c8ead108ce. No other requirements or prerequisites?

Have I understood it correctly and this is where things stand right now?

Also, in case the 'main' script cannot be resurrected, does someone with real programming skill think it might be possible to combine everything required to get it to currently work (including the account proxy) into a single script, so it's possible to just 'plug and play'? Then possibly upload it onto the main page (in a sub-folder)?

@ten4dinosaur
Copy link

3. A possible workaround, provided curtesy of @ten4dinosaur and requiring the account proxy (does it?), seems to be working for now, and can be found here: https://gist.github.com/ten4dinosaur/6fdba5ae41d4190d1d0022c8ead108ce. No other requirements or prerequisites?

You still need this script, YoutubeVideoInfoAdapter can fetch video info/change poToken, not "unlock" video. So, to make it work for now you can:

  1. Install YoutubeVideoInfoAdapter.js userscript + add account cookies to it
  2. Patch Simple-YouTube-Age-Restriction-Bypass to make it use YoutubeVideoInfoAdapter

Provided patch for Simple-YouTube-Age-Restriction-Bypass works, video can be watched. But it's not perfect, and it use window.location.refresh, because this script relays on synchronous JSON.parse hook and synchronous request, but YoutubeVideoInfoAdapter can't work in synchronous mode. It's Tampermonkey's GM_xmlhttpRequest implementation limitation.

@Vangelis66
Copy link

@jonny2369

The gist of it is:

Install YoutubeVideoInfoAdapter.js userscript + add account cookies to it

which is below part:

    // set cookies
    const account = {
        sid: '...',
        hsid: '...',
        ssid: '...',
        apisid: '...',
        sapisid: '...',
        psidts: '...'
    }

That means that you need someone else to provide you with YT cookies of an age-verified YT account in order to ublock the age-gated videos IF YOU YOURSELF DON'T CURRENTLY HAVE (OR WANT TO REGISTER) AN AGE-VERIFIED YT ACCOUNT; which was the main reason to begin with I and the overwhelming majority of users were using this project (evade Google's mandatory sign-in); if that other party does provide you the necessary cookies, the age-verified account is at high risk of being ultimately BLOCKED/BANNED by Google's automated security systems 😡 ...

The use case scenario by @ten4dinosaur (thanks for your coding efforts 👍 ) boils down to:

Just so that you yourself can watch in browsers without logging in, when, at the same time, you already have an account with them?

Yeah, exactly for this. I wouldn't like to use google account on my main browser, but I have no problem to register one in portable browser and never use it except for grabbing cookies

@ten4dinosaur
Copy link

IF YOU YOURSELF DON'T CURRENTLY HAVE (OR WANT TO REGISTER) AN AGE-VERIFIED YT ACCOUNT

You can register non verified account in portable browser, and use getYoutubeVideoInfo(videoId, 'tv'). It will work not for all age-restricted video, but for embeddable at least.

@ten4dinosaur
Copy link

Also, main reason why YoutubeVideoInfoAdapter was originally created is ios endpoint, it returns hls manifest, so, I can play video in vlc player, Other clients/PoToken bypass is additional features I added letter. So, sorry if it not what you exactly need

@ten4dinosaur
Copy link

NewPipe can bypass the restriction

TeamNewPipe/NewPipe#11382

It doesn't matter now, as YouTube removed all known ways to bypass age-restrictions without login.

@victorlnd
Copy link

I tried to do what @ten4dinosaur said, patching the simple youtube age restriction script and installing YoutubeVideoInfoAdapter and adding my account cookies, but my yt enters a loop where is constantly refreshing and cant see any age restricted videos (works fine watching any normal video). Any idea on how to fix it?

@drunkwinter drunkwinter mentioned this issue Nov 9, 2024
1 task
@drunkwinter drunkwinter changed the title Any update on when this will be fixed? Unable to unlock this video - PlayabilityError - Proxy Nov 9, 2024
@ten4dinosaur
Copy link

I tried to do what @ten4dinosaur said, patching the simple youtube age restriction script and installing YoutubeVideoInfoAdapter and adding my account cookies, but my yt enters a loop where is constantly refreshing and cant see any age restricted videos (works fine watching any normal video). Any idea on how to fix it?

Try to execute
await window.getYoutubeVideoInfo('videoIdOfAgeRestrictedVideo', 'web')
or
await window.getYoutubeVideoInfo('videoIdOfAgeRestrictedVideo', 'tv')
in console.

What does it show in playabilityStatus.status?

@c-bejar
Copy link

c-bejar commented Nov 11, 2024

@ten4dinosaur is it normal for no video recommendations to appear on the side when using your patch?

@ten4dinosaur
Copy link

@ten4dinosaur is it normal for no video recommendations to appear on the side when using your patch?

For age restricted video - yes. I added support only for v1/player endpoint.

@victorlnd
Copy link

What does it show in playabilityStatus.status?
@ten4dinosaur
I get this message
playabilityStatus: Object { status: "ERROR", reason: "Video unavailable", contextParams: "Q0FBU0FnZ0E=", … }
Also im not from the US if that makes any difference

@MusicaFM
Copy link

Admin What if you create a YouTube account from the YouTube app, does it ask for a number in the United States? In Spain, no, but from the website, yes

@ten4dinosaur
Copy link

What does it show in playabilityStatus.status?
@ten4dinosaur
I get this message
playabilityStatus: Object { status: "ERROR", reason: "Video unavailable", contextParams: "Q0FBU0FnZ0E=", … }
Also im not from the US if that makes any difference

It seems like video is unavailable, not age restricted. If you sure that video is available, post videoId here, I will look

@kamildzi
Copy link

we had a US based YT account that the proxy was using, which recently got banned

Guys, I just got an idea. But I didn't have opportunity to test it (yet). What if we used business account (google workspace) for the proxy? Do you think it could be treated differently by Google?

@drunkwinter
Copy link
Collaborator

Admin What if you create a YouTube account from the YouTube app, does it ask for a number in the United States? In Spain, no, but from the website, yes

I haven't looked into it, but there may be ways of doing it without a number. The issue is doing it each time it gets banned. Also because of a recent change in the way YouTube requests videos It's now impossible to play anything other than 360p videos using the proxy.

we had a US based YT account that the proxy was using, which recently got banned

Guys, I just got an idea. But I didn't have opportunity to test it (yet). What if we used business account (google workspace) for the proxy? Do you think it could be treated differently by Google?

No, the issue is not with the proxy with rather with account creation and the ability to play any other video than 360p as explained above.

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

No branches or pull requests

10 participants