Newpipe: Albums from Youtube Music are crashing after that the app is killed

Created on 31 Mar 2020  Â·  3Comments  Â·  Source: TeamNewPipe/NewPipe

Version

  • 0.19.0, and also 0.19.1

Steps to reproduce the bug


Steps to reproduce the behavior:

  1. Pick an album from music.youtube.com, save it. For example (because i'll add the crash report), Future nostalgia, or you can go on music.youtube.com and search by album.
  2. Force close the app, or wait until Android will automatically do this
  3. Now open it again, from the bookmarked playlist, not from the link. It will produce the crash (if the app was indeed killed).

Expected behavior

It's expected not to crash

Actual behaviour

It crashes

More context

I've noticed that NewPipe converts the playlist, from music.youtube.com link: https://music.youtube.com/playlist?list=OLAK5uy_nQ_PpYn5QCPzEy6bLDHa001g6oruRlBmg , to a youtube.com link: https://www.youtube.com/playlist?list=OLAK5uy_nQ_PpYn5QCPzEy6bLDHa001g6oruRlBmg
maybe it is related.
Reopening the playlist from the link debug and doesn't produce the crash anymore, but as soon as you force stop the app, it does again that.

It doesn't happen with playlist mixes like TOP 50, Trending 20… which start with RDCLAK
Neither with user created playlists, it seems to be only albums.

Logs

Exception

Crash log

java.lang.NullPointerException: Attempt to invoke virtual method 'com.grack.nanojson.JsonObject com.grack.nanojson.JsonObject.getObject(java.lang.String)' on a null object reference
    at org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.defaultAlertsCheck(YoutubeParsingHelper.java:404)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubePlaylistExtractor.onFetchPage(YoutubePlaylistExtractor.java:43)
    at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:56)
    at org.schabi.newpipe.extractor.playlist.PlaylistInfo.getInfo(PlaylistInfo.java:29)
    at org.schabi.newpipe.util.ExtractorHelper.lambda$getPlaylistInfo$9(ExtractorHelper.java:176)
    at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$_QwiJvTe_SoIGFHJ5lSdqLNGnh8.call(Unknown Source:4)
    at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
    at io.reactivex.Single.subscribe(Single.java:3438)
    at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
    at io.reactivex.Single.subscribe(Single.java:3438)
    at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.Maybe.subscribe(Maybe.java:4154)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
    at io.reactivex.Flowable.subscribe(Flowable.java:14479)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
    at io.reactivex.Maybe.subscribe(Maybe.java:4154)
    at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
    at io.reactivex.Single.subscribe(Single.java:3438)
    at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
    at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:764)



bug requires extractor change youtube

Most helpful comment

Here's why:

why

And sometimes YouTube doesn't give it at all, so it is able to load normally in those cases.

There's a pull request fixing it: TeamNewPipe/NewPipeExtractor#285

All 3 comments

I've noticed that NewPipe converts the playlist, from music.youtube.com link: https://music.youtube.com/playlist?list=OLAK5uy_nQ_PpYn5QCPzEy6bLDHa001g6oruRlBmg , to a youtube.com link: https://www.youtube.com/playlist?list=OLAK5uy_nQ_PpYn5QCPzEy6bLDHa001g6oruRlBmg maybe it is related.

No, it isn't. This is just another YouTube bug in NewPipeExtractor, next time please file extractor issues in that repo. I'll look into it soon.

Here's why:

why

And sometimes YouTube doesn't give it at all, so it is able to load normally in those cases.

There's a pull request fixing it: TeamNewPipe/NewPipeExtractor#285

Fixed by TeamNewPipe/NewPipeExtractor#323

Was this page helpful?
0 / 5 - 0 ratings