null #3345ContentNotSupportedException when the content is not yet supported TeamNewPipe/NewPipeExtractor#300Corresponding pull request #3478
Just tested this build, opening ended livestream seems to crash for some reason.
Crash Log: https://del.dog/pimecognan.txt
Example URL: https://www.youtube.com/watch?v=R3yCSo5-Sus
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.extractors.YoutubeStreamExtractor.getErrorMessage(YoutubeStreamExtractor.java:580)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:81)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:62)
at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:116)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$5fJcha6Sq5APJBLdG6osaJby-mc.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:919)
@FireMasterK Thank you for the report. This crash happens on 0.19.1 and 0.19.2, too. However, error message will be different in the next RC due to @wb9688's changes in TeamNewPipe/NewPipeExtractor#317.
Ended live streams aren't handled correctly.
The release candidate package name is usually org.schabi.newpipe.debug.release. For this one it is just org.schabi.newpipe.debug like any testing apk before the branch name change. That naming fix for F-Droid might have introduced this?
rotating the screen in the feed section or in the playlists crashes the app.
Crash log
java.lang.NullPointerException
at org.schabi.newpipe.fragments.list.BaseListFragment.getFocusedPosition(BaseListFragment.java:134)
at org.schabi.newpipe.fragments.list.BaseListFragment.writeTo(BaseListFragment.java:152)
at org.schabi.newpipe.fragments.list.BaseListInfoFragment.writeTo(BaseListInfoFragment.java:79)
at org.schabi.newpipe.util.StateSaver.tryToSave(StateSaver.java:219)
at org.schabi.newpipe.util.StateSaver.tryToSave(StateSaver.java:177)
at org.schabi.newpipe.fragments.list.BaseListFragment.onSaveInstanceState(BaseListFragment.java:187)
at androidx.fragment.app.Fragment.performSaveInstanceState(Fragment.java:2766)
at androidx.fragment.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManagerImpl.java:2289)
at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManagerImpl.java:2348)
at androidx.fragment.app.Fragment.performSaveInstanceState(Fragment.java:2768)
at androidx.fragment.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManagerImpl.java:2289)
at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManagerImpl.java:2348)
at androidx.fragment.app.FragmentController.saveAllState(FragmentController.java:151)
at androidx.fragment.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:513)
at androidx.appcompat.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:533)
at android.app.Activity.performSaveInstanceState(Activity.java:1147)
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1222)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3839)
at android.app.ActivityThread.access$700(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5297)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Search music pop live, i have receive this
Crash log
org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get duration
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamInfoItemExtractor.getDuration(YoutubeStreamInfoItemExtractor.java:127)
at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:54)
at org.schabi.newpipe.extractor.search.InfoItemsSearchCollector.extract(InfoItemsSearchCollector.java:84)
at org.schabi.newpipe.extractor.search.InfoItemsSearchCollector.extract(InfoItemsSearchCollector.java:50)
at org.schabi.newpipe.extractor.InfoItemsCollector.commit(InfoItemsCollector.java:87)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.collectStreamsFrom(YoutubeSearchExtractor.java:126)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.getInitialPage(YoutubeSearchExtractor.java:87)
at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)
at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:50)
at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:30)
at org.schabi.newpipe.util.ExtractorHelper.lambda$searchFor$0(ExtractorHelper.java:80)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$BBduYDeZ_vXMQYaemaggmTPtqvA.call(lambda)
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.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:234)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:838)
-------------------
org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get duration
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamInfoItemExtractor.getDuration(YoutubeStreamInfoItemExtractor.java:127)
at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:54)
at org.schabi.newpipe.extractor.search.InfoItemsSearchCollector.extract(InfoItemsSearchCollector.java:84)
at org.schabi.newpipe.extractor.search.InfoItemsSearchCollector.extract(InfoItemsSearchCollector.java:50)
at org.schabi.newpipe.extractor.InfoItemsCollector.commit(InfoItemsCollector.java:87)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.collectStreamsFrom(YoutubeSearchExtractor.java:126)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.getInitialPage(YoutubeSearchExtractor.java:87)
at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)
at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:50)
at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:30)
at org.schabi.newpipe.util.ExtractorHelper.lambda$searchFor$0(ExtractorHelper.java:80)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$BBduYDeZ_vXMQYaemaggmTPtqvA.call(lambda)
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.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:234)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:838)
-------------------
org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get duration
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamInfoItemExtractor.getDuration(YoutubeStreamInfoItemExtractor.java:127)
at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:54)
at org.schabi.newpipe.extractor.search.InfoItemsSearchCollector.extract(InfoItemsSearchCollector.java:84)
at org.schabi.newpipe.extractor.search.InfoItemsSearchCollector.extract(InfoItemsSearchCollector.java:50)
at org.schabi.newpipe.extractor.InfoItemsCollector.commit(InfoItemsCollector.java:87)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.collectStreamsFrom(YoutubeSearchExtractor.java:126)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.getInitialPage(YoutubeSearchExtractor.java:87)
at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)
at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:50)
at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:30)
at org.schabi.newpipe.util.ExtractorHelper.lambda$searchFor$0(ExtractorHelper.java:80)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$BBduYDeZ_vXMQYaemaggmTPtqvA.call(lambda)
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.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:234)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:838)
@Domiuns: I can't reproduce your first issue. The latter isn't a regression. Those items just don't seem to have an indicator that they're live streams, thus causing us to try to get the duration of the video, which fails. Here is an example videoInfo:
{"thumbnail":{"thumbnails":[{"width":168,"url":"https://i.ytimg.com/vi/WawwqrfvnWE/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB&rs=AOn4CLDLLOQFShmbPkXmjWmV4FLJ5_XszQ","height":94},{"width":196,"url":"https://i.ytimg.com/vi/WawwqrfvnWE/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB&rs=AOn4CLAJ712vpJABxY1-lrMqRKGAuQSoPg","height":110},{"width":246,"url":"https://i.ytimg.com/vi/WawwqrfvnWE/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLBWuoR3WcHE8Pme0yaUjQDCKBfAjw","height":138},{"width":336,"url":"https://i.ytimg.com/vi/WawwqrfvnWE/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLCCVqEfAHTsR88Upg17Z0XrigSufA","height":188}]},"videoId":"WawwqrfvnWE","title":{"accessibility":{"accessibilityData":{"label":"Pal Station Live Radio - New Popular Music 2019 Best English Songs Of All Time & Pop Music 2020 by Pal Media 11 months ago 2,251,505 views"}},"runs":[{"text":"Pal Station Live Radio - New Popular Music 2019 Best English Songs Of All Time & Pop Music 2020"}]},"shortBylineText":{"runs":[{"text":"Pal Media","navigationEndpoint":{"commandMetadata":{"webCommandMetadata":{"rootVe":3611,"webPageType":"WEB_PAGE_TYPE_BROWSE","url":"/channel/UCRsMXFxsTElLUSkX0hMjn9A"}},"clickTrackingParams":"CF0Q3DAYAyITCP2PkvKVhOkCFRvFVQodqGwKOA==","browseEndpoint":{"browseId":"UCRsMXFxsTElLUSkX0hMjn9A"}}}]},"menu":{"menuRenderer":{"trackingParams":"CF0Q3DAYAyITCP2PkvKVhOkCFRvFVQodqGwKOA==","accessibility":{"accessibilityData":{"label":"Action menu"}},"items":[{"menuServiceItemRenderer":{"trackingParams":"CGAQ_pgEGAMiEwj9j5LylYTpAhUbxVUKHahsCjg=","icon":{"iconType":"ADD_TO_QUEUE_TAIL"},"text":{"runs":[{"text":"Add to queue"}]},"serviceEndpoint":{"commandMetadata":{"webCommandMetadata":{"sendPost":true,"url":"/service_ajax"}},"clickTrackingParams":"CGAQ_pgEGAMiEwj9j5LylYTpAhUbxVUKHahsCjg=","signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"commandMetadata":{"webCommandMetadata":{}},"clickTrackingParams":"CGAQ_pgEGAMiEwj9j5LylYTpAhUbxVUKHahsCjg=","addToPlaylistCommand":{"onCreateListCommand":{"commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create","url":"/service_ajax"}},"createPlaylistServiceEndpoint":{"params":"CAQ%3D","videoIds":["WawwqrfvnWE"]},"clickTrackingParams":"CGAQ_pgEGAMiEwj9j5LylYTpAhUbxVUKHahsCjg="},"openMiniplayer":true,"listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","videoIds":["WawwqrfvnWE"]}}]}}}}]}},"thumbnailOverlays":[{"thumbnailOverlayToggleButtonRenderer":{"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"toggledTooltip":"Added","trackingParams":"CF8Q-ecDGAAiEwj9j5LylYTpAhUbxVUKHahsCjg=","toggledAccessibility":{"accessibilityData":{"label":"Added"}},"untoggledTooltip":"Watch later","untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"untoggledServiceEndpoint":{"commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist","url":"/service_ajax"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"WawwqrfvnWE","action":"ACTION_ADD_VIDEO"}]},"clickTrackingParams":"CF8Q-ecDGAAiEwj9j5LylYTpAhUbxVUKHahsCjg="},"toggledServiceEndpoint":{"commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist","url":"/service_ajax"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"removedVideoId":"WawwqrfvnWE","action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID"}]},"clickTrackingParams":"CF8Q-ecDGAAiEwj9j5LylYTpAhUbxVUKHahsCjg="},"isToggled":false}},{"thumbnailOverlayToggleButtonRenderer":{"untoggledIcon":{"iconType":"ADD_TO_QUEUE_TAIL"},"toggledIcon":{"iconType":"PLAYLIST_ADD_CHECK"},"toggledTooltip":"Added","trackingParams":"CF4Qx-wEGAEiEwj9j5LylYTpAhUbxVUKHahsCjg=","toggledAccessibility":{"accessibilityData":{"label":"Added"}},"untoggledTooltip":"Add to queue","untoggledAccessibility":{"accessibilityData":{"label":"Add to queue"}},"untoggledServiceEndpoint":{"commandMetadata":{"webCommandMetadata":{"sendPost":true,"url":"/service_ajax"}},"clickTrackingParams":"CF4Qx-wEGAEiEwj9j5LylYTpAhUbxVUKHahsCjg=","signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"commandMetadata":{"webCommandMetadata":{}},"clickTrackingParams":"CF4Qx-wEGAEiEwj9j5LylYTpAhUbxVUKHahsCjg=","addToPlaylistCommand":{"onCreateListCommand":{"commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create","url":"/service_ajax"}},"createPlaylistServiceEndpoint":{"params":"CAQ%3D","videoIds":["WawwqrfvnWE"]},"clickTrackingParams":"CF4Qx-wEGAEiEwj9j5LylYTpAhUbxVUKHahsCjg="},"openMiniplayer":true,"listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","videoIds":["WawwqrfvnWE"]}}]}}}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"ownerText":{"runs":[{"text":"Pal Media","navigationEndpoint":{"commandMetadata":{"webCommandMetadata":{"rootVe":3611,"webPageType":"WEB_PAGE_TYPE_BROWSE","url":"/channel/UCRsMXFxsTElLUSkX0hMjn9A"}},"clickTrackingParams":"CF0Q3DAYAyITCP2PkvKVhOkCFRvFVQodqGwKOA==","browseEndpoint":{"browseId":"UCRsMXFxsTElLUSkX0hMjn9A"}}}]},"longBylineText":{"runs":[{"text":"Pal Media","navigationEndpoint":{"commandMetadata":{"webCommandMetadata":{"rootVe":3611,"webPageType":"WEB_PAGE_TYPE_BROWSE","url":"/channel/UCRsMXFxsTElLUSkX0hMjn9A"}},"clickTrackingParams":"CF0Q3DAYAyITCP2PkvKVhOkCFRvFVQodqGwKOA==","browseEndpoint":{"browseId":"UCRsMXFxsTElLUSkX0hMjn9A"}}}]},"trackingParams":"CF0Q3DAYAyITCP2PkvKVhOkCFRvFVQodqGwKOEDhur6_q5WM1lk=","showActionMenu":false,"publishedTimeText":{"simpleText":"11 months ago"},"viewCountText":{"simpleText":"2,251,505 views"},"shortViewCountText":{"simpleText":"2.2M views"},"channelThumbnailSupportedRenderers":{"channelThumbnailWithLinkRenderer":{"thumbnail":{"thumbnails":[{"width":68,"url":"https://yt3.ggpht.com/a-/AOh14Ggf8zXNijRH4gxT096Dt6WbrFNFLlreNVSZlw=s68-c-k-c0x00ffffff-no-rj-mo","height":68}]},"accessibility":{"accessibilityData":{"label":"Go to channel"}},"navigationEndpoint":{"commandMetadata":{"webCommandMetadata":{"rootVe":3611,"webPageType":"WEB_PAGE_TYPE_BROWSE","url":"/channel/UCRsMXFxsTElLUSkX0hMjn9A"}},"clickTrackingParams":"CF0Q3DAYAyITCP2PkvKVhOkCFRvFVQodqGwKOA==","browseEndpoint":{"browseId":"UCRsMXFxsTElLUSkX0hMjn9A"}}}},"descriptionSnippet":{"runs":[{"text":"Pal Station Radio "},{"text":"Live Music","bold":true},{"text":" Radio - New Popular "},{"text":"Music","bold":true},{"text":" 2019 Best English Songs Of All Time & "},{"text":"Pop Music","bold":true},{"text":" 2020 Pal Media聽..."}]},"navigationEndpoint":{"commandMetadata":{"webCommandMetadata":{"rootVe":3832,"webPageType":"WEB_PAGE_TYPE_WATCH","url":"/watch?v=WawwqrfvnWE"}},"clickTrackingParams":"CF0Q3DAYAyITCP2PkvKVhOkCFRvFVQodqGwKODIGc2VhcmNoUg5tdXNpYyBwb3AgbGl2ZZoBAxD0JA==","watchEndpoint":{"videoId":"WawwqrfvnWE"}}}
Crash with auto-rotation enabled : Newpipe 19.3 RC1 debug version
Hello Newpipe team,
Thank you for the wonderful work creating and maintaining Newpipe.
This does not occur with Newpipe 19.2.
Please let me know if you have any questions or need more information.
Crash log
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.ViewGroup.getFocusedChild()' on a null object reference
at org.schabi.newpipe.fragments.list.BaseListFragment.getFocusedPosition(BaseListFragment.java:134)
at org.schabi.newpipe.fragments.list.BaseListFragment.writeTo(BaseListFragment.java:152)
at org.schabi.newpipe.fragments.list.BaseListInfoFragment.writeTo(BaseListInfoFragment.java:79)
at org.schabi.newpipe.util.StateSaver.tryToSave(StateSaver.java:219)
at org.schabi.newpipe.util.StateSaver.tryToSave(StateSaver.java:177)
at org.schabi.newpipe.fragments.list.BaseListFragment.onSaveInstanceState(BaseListFragment.java:187)
at androidx.fragment.app.Fragment.performSaveInstanceState(Fragment.java:2766)
at androidx.fragment.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManagerImpl.java:2289)
at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManagerImpl.java:2348)
at androidx.fragment.app.Fragment.performSaveInstanceState(Fragment.java:2768)
at androidx.fragment.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManagerImpl.java:2289)
at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManagerImpl.java:2348)
at androidx.fragment.app.FragmentController.saveAllState(FragmentController.java:151)
at androidx.fragment.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:513)
at androidx.appcompat.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:533)
at android.app.Activity.performSaveInstanceState(Activity.java:1507)
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1308)
at android.app.ActivityThread.callCallActivityOnSaveInstanceState(ActivityThread.java:5045)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4968)
at android.app.ActivityThread.-wrap21(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1665)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6823)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1557)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
This does not occur with Newpipe 19.2.
From crash after selecting Trending above:
Crash log
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View androidx.recyclerview.widget.RecyclerView.getFocusedChild()' on a null object reference
at org.schabi.newpipe.fragments.list.BaseListFragment.getFocusedPosition(BaseListFragment.java:134)
at org.schabi.newpipe.fragments.list.BaseListFragment.writeTo(BaseListFragment.java:152)
at org.schabi.newpipe.fragments.list.BaseListInfoFragment.writeTo(BaseListInfoFragment.java:79)
at org.schabi.newpipe.util.StateSaver.tryToSave(StateSaver.java:219)
at org.schabi.newpipe.util.StateSaver.tryToSave(StateSaver.java:177)
at org.schabi.newpipe.fragments.list.BaseListFragment.onSaveInstanceState(BaseListFragment.java:187)
at androidx.fragment.app.Fragment.performSaveInstanceState(Fragment.java:2766)
at androidx.fragment.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManagerImpl.java:2289)
at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManagerImpl.java:2348)
at androidx.fragment.app.Fragment.performSaveInstanceState(Fragment.java:2768)
at androidx.fragment.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManagerImpl.java:2289)
at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManagerImpl.java:2348)
at androidx.fragment.app.FragmentController.saveAllState(FragmentController.java:151)
at androidx.fragment.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:513)
at androidx.appcompat.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:533)
at android.app.Activity.performSaveInstanceState(Activity.java:1550)
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1444)
at android.app.ActivityThread.callActivityOnSaveInstanceState(ActivityThread.java:5003)
at android.app.ActivityThread.callActivityOnStop(ActivityThread.java:4325)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:4951)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4888)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1864)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:205)
at android.app.ActivityThread.main(ActivityThread.java:6996)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:884)
I pushed a fix for the rotation bug at #3495. Could you test it out? Here is a debug apk: app-debug.zip
I pushed a fix for the rotation bug at #3495. Could you test it out? Here is a debug apk: app-debug.zip
Appears to be fixed for the cases I reported. Awesome :+1:
Here is RC2: NewPipe_0.19.3_RC2.apk.zip
Fixed: rotation bug
Improved: detect more tv devices
It also fixed the package name. Thanks!
Last RC: NewPipe_v0.19.3_RC3.apk.zip
Any news fixes since RC2?
Last RC: NewPipe_v0.19.3_RC3.apk.zip
@androidSwDev099: Yes, TeamNewPipe/nanojson#3 and some more translations
i get a crash report when searching for albums in YouTube music
Is youtube music a dedicated option or a part of yt?
@MD77MD: What search term are you using? And could you post the crash report here (using the markdown converter)?
@surrodox2001: It's a search filter, i.e. if you have YouTube as active service, press the vertical ellipsis when searching and you have that option.
I think the issue is not when searching, but when using results: YouTube Music albums cause crashes because of an unhandled banner

See https://github.com/TeamNewPipe/NewPipe/issues/3218 https://github.com/TeamNewPipe/NewPipe/issues/3317, and the fix but not ready https://github.com/TeamNewPipe/NewPipeExtractor/pull/285
NewPipe_v0.19.3_RC4.apk.zip fixes the crash when searching for YouTube Music albums.
@TobiGr @wb9688 Why is extractor version 0.19.4 and not 0.19.3?
https://github.com/TeamNewPipe/NewPipeExtractor/commit/8a79b14077c59d17b2aea7cffe93feb3ce6f2ed4
@opusforlife2 because I have fat fingers...
Most helpful comment
@opusforlife2 because I have fat fingers...