PipePipe icon indicating copy to clipboard operation
PipePipe copied to clipboard

[Bug] All videos are played only on 360p

Open RickQuintaluce opened this issue 8 months ago • 6 comments

Checklist (Your issue will be automatically closed if you delete this part)

  • [ok] I make sure that there are no existing issues - open or closed - which I could contribute my information to.
  • [ok] I understand that issues with limited impact, such as those occurring on specific devices or under specific network conditions, will not be fixed.
  • [ok] I am able to reproduce the bug with the latest version given here: CLICK THIS LINK.
  • [ok] I have attached the error report in the issue.

Describe the bug I open the app, I click on any video, the message "sorry, something went wrong" appears. The video get played anyway, but only on 360p and a higher resolution can't be selected. This happens with all videos.

Frequency Every time I use the app, every video I try to play. It started on March 12th (90% sure that's the day), before that the app worked just fine.

Steps to reproduce the bug Open the app, click on any video. An error message should appear, video starts playing on 360p and no other resolution can be selected.

Device (e.g. Pixel 9 Pro) Sony Xperia 10 IV

Error report

Exception

  • User Action: requested stream
  • Request: https://www.youtube.com/watch?v=8FtW5_2TLrM
  • Content Country:
  • Content Language: en-
  • App Language: en
  • Service: YouTube (Logged in)
  • Version: 4.2.1
  • OS: Linux Android 14 - 34
Exceptions (2)

Crash log 1

org.schabi.newpipe.extractor.exceptions.ExtractionException: Couldn't get audio streams at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:195) at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:109) at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:88) at org.schabi.newpipe.util.ExtractorHelper.getNewStreamInfo(ExtractorHelper.java:132) at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:127) at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0) at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda5.call(Unknown Source:4) at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43) at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813) at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35) at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813) at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41) at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330) 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:15868) at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36) at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330) at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46) at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813) 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) Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get audio streams at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1338) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getAudioStreams(YoutubeStreamExtractor.java:657) at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:191) ... 30 more Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference at org.schabi.newpipe.extractor.utils.Parser.compatParseMap(Parser.java:135) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.buildAndAddItagInfoToList(YoutubeStreamExtractor.java:1531) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.lambda$getStreamsFromStreamingDataKey$28(YoutubeStreamExtractor.java:1505) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.$r8$lambda$UzQHXY7teet_MSd3x5z6Uj_H6mc(Unknown Source:0) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda29.apply(Unknown Source:10) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.Iterator$-CC.$default$forEachRemaining(SourceFile:0) at j$.util.Iterator$-EL.forEachRemaining(Unknown Source:10) at j$.util.X.forEachRemaining(Unknown Source:24) at j$.util.stream.c.G0(SourceFile:0) at j$.util.stream.c.Y0(SourceFile:0) at j$.util.stream.T.b0(SourceFile:0) at j$.util.stream.c.b1(SourceFile:0) at j$.util.stream.Z1.forEach(SourceFile:0) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.P.forEachRemaining(Unknown Source:20) at j$.util.stream.c.G0(SourceFile:0) at j$.util.stream.c.Y0(SourceFile:0) at j$.util.stream.T.b0(SourceFile:0) at j$.util.stream.c.b1(SourceFile:0) at j$.util.stream.Z1.forEachOrdered(SourceFile:0) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1330) ... 32 more

Crash log 2

org.schabi.newpipe.extractor.exceptions.ExtractionException: Couldn't get video only streams at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:209) at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:109) at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:88) at org.schabi.newpipe.util.ExtractorHelper.getNewStreamInfo(ExtractorHelper.java:132) at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:127) at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0) at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda5.call(Unknown Source:4) at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43) at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813) at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35) at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813) at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41) at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330) 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:15868) at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36) at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330) at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46) at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813) 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) Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get video-only streams at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1338) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getVideoOnlyStreams(YoutubeStreamExtractor.java:673) at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:207) ... 30 more Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference at org.schabi.newpipe.extractor.utils.Parser.compatParseMap(Parser.java:135) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.buildAndAddItagInfoToList(YoutubeStreamExtractor.java:1531) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.lambda$getStreamsFromStreamingDataKey$28(YoutubeStreamExtractor.java:1505) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.$r8$lambda$UzQHXY7teet_MSd3x5z6Uj_H6mc(Unknown Source:0) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda29.apply(Unknown Source:10) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.Iterator$-CC.$default$forEachRemaining(SourceFile:0) at j$.util.Iterator$-EL.forEachRemaining(Unknown Source:10) at j$.util.X.forEachRemaining(Unknown Source:24) at j$.util.stream.c.G0(SourceFile:0) at j$.util.stream.c.Y0(SourceFile:0) at j$.util.stream.T.b0(SourceFile:0) at j$.util.stream.c.b1(SourceFile:0) at j$.util.stream.Z1.forEach(SourceFile:0) at j$.util.stream.T1.accept(SourceFile:0) at j$.util.P.forEachRemaining(Unknown Source:20) at j$.util.stream.c.G0(SourceFile:0) at j$.util.stream.c.Y0(SourceFile:0) at j$.util.stream.T.b0(SourceFile:0) at j$.util.stream.c.b1(SourceFile:0) at j$.util.stream.Z1.forEachOrdered(SourceFile:0) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1330) ... 32 more


Additional context The "what happened message" on the error report prompt says "could not parse website"

RickQuintaluce avatar Mar 15 '25 12:03 RickQuintaluce

Hello, @RickQuintaluce! I'm here to assist you with any bugs, questions, or contributions. Let me know how I can help you while we wait for a human maintainer.

There are two similar closed issues related to videos playing only in 360p resolution:

  1. One issue suggests that the problem might be due to YouTube A/B testing their new API, which affects the PipePipe client specifically. Testing with other clients like Seal and the official YouTube app shows that higher resolutions work, indicating a client-specific issue [1].

  2. Another issue points to a NullPointerException in the compatParseMap method of the Parser class, causing the YoutubeStreamExtractor to fail. This could be due to changes in the YouTube API or a bug in the app version 4.2.1. It is recommended to check for updates or patches for the app and review recent changes to the YoutubeStreamExtractor class [2].

In your case, the error logs indicate ExtractionException and ParsingException due to null references when attempting to parse streaming data, which aligns with the second issue. You might want to look into recent changes in the YoutubeStreamExtractor class or check for any available updates that address this issue.

To continue talking to Dosu, mention @dosu.


Help Dosu learn! Give it feedback: Great Response | Irrelevant Answer | Incorrect Sources | Too Verbose | Hallucination | Bug Report | Other

dosubot[bot] avatar Mar 15 '25 12:03 dosubot[bot]

This is #826 , which is due to new YouTube DRM blocking.

Please try apk here and let me know if it works. You need to log out and log in again to make it work.

InfinityLoop1308 avatar Mar 15 '25 23:03 InfinityLoop1308

this is related to #888. no current fix. seems like youtube itself is the problem.

see >>

https://stadt-bremerhaven.de/technische-probleme-bei-youtube-nutzer-klagen-ueber-schlechte-videoqualitaet/

https://support.google.com/youtube/thread/332214867/video-and-shorts-playing-in-low-quality

zer0fl0w avatar Mar 20 '25 17:03 zer0fl0w

That makes sense because right now none of the videos plays anymore & half of the time as I try to play a video, the app kicks me out

OutersiderOfficial avatar Apr 02 '25 20:04 OutersiderOfficial

@OutersiderOfficial The issue you described is obviously unrelated to this issue. If you are certain you are using the latest version, please open a new issue.

InfinityLoop1308 avatar Apr 02 '25 22:04 InfinityLoop1308

This is #826 , which is due to new YouTube DRM blocking.

Please try apk here and let me know if it works. You need to log out and log in again to make it work.

It seems to work. Edit: only works when not logged in

zogmam1 avatar Apr 26 '25 21:04 zogmam1

This is #826 , which is due to new YouTube DRM blocking. Please try apk here and let me know if it works. You need to log out and log in again to make it work.

It seems to work. Edit: only works when not logged in

Can confirm it also works only when not logged in and in mobile/cellular data (have access to up to 2160p60 for all the videos that offer it!). When on Wi-Fi, either logged in and it's 360p only or logged out I can't load the video and have the "Your IP is blocked by YouTube. Try using a VPN or logging in"

To me it's not a big deal, because I have basically unlimited 5G data, but I still wanted to report on the conditions triggering that issue.

Pipepipe 4.3.0 Android 14 Motorola g73 5G

omlt765 avatar May 01 '25 13:05 omlt765

Hello. I don't know the reason, but I can play almost any music videos on 1080p.

I tested 8 videos I found by serching for “official music videos,” and I can play 7 videos on 1080p:

https://www.youtube.com/watch?v=ekr2nIex040 https://www.youtube.com/watch?v=uLK2r3sG4lE https://www.youtube.com/watch?v=kPa7bsKwL-c https://www.youtube.com/watch?v=V9PVRfjEBTI https://www.youtube.com/watch?v=Eu4Rj3KTpYw https://www.youtube.com/watch?v=fLexgOxsZu0 https://www.youtube.com/watch?v=R2-yomhYAj4

and a video that I can't play on 1080p:

https://www.youtube.com/watch?v=eOAEpMOo-pA

Pipepipe 4.3.0 Android 15, HyperOS 2 POCO X6 5G Pro

I hope this leads to a solution...

akky1023 avatar May 02 '25 04:05 akky1023

Hi....it's either "Your IP is blocked" and when I log in to solve this , videos plays at 360p only https://ibb.co/MyGrCCPr Now what should I do ?

RA1-Asur avatar May 02 '25 06:05 RA1-Asur

hi i have the same error the videos are played at 360p on pipepipe 4.3.1 and i have this log ## Exception

  • User Action: requested stream
  • Request: https://www.youtube.com/watch?v=gix1SduHw_E
  • Content Country: IT
  • Content Language: it-IT
  • App Language: it_IT
  • Service: YouTube (Logged in)
  • Version: 4.3.1
  • OS: Linux Android 16 - 36
Exceptions (2)

Crash log 1

org.schabi.newpipe.extractor.exceptions.ExtractionException: Couldn't get audio streams
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:195)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:109)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:88)
	at org.schabi.newpipe.util.ExtractorHelper.getNewStreamInfo(ExtractorHelper.java:132)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:127)
	at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda5.call(Unknown Source:4)
	at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
	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:15868)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	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:317)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:348)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
	at java.lang.Thread.run(Thread.java:1119)
Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get audio streams
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1340)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getAudioStreams(YoutubeStreamExtractor.java:657)
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:191)
	... 30 more
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
	at org.schabi.newpipe.extractor.utils.Parser.compatParseMap(Parser.java:140)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.buildAndAddItagInfoToList(YoutubeStreamExtractor.java:1533)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.lambda$getStreamsFromStreamingDataKey$28(YoutubeStreamExtractor.java:1507)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.$r8$lambda$UzQHXY7teet_MSd3x5z6Uj_H6mc(Unknown Source:0)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda29.apply(Unknown Source:10)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.Iterator$-CC.$default$forEachRemaining(SourceFile:0)
	at j$.util.Iterator$-EL.forEachRemaining(Unknown Source:10)
	at j$.util.X.forEachRemaining(Unknown Source:24)
	at j$.util.stream.c.G0(SourceFile:0)
	at j$.util.stream.c.Y0(SourceFile:0)
	at j$.util.stream.T.b0(SourceFile:0)
	at j$.util.stream.c.b1(SourceFile:0)
	at j$.util.stream.Z1.forEach(SourceFile:0)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.P.forEachRemaining(Unknown Source:20)
	at j$.util.stream.c.G0(SourceFile:0)
	at j$.util.stream.c.Y0(SourceFile:0)
	at j$.util.stream.T.b0(SourceFile:0)
	at j$.util.stream.c.b1(SourceFile:0)
	at j$.util.stream.Z1.forEachOrdered(SourceFile:0)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1332)
	... 32 more

Crash log 2

org.schabi.newpipe.extractor.exceptions.ExtractionException: Couldn't get video only streams
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:209)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:109)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:88)
	at org.schabi.newpipe.util.ExtractorHelper.getNewStreamInfo(ExtractorHelper.java:132)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:127)
	at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda5.call(Unknown Source:4)
	at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
	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:15868)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	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:317)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:348)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
	at java.lang.Thread.run(Thread.java:1119)
Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get video-only streams
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1340)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getVideoOnlyStreams(YoutubeStreamExtractor.java:673)
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:207)
	... 30 more
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
	at org.schabi.newpipe.extractor.utils.Parser.compatParseMap(Parser.java:140)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.buildAndAddItagInfoToList(YoutubeStreamExtractor.java:1533)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.lambda$getStreamsFromStreamingDataKey$28(YoutubeStreamExtractor.java:1507)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.$r8$lambda$UzQHXY7teet_MSd3x5z6Uj_H6mc(Unknown Source:0)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda29.apply(Unknown Source:10)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.Iterator$-CC.$default$forEachRemaining(SourceFile:0)
	at j$.util.Iterator$-EL.forEachRemaining(Unknown Source:10)
	at j$.util.X.forEachRemaining(Unknown Source:24)
	at j$.util.stream.c.G0(SourceFile:0)
	at j$.util.stream.c.Y0(SourceFile:0)
	at j$.util.stream.T.b0(SourceFile:0)
	at j$.util.stream.c.b1(SourceFile:0)
	at j$.util.stream.Z1.forEach(SourceFile:0)
	at j$.util.stream.T1.accept(SourceFile:0)
	at j$.util.P.forEachRemaining(Unknown Source:20)
	at j$.util.stream.c.G0(SourceFile:0)
	at j$.util.stream.c.Y0(SourceFile:0)
	at j$.util.stream.T.b0(SourceFile:0)
	at j$.util.stream.c.b1(SourceFile:0)
	at j$.util.stream.Z1.forEachOrdered(SourceFile:0)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1332)
	... 32 more


manuel09 avatar May 02 '25 16:05 manuel09

@RA1-Asur Before we find a solution, the only way is to use a VPN. @manuel09 If your ip not blocked, simply log out and the problem will be solved.

InfinityLoop1308 avatar May 02 '25 22:05 InfinityLoop1308

Just updated to 4.3.1 and also get this problem. I previously used 4.3.0 without any problem. Is this regression? Because I used 4.3.0 without any problem right before updating it. Just a minute apart.

lux5am avatar May 04 '25 22:05 lux5am

Strange that i have this issue only when logged in

And when im logged out some videos just refuse to play

rushb133 avatar May 06 '25 17:05 rushb133

The same issue has been fixed in NewPipe 0.27.7.

ghost avatar May 11 '25 07:05 ghost

@cbiere No it's not a fix. They just use the same way we fetch stream details without login. For non-login users we don't have this issue from the beginning.

https://github.com/TeamNewPipe/NewPipe/issues/12248 is the actual fix, but it is at the very beginning. We will definitely adopt it once finished.

InfinityLoop1308 avatar May 11 '25 08:05 InfinityLoop1308

How about it only uses this feature on age restricted videos and has normal videos not use this bugged feature. The only use for logging in is to be able to view age restricted content. If there isn't any way to fix this issue fully then this might be the only way to make logging in viable.

SeedCrackerXEnjoyer avatar May 29 '25 09:05 SeedCrackerXEnjoyer

  1. The login option provides a way to bypass the 403 issue. YouTube is continuously introducing new changes aimed at anonymous users, and ultimately the solution can only be to log in.
  2. Currently, anonymous accounts use the Android extractor, logged-in users use the web extractor, and YouTube now adopts this format only on the web. Therefore, it is possible to bypass this issue without logging in. However, it is almost foreseeable that the SABR format will be fully adopted by YouTube within a few months, and by then there will be no workaround, and any third-party YouTube clients will have to deal with this issue.
  3. Supporting a new private format is a big project, and it takes time. Ideally, we will solve this problem in version 4.5.0.

InfinityLoop1308 avatar May 29 '25 22:05 InfinityLoop1308

@751PARVEEN newpipe has a login feature now?

lux5am avatar Jun 02 '25 10:06 lux5am

No, they don't. As I commented before, we don't have the issue for anonymous users at the beginning.

InfinityLoop1308 avatar Jun 02 '25 23:06 InfinityLoop1308

Update: We've discovered that adding full support to the new SABR stream is a much larger task than expected and is unlikely to be completed for the next few releases. As a workaround, we now use the tvhtml5 extractor to bypass the issue. It is known to have problem for some users, as claimed in https://github.com/yt-dlp/yt-dlp/issues/12563#issuecomment-2708528287, but should work for most cases.

Please test the latest debug apk here, and report the result here.

InfinityLoop1308 avatar Jun 10 '25 11:06 InfinityLoop1308

@InfinityLoop1308 It seems to work just fine for me.

tabbeddev avatar Jun 11 '25 13:06 tabbeddev

Update: We've discovered that adding full support to the new SABR stream is a much larger task than expected and is unlikely to be completed for the next few releases. As a workaround, we now use the tvhtml5 extractor to bypass the issue. It is known to have problem for some users, as claimed in yt-dlp/yt-dlp#12563 (comment), but should work for most cases.

Please test the latest debug apk here, and report the result here.

This works good. Debug apk shows all video qualities while logged in.

njanbobby avatar Jun 11 '25 13:06 njanbobby

It's working fine for me for now. I am signed in, on WiFi and am seeing all the resolutions I expect to see. Fingers crossed this continues.

Note to anyone having trouble installing the debug version in the future:

I had to uninstall my old versions before I could install the debug version (said there was a conflict with an installed program), and I restarted before installing just for good measure.

Also: PipePipe 4.4.2 debug Android 16 Pixel 8 Pro

pamdemonia avatar Jun 12 '25 10:06 pamdemonia

Work perfectly, Pixel 6, on Android 13. Did not have proglem to install the debug alongside the non debug.

Hakirus avatar Jun 16 '25 00:06 Hakirus

Fixed in 4.5.0.

InfinityLoop1308 avatar Jun 20 '25 08:06 InfinityLoop1308

I downloaded the 4.4.2-debug release linked above that was supposed to fix it and it worked for a day but now the exact same errors - ip blocked, login only 360p... Edit: just tried 4.5.0 same issue of IP blocked but after login token the resolutions are available higher at least :)

Tyrsen avatar Jun 21 '25 18:06 Tyrsen