TeamNewPipe / NewPipe

A libre lightweight streaming front-end for Android.
https://newpipe.net
GNU General Public License v3.0
31.45k stars 3.06k forks source link

[YouTube] Age restricted content not playing #11382

Closed dead-pixelz closed 3 weeks ago

dead-pixelz commented 2 months ago

Checklist

Affected version

V.0.27.2

Steps to reproduce the bug

  1. Boot device
  2. Launch newpipe
  3. Load any age-restricted content
  4. Generate below error

Exception

org.schabi.newpipe.extractor.stream.StreamInfo$StreamExtractException: Could not get any stream. See error variable to get further details.
    at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:171)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:81)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:72)
    at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:118)
    at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(ExtractorHelper.java:0)
    at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda3.call(R8$$SyntheticClass:0)
    at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
    at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:16144)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
    at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
    at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:644)
    at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
    at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
    at java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
    at java.lang.Thread.run(Thread.java:1012)


Expected behavior

Up until 12 hours ago, videos were playing normally. Videos normally play without issue

Actual behavior

Screenshot_20240731-230126

Screenshots/Screen recordings

No response

Logs

Exception

org.schabi.newpipe.extractor.stream.StreamInfo$StreamExtractException: Could not get any stream. See error variable to get further details.
    at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:171)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:81)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:72)
    at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:118)
    at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(ExtractorHelper.java:0)
    at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda3.call(R8$$SyntheticClass:0)
    at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
    at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:16144)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
    at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
    at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:644)
    at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
    at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
    at java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
    at java.lang.Thread.run(Thread.java:1012)


Affected Android/Custom ROM version

Android 14 (GrapheneOS)

Affected device model

Google Pixel 7 Pro

Additional information

No response

fweb commented 2 months ago

Exception

Same here. I am on stock Android. Google Pixel 7a

Tried adjusting the age restriction settings in Settings > Content but no change

Also tried routing phone traffic through Blokada DNS VPN but also no change

exefile2 commented 2 months ago

Same here

SprinkleBot commented 2 months ago

Same. It brings back the error "Could not parse website".

rjdg14 commented 2 months ago

I would imagine there has been some sort of change made at YouTube's end to something in the code behind the implementation of age restricted videos. From what I can tell it is probably unrelated to the recent more general playback problems that have been affecting third party clients.

CWftw commented 2 months ago

Broken again for player b12cc44b. See: https://github.com/yt-dlp/yt-dlp/pull/10668

oong819 commented 2 months ago

Are the stream still there but the player/whatever code get changed for age-restricted content or the stream completely gone?

oong819 commented 2 months ago

Can someone pin this issue to prevent duplicates?

berrydzhobs commented 2 months ago

Still not playing.

yonggamer commented 2 months ago

could code from yt-dlp help? especially code from yt-dlp 2024.08.06

offbeat-stuff commented 2 months ago

could code from yt-dlp help? especially code from yt-dlp 2024.08.06

I tested the latest yt-dlp on https://m.youtube.com/watch?v=6LjPVsA_INg and can confirm it does not encounter the same error as newpipe (tested nightly,pipepipe,skytube,27.2). So definetly could help.

weole commented 2 months ago

Yeah I've had this happen to me too.

offbeat-stuff commented 2 months ago

Those wanting to watch videos could use this https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass?tab=readme-ov-file Has extension and userscript version

sunjerk commented 2 months ago

When the feature is restored in addition there should be a notification of the unlocking every time an age-restricted video is played

rjdg14 commented 2 months ago

When the feature is restored in addition there should be a notification of the unlocking every time an age-restricted video is played

Ideally I feel the user should have the ability to toggle such a notification on/off in the same way that they can video descriptions, comments and metadata info.

I know that Newpipe displays age restricted videos in search results with blurred thumbnails but the thumbnails for them are unblurred on channel and recommendation feeds. FreeTube, a similar client for Windows, displays the thumbnails for age restricted videos unblurred on results pages so I'd imagine it would be possible for NewPipe to do the same.

OutersiderOfficial commented 2 months ago

Unfortunately, I'm still having issues with accessing age restricted contents, even when I clicked the setting, content & show age restricted contents.

Let me know for further update

bellehop commented 1 month ago

The issue is still happening, no age restricted videos will load. I tried installing after a reset and clearing the storage.

mrkrabs206 commented 1 month ago

I would imagine there has been some sort of change made at YouTube's end to something in the code behind the implementation of age restricted videos. From what I can tell it is probably unrelated to the recent more general playback problems that have been affecting third party clients.

F8ck Google

ghost commented 1 month ago

Those wanting to watch videos could use this https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass?tab=readme-ov-file Has extension and userscript version

This works perfectly without Google login on Firefox mobile with Tampermonkey, but the problem is there is no downloader. I wondering if this bypass method can be implemented on NewPipe?

acrodemocide commented 1 month ago

This looks like it will require an extractor change. I don't have the authority to apply that tag or if there is some level of confirmation I need to go through on this project to do so, but wanted to mention it.

yonggamer commented 1 month ago

how about using code from Seal v1.13.0 to get yt-dlp

offbeat-stuff commented 1 month ago

Those wanting to watch videos could use this https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass?tab=readme-ov-file Has extension and userscript version

This works perfectly without Google login on Firefox mobile with Tampermonkey, but the problem is there is no downloader. I wondering if this bypass method can be implemented on NewPipe?

Well if you are looking for a downloader

https://github.com/deniscerri/ytdlnis

ytdlnis has the latest ytd-lp so you can download Have tested recently

rambalachandran commented 9 hours ago

could not find the apk in the PR to use this fix in our devices

AudricV commented 3 hours ago

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