Open jonny2369 opened 1 week ago
Ditto, script stopped working.
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.
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...
* 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.
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?
POtoken (Point-of-Origin-Token) valid only for the original YT account
* 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.
@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.
we had a US based YT account that the proxy was using, which recently got banned
Thanks for your additional input :+1: ; 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 :rage: ; 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 :sob: ...
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 :wink: ...
Great debt owed to the zerodytrash team ! :+1:
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 ;)
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.
I have no idea who that is, but he is not a contributor in any way.
... Oh :confused: ; the way in which he commented in this tracker (see also his comment here) made me assume he was a member of your team :wink: ; 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 :cry: ...
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...
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
mine was fucked but then I disabled & re-enabled it and it worked :D
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)?
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.
@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 :rage: ...
The use case scenario by @ten4dinosaur (thanks for your coding efforts :+1: ) 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
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.
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
NewPipe can bypass the restriction, i don't see why should this script use a proxy, that's violating our privacy and security.
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.
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
About you