[YouTube] Unable to extract videos without metadata on official clients (channel, description, ...)
Checklist
- [x] I am using the latest version - 0.20.8
- [x] I checked, but didn't find any duplicates (open OR closed) of this issue in the repo.
- [x] I have read the contribution guidelines given at https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md.
- [x] This issue contains only one bug. I will open one issue for every bug report I want to file.
Steps to reproduce the bug
Attempt to watch this video: https://www.youtube.com/watch?v=5MPmOQOJHiQ
Actual behaviour
It crashes.
Expected behavior
It plays. This video doesn't have a description or channel on the website or YouTube app either.
Screenshots/Screen recordings
Logs
Exception
- User Action: requested stream
- Request: https://www.youtube.com/embed/5MPmOQOJHiQ, opened with popup_player
- Content Country: US
- Content Language: en-US
- App Language: en_US
- Service: YouTube
- Version: 0.20.8
- OS: Linux Android 10 - 29
Crash log
org.schabi.newpipe.extractor.exceptions.ParsingException: Could not find videoSecondaryInfoRenderer
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getVideoSecondaryInfoRenderer(YoutubeStreamExtractor.java:914)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getAgeLimit(YoutubeStreamExtractor.java:246)
at org.schabi.newpipe.extractor.stream.StreamInfo.extractImportantData(StreamInfo.java:106)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:71)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:127)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$YTHJjScxCJNO1LTCqs3IKy35iyY.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:15753)
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.SingleObserveOn.subscribeActual(SingleObserveOn.java:35)
at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4799)
at org.schabi.newpipe.RouterActivity$FetcherService.handleChoice(RouterActivity.java:644)
at org.schabi.newpipe.RouterActivity$FetcherService.onHandleIntent(RouterActivity.java:616)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:78)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.os.HandlerThread.run(HandlerThread.java:67)
Device info
- Android version/Custom ROM version: Android 10 (OneUI 2.0)
- Device model: Samsung Galaxy Tab S5e
Another video exhibiting the same problem: https://www.youtube.com/watch?v=CJ2u3pRpCjc
https://youtu.be/biOqM5BRTDs another one on the latest version 0.23.2
I just encountered this error when attempting to watch this video: https://www.youtube.com/watch?v=dUSAl4f4RVw. Upon retrying after getting the error, the video loaded properly.
The crash log however was slightly different than what the OP encountered, so I'll be posting it here if it's needed for any reason.
Exception
- User Action: requested stream
- Request: https://www.youtube.com/watch?v=dUSAl4f4RVw
- Content Country: US
- Content Language: en-US
- App Language: en_US
- Service: YouTube
- Version: 0.24.0
- OS: Linux Android 13 - 33
Crash log
org.schabi.newpipe.extractor.exceptions.ParsingException: Could not find videoSecondaryInfoRenderer
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.lambda$getVideoSecondaryInfoRenderer$13(YoutubeStreamExtractor.java:1248)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.$r8$lambda$iPfQI1GF6Vw31NLtJaU6LI5S0IU(Unknown Source:0)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$$ExternalSyntheticLambda26.get(Unknown Source:0)
at j$.util.Optional.orElseThrow(Unknown Source:5)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getVideoSecondaryInfoRenderer(YoutubeStreamExtractor.java:1247)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getAgeLimit(YoutubeStreamExtractor.java:312)
at org.schabi.newpipe.extractor.stream.StreamInfo.extractImportantData(StreamInfo.java:115)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:81)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:73)
at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:118)
at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0)
at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda6.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:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Please test the APK linked in TeamNewPipe/NewPipeExtractor#968.