Checklist (Your issue will be automatically closed if you delete this part)
- [ ✓ ] I make sure that there are no existing issues - open or closed - which I could contribute my information to.
- [ ✓ ] I understand that issues with limited impact, such as those occurring on specific devices or under specific network conditions, will not be fixed.
- [ ✓ ] I am able to reproduce the bug with the latest version given here: CLICK THIS LINK.
- [ ✓ ] I have attached the error report in the issue.
Describe the bug
Whenever I watching video, sometimes it'll get the error that the audio streams can't be obtained from YouTube servers (likely they changed again, perhaps?) Also, when it couldn't get that audio streams, the video quality is limited to 360p.
Frequency
Sometimes, but not all videos likely got this error, yet
Steps to reproduce the bug
- Open PipePipe as usual
- Find the random videos on YouTube side
- Wait until the video loaded
- If you got "sorry, something went wrong" error on the bottom on some videos, you'll likely get that possibly new audio streams implementation from Google or something idk (but prove me wrong)
Device (e.g. Pixel 9 Pro)
Xiaomi Redmi Note 4 running MIUI 11.0.2 (stock ROM), Android 7.0
Error report
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(ExtractorHelper.java)
at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda5.call(R8$$SyntheticClass)
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:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:760)
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(YoutubeStreamExtractor.java)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda29.apply(R8$$SyntheticClass)
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(SourceFile)
at j$.util.X.forEachRemaining(SourceFile)
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(SourceFile)
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
-------------------------------------
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(ExtractorHelper.java)
at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda5.call(R8$$SyntheticClass)
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:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:760)
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(YoutubeStreamExtractor.java)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda29.apply(R8$$SyntheticClass)
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(SourceFile)
at j$.util.X.forEachRemaining(SourceFile)
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(SourceFile)
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
Additional context
I don't know if this yet another new YouTube implementation that they testing on all users (even signed in), but hopefully it can be fixed anytime soon.
Checklist (Your issue will be automatically closed if you delete this part)
Describe the bug
Whenever I watching video, sometimes it'll get the error that the audio streams can't be obtained from YouTube servers (likely they changed again, perhaps?) Also, when it couldn't get that audio streams, the video quality is limited to 360p.
Frequency
Sometimes, but not all videos likely got this error, yet
Steps to reproduce the bug
Device (e.g. Pixel 9 Pro)
Xiaomi Redmi Note 4 running MIUI 11.0.2 (stock ROM), Android 7.0
Error report
Additional context
I don't know if this yet another new YouTube implementation that they testing on all users (even signed in), but hopefully it can be fixed anytime soon.