Skip to content

[YouTube] Only 360p video stream/Could not get audio and video-only streams (SABR enforcement) #12126

Open
@jesuspirate

Description

@jesuspirate

Checklist

  • I am able to reproduce the bug with the latest version given here: CLICK THIS LINK.
  • I made sure that there are no existing issues - open or closed - which I could contribute my information to.
  • I have read the FAQ and my problem isn't listed.
  • I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
  • This issue contains only one bug.
  • I have read and understood the contribution guidelines.

Affected version

0.27.6

Steps to reproduce the bug

Hey folks, I didn't do anything exciting to reproduce this bug.

  1. Open the app
  2. Play a video
  3. Get an error at the bottom with a report button (which lead me here pasting the error below 👇)

Expected behavior

The video should have played with no error.

Actual behavior

The video played, but this error displayed at the bottom suggesting to report it.

Screenshots/Screen recordings

N/A

Logs

Exception

  • User Action: requested stream
  • Request: https://www.youtube.com/watch?v=prxCElDCBdw
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: YouTube
  • Timestamp: 2025-03-25T12:05:14.427-04:00
  • Package: org.schabi.newpipe
  • Service: YouTube
  • Version: 0.27.6
  • OS: Linux Android 15 - 35
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:153)
	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$bVfA-5gb6gDc8jcAgcGWG5oH0FE(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: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:1223)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getAudioStreams(YoutubeStreamExtractor.java:650)
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:149)
	... 29 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:125)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.buildAndAddItagInfoToList(YoutubeStreamExtractor.java:1386)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.lambda$getStreamsFromStreamingDataKey$15(YoutubeStreamExtractor.java:1360)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.$r8$lambda$Db3OkY5wOpYIvq9uxmsIvYyLcaY(YoutubeStreamExtractor.java:0)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda13.apply(R8$$SyntheticClass:0)
	at j$.util.stream.q.accept(SourceFile:195)
	at j$.util.stream.q.accept(SourceFile:195)
	at j$.util.stream.q.accept(SourceFile:177)
	at j$.util.a.forEachRemaining(SourceFile:720)
	at j$.util.stream.b.n(SourceFile:484)
	at j$.util.stream.b.O(SourceFile:474)
	at j$.util.stream.Q.b(SourceFile:150)
	at j$.util.stream.b.w(SourceFile:234)
	at j$.util.stream.j2.forEach(SourceFile:497)
	at j$.util.stream.p.accept(SourceFile:274)
	at j$.util.S.forEachRemaining(SourceFile:948)
	at j$.util.stream.b.n(SourceFile:484)
	at j$.util.stream.b.O(SourceFile:474)
	at j$.util.stream.Q.b(SourceFile:150)
	at j$.util.stream.b.w(SourceFile:234)
	at j$.util.stream.j2.forEachOrdered(SourceFile:502)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1215)
	... 31 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:165)
	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$bVfA-5gb6gDc8jcAgcGWG5oH0FE(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: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:1223)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getVideoOnlyStreams(YoutubeStreamExtractor.java:664)
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:163)
	... 29 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:125)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.buildAndAddItagInfoToList(YoutubeStreamExtractor.java:1386)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.lambda$getStreamsFromStreamingDataKey$15(YoutubeStreamExtractor.java:1360)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.$r8$lambda$Db3OkY5wOpYIvq9uxmsIvYyLcaY(YoutubeStreamExtractor.java:0)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda13.apply(R8$$SyntheticClass:0)
	at j$.util.stream.q.accept(SourceFile:195)
	at j$.util.stream.q.accept(SourceFile:195)
	at j$.util.stream.q.accept(SourceFile:177)
	at j$.util.a.forEachRemaining(SourceFile:720)
	at j$.util.stream.b.n(SourceFile:484)
	at j$.util.stream.b.O(SourceFile:474)
	at j$.util.stream.Q.b(SourceFile:150)
	at j$.util.stream.b.w(SourceFile:234)
	at j$.util.stream.j2.forEach(SourceFile:497)
	at j$.util.stream.p.accept(SourceFile:274)
	at j$.util.S.forEachRemaining(SourceFile:948)
	at j$.util.stream.b.n(SourceFile:484)
	at j$.util.stream.b.O(SourceFile:474)
	at j$.util.stream.Q.b(SourceFile:150)
	at j$.util.stream.b.w(SourceFile:234)
	at j$.util.stream.j2.forEachOrdered(SourceFile:502)
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getItags(YoutubeStreamExtractor.java:1215)
	... 31 more


Affected Android/Custom ROM version

GrapheneOS

Affected device model

Pixel 8

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIssue is related to a bugdownloaderIssue is related to the downloaderhelp wantedHelp is wanted in fixing this issueplayerIssues related to any player (main, popup and background)requires extractor changeThis issue requires a change to the extractoryoutubeService, https://www.youtube.com/

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions