Corresponding PR #3267
RC2 with updated translations:
NewPipe_v0.19.0_RC2_debug.apk.zip
One subscription in my feed is not loading:
Disregard.
Crash log
org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException: 0:https://www.youtube.com/channel/UCUgTZLBQUOE14NOu9iclvtA
at org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException$Companion.wrapList(FeedLoadService.kt:162)
at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1$1.run(FeedLoadService.kt:311)
at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:386)
at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:300)
at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:63)
at io.reactivex.internal.operators.flowable.FlowableDoOnEach$DoOnEachSubscriber.onNext(FlowableDoOnEach.java:86)
at io.reactivex.internal.operators.flowable.FlowableBuffer$PublisherBufferExactSubscriber.onComplete(FlowableBuffer.java:152)
at io.reactivex.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.checkTerminated(FlowableObserveOn.java:215)
at io.reactivex.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:399)
at io.reactivex.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:176)
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)
Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Could not find Videos tab
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getVideoTab(YoutubeChannelExtractor.java:313)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getInitialPage(YoutubeChannelExtractor.java:229)
at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)
at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:82)
at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:47)
at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$4(ExtractorHelper.java:128)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$u5W7VszTe8AoEexIsFM9huQfbkM.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.Single.blockingGet(Single.java:2699)
at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:214)
at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:63)
at io.reactivex.internal.operators.parallel.ParallelMap$ParallelMapSubscriber.onNext(ParallelMap.java:113)
at io.reactivex.internal.operators.parallel.ParallelFilter$ParallelFilterSubscriber.tryOnNext(ParallelFilter.java:130)
at io.reactivex.internal.operators.parallel.ParallelRunOn$RunOnConditionalSubscriber.run(ParallelRunOn.java:397)
... 7 more
@snappyapple632: That channel doesn't have any uploaded videos.
You're right, it's a Topic, not a real channel.
The "more" button with the help option on the top right disappears when you enter one of the screen from the navigaiton drawer or the search and press back to get to "what's new" again

Crash !
I can't use youtube music defined playlist anymore, like "top 100 world", "today's hit"…
I put them in my bookmarked playlist, it works with 0.18.7, and before (it worked with 0.18.4 too)
Crash log
org.schabi.newpipe.extractor.exceptions.ParsingException: Malformed unacceptable url: https://www.youtube.com/playlist?list=RDCLAK5uy_ly6s4irLuZAcjEDwJmqcA_UtSipMyGgbQ
at org.schabi.newpipe.extractor.linkhandler.LinkHandlerFactory.fromUrl(LinkHandlerFactory.java:54)
at org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory.fromUrl(ListLinkHandlerFactory.java:43)
at org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory.fromUrl(ListLinkHandlerFactory.java:36)
at org.schabi.newpipe.extractor.StreamingService.getPlaylistExtractor(StreamingService.java:257)
at org.schabi.newpipe.extractor.playlist.PlaylistInfo.getInfo(PlaylistInfo.java:28)
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)
Edit: it also says "url not supported" with RC, it's not the case with 0.18.7
Crash !
I can't use youtube music defined playlist anymore, like "top 100 world", "today's hit"…
I put them in my bookmarked playlist, it works with 0.18.7, and before (it worked with 0.18.4 too)Edit: it also says "url not supported" with RC, it's not the case with 0.18.7
@B0pol
Could this be related to TeamNewPipe/NewPipeExtractor#276.
It's not mentioned in the changelog, but looking at the updated extractor hash, it seems to be part of this release.
@jniniinoinoino: That channel doesn't exist anymore.
@B0pol: IDs of mixes start with RD, that's why it doesn't accept that playlist anymore now. It should check that and when it doesn't start with RDCLAK. @TobiGr is working on it.
@jniniinoinoino: Look at the first line of your crash log. It contains a link to a channel that doesn't exist anymore.
I loaded the subs, and one channel wouldn't load. It reports an error every time I reload the subs
We need better handling for these kinds of errors. When we see that the channel has been deleted, we should tell the user and ask whether to delete this channel.
I loaded the subs, and one channel wouldn't load. It reports an error every time I reload the subs
We need better handling for these kinds of errors. When we see that the channel has been deleted, we should tell the user and ask whether to delete this channel.
There is a PR about it https://github.com/TeamNewPipe/NewPipeExtractor/pull/230
@B0pol: IDs of mixes start with RD, that's why it doesn't accept that playlist anymore now. It should check that and when it doesn't start with RDCLAK. @TobiGr is working on it.
Thank you
@XiangRongLin: The "more" button with the help option on the top right disappears when you enter one of the screen from the navigaiton drawer or the search and press back to get to "what's new" again
Thanks for the reminder, I actually noticed this bug before but totally forgot about it. I really should've opened a separate issue for it, as it affects anything with a menu item...
I'll try to push a fix for it in a bit.
@TobiGr: Can #3259 made it to this release?
Can I open another issue?.
The 3 dots no longer has the option to select Downloads directly from an open video. Neither can you pull out the side menu from the left when inside an open video. Which means I have to go all the way back to the What's New and from there I can now pull out the side menu and access Downloads. Very inconvenient
Just long press on Download button, and there you can access to Downloads
Guys I found an issue.
https://www.youtube.com/channel/UCHOgE8XeaCjlgvH0t01fVZg
This channel has three live streams, but only one is shown in an up to date feed list (fast mode disabled). I only added this channel to test this.
CC @mauriciocolli
@Poolitzer it has only one listed in the videos tab, which is what's currently fetched.
Should and will be fixed when we finish the tabs integration.
@mauriciocolli It is, but down there. I take your PR takes the order from there then? So the live stream is in the list, just somewhere down, as it is in the videos tab from youtube.

Somebody could potentially squeeze #3275 in the release, but its fine to do it later. Just a minor addition.
@Poolitzer: No, it's because it only takes the first loaded section due to data saving reasons (don't want to hammer services with _even more_ requests).
Let's see how we'll deal with live streams being buried in the list because they were started long ago when tabs are actually implemented. But by the looks of it, yet another request would need to be done to reliably get all the live streams, just what we want to avoid.
@mauriciocolli okay, get it. so no easy fix anyway, if even. Want me to open a proper issue for this?
Thinking again, do we really want to include them in the main page? We can safely ignore all these kinds of live streams, YouTube, for example, sort it by its start date so it doesn't keep cluttering your feed for days, or in this case, literally months.
Another solution would be to create a dedicated section for live streams, which would only fetch the live streams section (/videos?view=2) from channels.
Feel free to document all this information in a proper issue.
in #3160 this string was added:
https://github.com/TeamNewPipe/NewPipe/blob/55c577e76ec96fad3a52279eaea2201f8f05c2a7/app/src/main/res/values/strings.xml#L596
This gets thrown in the users face through a toast when they change the use fast inexact setting and have the seek duration on a *5. Who is going to understand what that means? ExoPlayer? Is that thing gonna bite me???
This app is used by more or less normal people and, imo, our strings should more or less reflect that. Wouldn't it be enough if we said: Due to activating fast inexact seed, the seed duration was set to %d seconds. Or, even better, just say what happend: The seed duration was set to %d seconds. Why exactly that happens is explained right below the setting. The existence of the ExoPlayer and its 5 seconds constraints is in the best case an unnecessary piece of information we don't need to burden the normal folk with and in the worst case confuses end users.
@mauriciocolli in youtubes case, live streams are with their live chat important to have in the feed, since users might want to join this one time opportunity.
Since NewPipe doesnt have live chats right now, I would say we can safely ignore them.
I will open the issue later and put the discussion we had so far there, but I kinda need to focus on the post now.
@XiangRongLin that bug that you mentioned should be fixed with #3281, can you test it on your end?
Crash log
android.content.res.Resources$NotFoundException: File res/drawable/ic_volume_up_white_72dp.xml from drawable resource ID #0x7f08015d. If the resource you are trying to use is a vector resource, you may be referencing it in an unsupported way. See AppCompatDelegate.setCompatVectorFromResourcesEnabled() for more info.
at android.content.res.Resources.loadDrawable(Resources.java:1993)
at android.content.res.Resources.getDrawable(Resources.java:673)
at androidx.core.content.ContextCompat.getDrawable(ContextCompat.java:456)
at org.schabi.newpipe.player.MainVideoPlayer.setMuteButton(MainVideoPlayer.java:406)
at org.schabi.newpipe.player.MainVideoPlayer$VideoPlayerImpl.onMoreOptionsClicked(MainVideoPlayer.java:798)
at org.schabi.newpipe.player.MainVideoPlayer$VideoPlayerImpl.onClick(MainVideoPlayer.java:734)
at android.view.View.performClick(View.java:4211)
at android.view.View$PerformClick.run(View.java:17446)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
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)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
at android.content.res.Resources.loadDrawable(Resources.java:1990)
... 16 more
org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
at android.content.res.Resources.loadDrawable(Resources.java:1990)
at android.content.res.Resources.getDrawable(Resources.java:673)
at androidx.core.content.ContextCompat.getDrawable(ContextCompat.java:456)
at org.schabi.newpipe.player.MainVideoPlayer.setMuteButton(MainVideoPlayer.java:406)
at org.schabi.newpipe.player.MainVideoPlayer$VideoPlayerImpl.onMoreOptionsClicked(MainVideoPlayer.java:798)
at org.schabi.newpipe.player.MainVideoPlayer$VideoPlayerImpl.onClick(MainVideoPlayer.java:734)
at android.view.View.performClick(View.java:4211)
at android.view.View$PerformClick.run(View.java:17446)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
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)
When i press this button NewPipe crash :(
I think is a problem with new mute button
@TobiGr
Fourth and hopefully last RC: NewPipe_v0.19.0_RC4.apk.zip
Hi,
I found an UI crash bug in Settings, Content:
Crash log
java.util.UnknownFormatConversionException: Conversion = '小'
at java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2781)
at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2811)
at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2624)
at java.util.Formatter.parse(Formatter.java:2557)
at java.util.Formatter.format(Formatter.java:2504)
at java.util.Formatter.format(Formatter.java:2458)
at java.lang.String.format(String.java:2883)
at android.content.res.Resources.getQuantityString(Resources.java:511)
at org.schabi.newpipe.util.Localization.localizeDuration(Localization.java:244)
at org.schabi.newpipe.settings.custom.DurationListPreference.onAttached(DurationListPreference.kt:40)
at androidx.preference.PreferenceGroup.onAttached(PreferenceGroup.java:438)
at androidx.preference.PreferenceGroup.onAttached(PreferenceGroup.java:438)
at androidx.preference.PreferenceFragmentCompat.bindPreferences(PreferenceFragmentCompat.java:536)
at androidx.preference.PreferenceFragmentCompat.onViewCreated(PreferenceFragmentCompat.java:340)
at org.schabi.newpipe.settings.BasePreferenceFragment.onViewCreated(BasePreferenceFragment.java:28)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:892)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6831)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:927)
I have created a PR to fix this: #3292
@Stypox @mauriciocolli @TobiGr thanks for fix error, now app work well.
@TobiGr: We should include #3294 as well, as it fixes a very annoying behavior.
@mauriciocolli I want to release 0.19.1 with some smaller improvements and fixes next week. We shouldn't add more and more stuff to 0.19.0. My plan is to release the new version tonight and the improved exception handling does not solve regressions introduced in this release as far as I can see. I don't have much time today and thus cannot review and test your changes in the way which is necessary.
Getting post processing error file over 3GB 1080p60 version 0.19.0 rc5
@givemestella What error exactly? What video? Which Android version?
@TobiGr: Yeah, I saw that a lot of things got added lately, I understand that.
The major ones affected with this are people with slow/unreliable internet (or even occasional instability) because is likely that something will time out, and instead of a retry button, they'll see the report screen which is not the best situation for them.
This can also be pretty much fixed in the extractor (this pull request only improves the detection, which fixes that as a side-effect), would this work out for you? It'd involve even fewer changes, should be even easier to test the changes.
I'll open a pull request fixing that regardless.
PS: Souldn't some of the latest merged pull requests be included in the changelog as well? Don't know if you forgot or chose not to, but IMO at least the bug involving the shared content would be worthy of a line in there.
@givemestella What error exactly? What video? Which Android version?
The error is that it seems to d/l the full 3.64GB (which it wasn't doing before when I tried with 0.18.7 - this release version got the http 200 download error at 2GB) but it fails the post processing part. When this happens It doubles the apparent file size in the app and then displays an error. The file is unplayable despite being the full 3.64GB.
Don't want to give name of video
Andriod 10.
@givemestella Did you delete the file already? If not, please go to NewPipe's download section and press on the three dot menu of this download. Use show error and please post the message here.
If this is not possible anymore, please tell us how much free space was left on the device when you started the download.
Did you download to internal storage or SD card?
Don't want to give name of video
No problem.
@mauriciocolli: This can also be pretty much fixed in the extractor (this pull request only improves the detection, which fixes that as a side-effect), would this work out for you?
Both sides should be fixed. I'll gladly look at the PRs next week
@mauriciocolli: PS: Souldn't some of the latest merged pull requests be included in the changelog as well? Don't know if you forgot or chose not to, but IMO at least the bug involving the shared content would be worthy of a line in there.
Oh. yes, thanks for reminding me. I forgot to add those. @Poolitzer is going to kill me
File deleted sorry 53.7GB free on SD card when I started downloading the 3.64GB file.
@givemestella I was able to reproduce an error. However, I could only get a crash with 1080p 60 fps. Files with 720p or 360p and file sizes > 3.8GB didn't cause problems. This is a rare crash which happens only for large downloads on specific resolutions. That's why I do not consider this as blocking. Especially, because this release enables more users to download larger files without problems.
I created #3296 to keep track of this.
I confirm #3204, addressed in #3220, has been fixed in this release. I downloaded a couple of WebM videos and all of them, including the one that I knew was problematic, has proper seeking now. Thank you devs for the hard work and for listening to my feedback.
Most helpful comment
We need better handling for these kinds of errors. When we see that the channel has been deleted, we should tell the user and ask whether to delete this channel.