-
-
Notifications
You must be signed in to change notification settings - Fork 664
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
Got error: "Sign in to confirm that you're not a bot" #3658
Comments
Some instances are working, some aren't. But it's probably gonna spread to all of them. |
Is there any solution for this? |
Cobalt implemented OAuth, but other than that there's not been much in terms of solving this issue... |
Well, maybe it would be good implementing it as an optional feature, so instances could continue running until there is a better solution. |
Restarting all containers fixed it for me tonight. |
Really !!! |
Didn't work for me, you probably got "B" tested ;D jokes aside, I have another request that may warrant a separate issue: |
This is happening to me on the majority of videos (~8 out of 10) and on different instances, to the point I had to go back to using vanilla youtube. |
Yes. Just obtain youtube API keys and paste the API_SECRET to src/main.js function at 127th line. getAuthToken() {
return this.getPreferenceString("authToken" + this.hashCode(this.authApiUrl()));
}, Everything works. |
You can host your own instance instead and paste the token as I have written above. |
If I use Docker, how can I rebuild it? I am looking forward to an update from the team regarding documentation and Docker for this temporary solution |
This is coming so often on official (piped.video) instance, approximately 7 of 10 videos. I haven't tried to change instance yet, I have switched to invidious. |
This is the best workaround though. Works 100% of the time. You rarely have to change it twice. |
Your modify the main.js like this? getAuthToken() { return this.getPreferenceString("authToken" + this.hashCode(API_KEY)); }, Where API_KEY = your yt api key Also how do get into the docker container to modify main.js? I tried bash but that'd didn't work. |
Unfortunately, no. getAuthToken() {
return this.getPreferenceString("YOUR_API_TOKEN_HERE" + this.hashCode(this.authApiUrl()));
}, API_KEY is API_SECRET in your profile. |
I am not facile with Docker, unfortunately. Instead, I host my own private instance on a VPS. |
When bash doesn't work try Where is the file located BTW? edit: I use these aliases in # get the container name if you don't remember, example: "dclist piped"
function dclist() {
if [ -z "$1" ]; then
docker ps -a --format "table {{.ID}}\t{{.Names}}" | (read -r; printf "%s\n" ""; sort -k 2);
else
docker ps -a --format "table {{.ID}}\t{{.Names}}" | (read -r; printf "%s\n" ""; sort -k 2) | grep "$1";
fi
}
# enter a container with bash or sh, example: "dcsh piped"
function dcbash() { docker exec -it "$1" /bin/bash; }
function dcsh() { docker exec -it "$1" /bin/sh; } |
Partial docker instructions, untested, try only if you know what this means:
At this point you can either extract it from the container, change it and mount it back (easier, persist across restarts, may break the frontend if the containers are updated) or manually edit it in place (no time so will do this for now, may need restart of the container, may break anyway or just not work) or add the sed command to the start script (it's already doing something similar for the instance name)
|
I've tried to do what above was suggested with the substitution of the authToken with an API key for Youtube Data v3 (plain API key not OAuth) and it just results in completely broken piped frontend. No trace or any message in the console. I have confirmed that it is substituted correctly in the browser with cache disabled (just in case). What's supposed to happen when you swap out the hardcoded authToken string? Can someone provide clearer instructions on how to do this? I'm also confused what "API_SECRET" referenced above is. Is it not the value of the API key? |
Everything written above about patching Obtaining YouTube API keys and only setting them in the frontend doesn't solve the problem at all, because the YouTube API key would need to be used at the Piped backend anyways ... |
You probably want to save yourself that time and either get a new IP address that's not blocked from YouTube or put a proxy / VPN in front of your instance. |
Invidious made a IPv6 rotation tool, so that is another way of solving the issue. It needs a bit of setup, but works pretty good on a couple of instances I saw using it. |
Unfortunately lots of instances had their whole IPV6 /64 range blocked recently. I guess it depends of the provider |
Yes, all my Hetzner IPv6 ranges are blocked too since some days :/ |
I heard https://stylenhost.com/ still works. |
Yesterday I had the same error, so I changed the instance from kavin.rocks to r4fo.com and the videos started working. |
Thank you. I see that piped.video (official mirror) is working well. Any way this could be used by third-parties like LibreTube ? |
It doesn't work for everyone (me). You just have to wait for the fix |
well i didn't know the differences (in the backend) between libretube (and piped) and newpipe. |
I found a really stupid workaround: on r4fo.com, at least, if you refresh the page a few times, it eventually loads. It can take anywhere between 2-50 tries. (Yes, I stuck around to find out for sure.) |
I know it's tempting to talk about workarounds as a user here, but ideally this issue's discussion should be mostly suggestions on which specific code change should be implemented to more generally fix this. A lot of them have been suggested here, specifically things done by the invidious team, but it's not clear which of them specifically would help here. |
They might do some load balancing around different nodes or IPs and some sometimes are not yet blocked by coincidence, I don't think that generally works with other instances. |
There likely needs to be a fix at the NewPipe Extractor repository first, Piped doesn't have any logic to scrape YouTube information itself. |
I am receiving this error on web and on mobile via LibreTube |
as a workaround for now, if you have your subscriptions working click on If you dont, you can export your subscriptions to json and import them in newpipe |
Can we keep the button view on YouTube when this error happens please ? |
go to Settings -> Instance and enable Disable Piped proxy as well as Local streams extraction. Disclaimer: The bot-blocked API call will now be done directly from your IP address, which is obviously less privacy-friendly. Using a VPN is recommended, but might not always work since YouTube blocks IPs of VPN providers as well. |
1 similar comment
go to Settings -> Instance and enable Disable Piped proxy as well as Local streams extraction. Disclaimer: The bot-blocked API call will now be done directly from your IP address, which is obviously less privacy-friendly. Using a VPN is recommended, but might not always work since YouTube blocks IPs of VPN providers as well. |
Which instance do you use? We dont have such options (on piped.video, piped.projectsegfau.lt, piped.privacydev.net, piped.smnz.de, piped.adminforge.de). Also, you have sent your comment doubly. |
I am also getting this error even when signed in |
I only have two extensions on librewolf: dark reader and ublock origin. Disabling both and reloading changes the error message to: "IOS player response is not valid" |
Interesting observation: I've been playing with iOS lately, and their "mainline" solution is a 1.99$ extension called Vinegar, that: I wonder if it was affected by these changed, or does something very WebKit/Safari specific, that allows them to get the HTML5 player working...always. Would be interesting to explore, if we could somehow mimic the process of having a safari with vinegar, what does YouTube send in the first place, and how does the extension transform it. Noticed NewPipeExtractor trying to get the HTML5 player here: TeamNewPipe/NewPipeExtractor#1197 |
libretube is working again now too |
@kubo6472 On (some) private instances, Piped still work, always. |
Is it possible to add the video to a playlist despite having this error in the browser? The button is not showing despite being able to load comments (and thus acknowledging the url is okay) Should i open a separate bug for this? |
That's the same issue, so no. |
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as off-topic.
This comment was marked as off-topic.
Could you guys please stop commenting this issue with no new information, many people are following I guess and it's annoying to get useless notifications. And if you wanna chat about workarounds or whatever, the matrix channel is still here |
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as off-topic.
This comment was marked as off-topic.
Can we make Piped instance route all the requests over the Tor network? Or like optional feature on client-side (e.g |
Official Instance
Describe the bug
On my private instance and with some others i have tested in the public list i am seeing "Got error: "Sign in to confirm that you're not a bot"" instead of a video
Here is a link from a public instance with the same problem:
https://piped.r4fo.com/watch?v=2G-L0u_L0qU
To Reproduce
Open this url on this instance
https://piped.r4fo.com/watch?v=2G-L0u_L0qU
See error
Expected behavior
Video to play normally
Logs/Errors
org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException: Got error: "Sign in to confirm that you're not a bot" at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.checkPlayabilityStatus(YoutubeStreamExtractor.java:1016) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:876) at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:60) at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:77) at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:72) at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:67) at me.kavin.piped.server.handlers.StreamHandlers.lambda$streamsResponse$0(StreamHandlers.java:54) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.lang.VirtualThread.run(VirtualThread.java:309)
Browser, and OS with Version.
Happens on multiple browsers and devices
Additional context
I'm assuming it's related to something google/youtube have done as invidious instances are having similar issues.
iv-org/invidious#4734
The text was updated successfully, but these errors were encountered: