Skip to content

[Bug] YouTube videos often won't play #884

@DrDustwolf

Description

@DrDustwolf

[Bug] YouTube videos often won't play, peertube sometimes also not

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
When I click on a YouTube video the video often won't play. I get this error instead.

Frequency
Since last night I experience this error lots of times. It's a hassle to watch YouTube with PipePipe right now. For some videos I have to retry over and over again until I eventually get the video to work.

Steps to reproduce the bug
Click on a YouTube video (in normal foreground mode) and the error message often pops up right away

Device (e.g. Pixel 9 Pro)

  • Device: Shift6mq
  • 128GB ROM (60.3GB free)
  • 8GB RAM
  • 1TB microSDXC (422,3GB free) (SanDisk Extreme PRO R200/W140 microSDXC 1TB, UHS-I U3, A2, Class 10
    SDSQXCD-1T00-GN6MA)
  • OS: LineageOS 22.1-20250302-microG-axolotl (based on Android 15)

Additional context

  • only very few Apps running in the Background (e.g. Messenger & E-Mail)

Exception

  • User Action: requested stream
  • Request: https://www.youtube.com/watch?v=Ngxgehkg4fc
  • Content Country: GB
  • Content Language: de-DE
  • App Language: de_DE
  • Service: YouTube (Anonymous)
  • Version: 4.2.1
  • OS: Linux Android 15 - 35
Crash log

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:226)
	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:347)
	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:1117)


Exception

  • User Action: requested stream
  • Request: https://www.youtube.com/watch?v=eIcZZX10pa4
  • Content Country: GB
  • Content Language: de-DE
  • App Language: de_DE
  • Service: YouTube (Anonymous)
  • Version: 4.2.1
  • OS: Linux Android 15 - 35
Crash log

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:226)
	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.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:347)
	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:1117)


Describe the bug
Also on peertube PipePipe has problems.

Frequency
Sporadically like every 4-6 videos I get this error.

Exception

Crash log

com.google.android.exoplayer2.ExoPlaybackException: Source error
	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641)
	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:617)
	at android.os.Handler.dispatchMessage(Handler.java:105)
	at android.os.Looper.loopOnce(Looper.java:232)
	at android.os.Looper.loop(Looper.java:317)
	at android.os.HandlerThread.run(HandlerThread.java:85)
Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IllegalArgumentException: null
	at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:433)
	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:1117)
Caused by: java.lang.IllegalArgumentException
	at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:39)
	at com.google.android.exoplayer2.upstream.DataSpec.<init>(DataSpec.java:650)
	at com.google.android.exoplayer2.upstream.DataSpec.subrange(DataSpec.java:708)
	at com.google.android.exoplayer2.upstream.DataSpec.subrange(DataSpec.java:694)
	at com.google.android.exoplayer2.source.hls.HlsMediaChunk.feedDataToExtractor(HlsMediaChunk.java:463)
	at com.google.android.exoplayer2.source.hls.HlsMediaChunk.loadMedia(HlsMediaChunk.java:437)
	at com.google.android.exoplayer2.source.hls.HlsMediaChunk.load(HlsMediaChunk.java:394)
	at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
	... 3 more


Describe the bug
When I click on a link in the description of a peertube video, PipePipe crashes.

Frequency
Nearly every time

Steps to reproduce the bug
Click on a link in the description of a peertube video. PipePipe crashes and the error message pops up right away.
For example click on '2025' in the description text of this video
https://digitalcourage.video/videos/watch/2b0c0946-8d4c-455e-a1b8-11d84b143e8f

Exception

  • User Action: ui error
  • Request: ACRA report
  • Content Country: GB
  • Content Language: de-DE
  • App Language: de_DE
  • Service: none
  • Version: 4.2.1
  • OS: Linux Android 15 - 35
Crash log

java.lang.IllegalArgumentException: The given URL is not valid
	at org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeStreamLinkHandlerFactory.getId(YoutubeStreamLinkHandlerFactory.java:117)
	at org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeStreamLinkHandlerFactory.onAcceptUrl(YoutubeStreamLinkHandlerFactory.java:244)
	at org.schabi.newpipe.extractor.linkhandler.LinkHandlerFactory.acceptUrl(LinkHandlerFactory.java:108)
	at org.schabi.newpipe.extractor.StreamingService.getLinkTypeByUrl(StreamingService.java:380)
	at org.schabi.newpipe.extractor.NewPipe.getServiceByUrl(NewPipe.java:99)
	at org.schabi.newpipe.util.external_communication.InternalUrlsHandler.handleUrl(InternalUrlsHandler.java:145)
	at org.schabi.newpipe.util.external_communication.TextLinkifier$3.onClick(TextLinkifier.java:249)
	at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:244)
	at android.widget.TextView.onTouchEvent(TextView.java:13208)
	at android.view.View.performOnTouchCallback(View.java:16461)
	at android.view.View.dispatchTouchEvent(View.java:16414)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3132)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2817)
	at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:467)
	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1981)
	at android.app.Activity.dispatchTouchEvent(Activity.java:4539)
	at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
	at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
	at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:425)
	at android.view.View.dispatchPointerEvent(View.java:16743)
	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:8031)
	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7791)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7180)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7237)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7203)
	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7369)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7211)
	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7426)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7184)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7237)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7203)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7211)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7184)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:10319)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:10270)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:10238)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:10461)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:295)
	at android.os.MessageQueue.nativePollOnce(Native Method)
	at android.os.MessageQueue.next(MessageQueue.java:358)
	at android.os.Looper.loopOnce(Looper.java:189)
	at android.os.Looper.loop(Looper.java:317)
	at android.app.ActivityThread.main(ActivityThread.java:8787)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:871)


Also on peertube

Describe the bug
The peertube channel won't load

Frequency
Maybe half of the time I try it

Steps to reproduce the bug
Click on the channel/producer of a peertube video. PipePipe loads (circle rotating) and after a while it crashes and shows 'Netzwerkfehler' error.
For example click on the channel 'FSFE Main Channel' while this video is selected or playing.
https://digitalcourage.video/videos/watch/2b0c0946-8d4c-455e-a1b8-11d84b143e8f

Exception

Crash log

com.google.android.exoplayer2.ExoPlaybackException: Source error
	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641)
	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:617)
	at android.os.Handler.dispatchMessage(Handler.java:105)
	at android.os.Looper.loopOnce(Looper.java:232)
	at android.os.Looper.loop(Looper.java:317)
	at android.os.HandlerThread.run(HandlerThread.java:85)
Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IllegalArgumentException: null
	at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:433)
	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:1117)
Caused by: java.lang.IllegalArgumentException
	at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:39)
	at com.google.android.exoplayer2.upstream.DataSpec.<init>(DataSpec.java:650)
	at com.google.android.exoplayer2.upstream.DataSpec.subrange(DataSpec.java:708)
	at com.google.android.exoplayer2.upstream.DataSpec.subrange(DataSpec.java:694)
	at com.google.android.exoplayer2.source.hls.HlsMediaChunk.feedDataToExtractor(HlsMediaChunk.java:463)
	at com.google.android.exoplayer2.source.hls.HlsMediaChunk.loadMedia(HlsMediaChunk.java:437)
	at com.google.android.exoplayer2.source.hls.HlsMediaChunk.load(HlsMediaChunk.java:394)
	at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
	... 3 more


Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions