Closed TobiGr closed 4 years ago
I found an issue with rotation (didn't notice it before):
To fix this I'd suggest resetting rotation when minimizing to background or to popup @avently
open a video and make it fullscreen
With this step the phone will rotate to landscape (when orientation is locked) which is expected.
close the player via the notification
With this step the player will be "unfullscreened" but stays in landscape. And I think it's how it should work in this case. It's much better than to see unexpected rotation of the UI when you don't asked for it.
but the orientation is landscape instead of portrait
It shouldn't be portrait because the orientation is locked to landscape. I (and believe me, you too) don't want to see the rotation happened here and there just because the player is closed. Same action happens when you scroll down the player in fullscreen (by long pressing on arrow down
button) and choose open in popup or background, or press on close button in mini player.
And it much better (like in your example) to return back from Recents, to tap on a thumbnail and to continue playing without rotation happened multiple times. Don't you agree?
the original video details are opened, but the orientation is landscape instead of portrait
I see this as expected behaviour. When you view the video in the main player in landscape mode, and close the player from the notification, the video details stay in landscape. Your steps are just the long way of getting to this same place.
This is what happens on my phone. After I press the home button, I am automatically brought back to the original orientation, which is portrait. If I then start to navigate other apps in portait, I would not expect NewPipe to be landscape when opening it, and there also is no way to bring it back to portrait unless I enable auto-rotate or open the video. Maybe the issue here is how EMUI handles these things, since your statement "the phone will rotate to landscape" does not hold true as soon as I exit NewPipe.
there also is no way to bring it back to portrait unless I enable auto-rotate or open the video
Yeah this is a downside I see as well. Not sure what a better flow would be.
@Stypox
Maybe the issue here is how EMUI handles these things
Orientation is applied to an activity so when you change the activity (I.e. going to another app) the orientation will be global or overrided by another app. If you have a locked global portrait orientation it's expected to see it after leaving the app. It's not only for EMUI.
and there also is no way to bring it back to portrait unless I enable auto-rotate or open the video
This is true for every situation with locked orientation. I mean if you locked orientation globally you can turn on autorotation to exit from this locked mode. Same here. You have locked into landscape, you can exit from this mode, like you said, with autorotation or via button after playback is started. Don't see a problem here but a useful thing that allows to browse in landscape mode.
@avently ok, if you say this is expected behaviour then ok. It does not feel right to me, but I didn't take part in earlier conversations, so now it surely shouldn't be changed. I'm hiding the offtopic comments ;-)
It should not be possible to select the same buttons multiple times. Also for whatever reason the notification is blue.
@XiangRongLin It takes the colour theme from the thumbnail. See the blue bar at the top of your video's thumbnail.
The option to not show the thumbnail on the lockscreen during background play is gone from the "player" section. Was it removed in purpose or what happened to it?
This was discussed somewhere very recently. I think the idea was that the option was added because showing the thumbnail was buggy with the earlier notification, but now that we've shifted to MediaStyle notification, it's not needed anymore.
Not sure if it is intended or not: But when switching between popup player and main player, the video would reload instead of continue playing. Original youtube app or twitch would continue playing when switching to and from popup player.
Are you sure you're testing the RC? The switch happens properly for me, resuming instead of restarting.
i have had this glitch when switching to and back from fullscreen video, the screen flashes black for a second. it was happening on previous debug versions and on this current one as well. i will probably make a gif about it, unless someone else also has the same issue
That's not a glitch, just slow player code, @test2a. It will improve a lot after avently's performance PR is merged. Test the RC again after that happens.
@opusforlife2 Sorry I didn't state it clearly enough. When I say "reload", I did not mean the video would restart, it was more like the video pauses for 2-3 seconds, with a circling animation playing, before resuming to play. It just feels laggy switching between main and popup player, whereas other apps like twitch would do it seamlessly.
I think @test2a was describing something different.
This was discussed somewhere very recently. I think the idea was that the option was added because showing the thumbnail was buggy with the earlier notification, but now that we've shifted to MediaStyle notification, it's not needed anymore.
@opusforlife2 How do i now not show the thumbnail on the lockscreen? I have the Android feature active to hide sensitive content, so it is just a blurry image. And i like my own wallpaper.
@XiangRongLin It takes the colour theme from the thumbnail. See the blue bar at the top of your video's thumbnail.
@opusforlife2 Is there an option to disable it? I really dislike having everything be darkmode and then newpipe sometimes displaying bright yellow/blue/white notifications.
Is there an option to disable it?
"Starting at Android O any notification that has a media session attached with setMediaSession(android.media.session.MediaSession.Token) will be colorized. You can opt-out of this behavior by using Notification.Builder#setColorized(boolean)."
https://developer.android.com/reference/android/app/Notification.MediaStyle
@XiangRongLin Maybe this can be added as an option in Notification settings?
How do i now not show the thumbnail on the lockscreen? I have the Android feature active to hide sensitive content, so it is just a blurry image. And i like my own wallpaper.
@XiangRongLin I suppose the option would have to be added back, or rewritten, maybe, since the related code has changed.
it was more like the video pauses for 2-3 seconds, with a circling animation playing, before resuming to play.
@terrytw That's because you have the possibility of having different default resolutions for popup and main player. The app would need to load a different stream URL and then seek to that timestamp.
@opusforlife2 You are right, the resolution is part of the problem. After making sure main player and popup player has the same default resolution, the lag reduced to about 0.5 seconds, but it is definitely there, whenever I switched between players, the video paused for a short period of time, it is obvious because sound stopped and resumed. But switching from portrait and landscape did not invoke this behavior.
That's because there is no scope of the resolution changing there, and the player isn't changing either. The stream continues to play in the main player.
@test2a @terrytw For seamless switching (the stream doesn't pause at all) between players, follow #2863.
I wanted to comment on how the Unified Player handles video previews while playing in the background. As it is now, when a video is playing in the background, the video, when autoplay is on, takes priority over the background video. I think we should arrange this so NewPipe doesn't autoplay when clicking a video if there is already one in the background. When I exit out of the video, the background video is also closed out. I believe this is a side effect of the media notification.
For clarification, I queued a playlist in the background, and selecting a new video caused NewPipe to exit out of the playlist. I can imagine this might be troublesome for others.
@snappyapple632 You're supposed to get a warning dialogue when that happens. Under Video and Audio settings, check if "Ask before clearing queue" is toggled on.
Ah, nevermind then.
I have noticed two bugs so far:
the buffer bar does not update buffer position unless you interact with the player such as skipping (meaning even if the video is already 20s buffered ahead, the buffer bar will not show it unless you tab one of the player buttons such as skipping backwards) edit: please see #4343 @opusforlife2
open a playlist in full-screen mode. while playing, tab the top-right button to show the queue. the bug: although the queue window is on top, you can still accidentally press the player ui buttons such as the video quality menu . I think the queue window should block player buttons until dismissed.
hay guys ... I know this is a dumb question but if I'm playing a queue in normal mod, how am I supposed to switch to pop-up mode without losing my queue?
the buffer bar does not update buffer position unless you interact with the player such as skipping
@MD77MD That is true for the release version as well. Nothing to do with this RC. You can open a new issue if one doesn't already exist.
although the queue window is on top, you can still accidentally press the player ui buttons such as the video quality menu
Confirmed. This should be fixed before release.
but if I'm playing a queue in normal mod, how am I supposed to switch to pop-up mode without losing my queue?
Yeah, you can switch from popup or background to the others, but the 2 buttons for this in the main player are gone. What was the reason, @avently? Can they be restored?
@MD77MD you have a buttons under the player named Popup and Background. After pressing on any of them you'll not lose you queue but instead open current queue in popup or in background players.
@opusforlife2
What was the reason, can they be restored?
They are useless and take space without a need. No, they will not be restored. You have the same buttons under a video
android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1881)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
@Redirion could you provide more details? Can it be reproduced? I found this, btw, so this is probably my fault and I will look into it
@Redirion that's most probably not caused by NewPipe's code, but by an AOSP "intended bug". I applied a workaroud from here and there do not seem to be any side effects (i.e. adding createNotificationAndStartForeground
, which in turn calls startForeground
, in MainPlayer.onCreate()
). Does this apk fix the issue? app-debug.zip
Edit: removed, this was an issue on my end.
I have a different error now tho, this isn't rc specific as it happens on 0.19.8 too
``` org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException: 0:https://www.youtube.com/channel/UC150TvgRnAE8qtZUWS68tWw at org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException$Companion.wrapList(FeedLoadService.kt:165) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1$1.run(FeedLoadService.kt:314) at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:410) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:303) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:66) 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 get duration at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamInfoItemExtractor.getDuration(YoutubeStreamInfoItemExtractor.java:117) at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:54) at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.commit(StreamInfoItemsCollector.java:94) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.collectStreamsFrom(YoutubeChannelExtractor.java:289) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getInitialPage(YoutubeChannelExtractor.java:239) at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19) at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:83) at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:48) at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$4(ExtractorHelper.java:124) 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:3666) at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35) at io.reactivex.Single.subscribe(Single.java:3666) at io.reactivex.Single.blockingGet(Single.java:2869) at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:217) at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:66) 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 ```
You have the same buttons under a video
@avently Oh. I didn't know that. That is cool that they retain the queue! Thanks!
this isn't rc specific as it happens on 0.19.8 too
@FireMasterK Then you should check for duplicates and create a new issue. No need to do that here, though. It is a known issue with Youtube adding old abandoned livestreams to the channel page or something.
Release candidate 2 contains performance improvements (#4288) NewPipe_v0.20.0RC2.zip
@avently thank you for your help.. your implementation is very neat..
@opusforlife2 i don't think we need restore those buttons because we already have a better alternative. however they can not be accessed in landscape mode unless we have the auto rotation off, which is a bummer.. in my opinion the swipe up feature for video description should be universal and enabled, regardless of auto rotation states.
another two potential bugs (a 2 in 1 😁):
I'm not sure if this is bug or by design. a. open a playlist b. tap the play all but in background mode button c. it would start playing but without the mini player. the bug: inconsistency
this is a direct result of bug (1) above... but the "ask for confirmation before clearing queue" most be enabled: a. do all the steps above (a, b, and c) b. now open any video (called video B) but do not clear queue (click cancel) c. now minimize to mini player the bug: the mini player would display info of video (B) and not the actual video playing... this only happens with playlist started in background mode. however this does not happen if you start a single video in background mode...
extract clarification: that is to say if you open video (A) in background mode and minimized you can still view the info of other videos but if you minimize them it will always display info if video (A).
another potential bug: while video is paused, enqueueing a another video will unintentionally cause the player to resume playback.
I guess this was fixed in 19.8... now its back again.
Mhh... I have tried RC2, and I think that background button should be removed. For 2 reasons:
1) Is redundant. When NewPipe is minimized, audio playback still keep active.
2) Breaks UI unification. After tapping on minimize button, and after tapping also on notification, old audio player appear again.
But if you want to keep it to have more choice, point 2 must be fixed.
newPipe 0.20 Rc2 keeps crashing but don't now why?
Crash log 1
org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException: 0:https://www.youtube.com/channel/UCkZC9CNC1E5YVpbH03ejMqA
at org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException$Companion.wrapList(FeedLoadService.kt:165)
at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1$1.run(FeedLoadService.kt:314)
at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:410)
at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:303)
at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:66)
at io.reactivex.internal.operators.flowable.FlowableDoOnEach$DoOnEachSubscriber.onNext(FlowableDoOnEach.java:86)
at io.reactivex.internal.operators.flowable.FlowableBuffer$PublisherBufferExactSubscriber.onNext(FlowableBuffer.java:126)
at io.reactivex.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:407)
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:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get duration
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamInfoItemExtractor.getDuration(YoutubeStreamInfoItemExtractor.java:117)
at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:54)
at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.commit(StreamInfoItemsCollector.java:94)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.collectStreamsFrom(YoutubeChannelExtractor.java:289)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getInitialPage(YoutubeChannelExtractor.java:239)
at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19)
at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:83)
at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:48)
at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$4(ExtractorHelper.java:124)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$u5W7VszTe8AoEexIsFM9huQfbkM.call(lambda)
at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
at io.reactivex.Single.subscribe(Single.java:3666)
at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
at io.reactivex.Single.subscribe(Single.java:3666)
at io.reactivex.Single.blockingGet(Single.java:2869)
at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:217)
at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:66)
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
``` org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException: 0:https://www.youtube.com/channel/UCZDA1kA3y3EIg25BpcHSpwQ at org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException$Companion.wrapList(FeedLoadService.kt:165) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1$1.run(FeedLoadService.kt:314) at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:410) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:303) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:66) at io.reactivex.internal.operators.flowable.FlowableDoOnEach$DoOnEachSubscriber.onNext(FlowableDoOnEach.java:86) at io.reactivex.internal.operators.flowable.FlowableBuffer$PublisherBufferExactSubscriber.onNext(FlowableBuffer.java:126) at io.reactivex.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:407) 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:237) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762) Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get duration at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamInfoItemExtractor.getDuration(YoutubeStreamInfoItemExtractor.java:117) at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:54) at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.commit(StreamInfoItemsCollector.java:94) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.collectStreamsFrom(YoutubeChannelExtractor.java:289) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getInitialPage(YoutubeChannelExtractor.java:239) at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19) at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:83) at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:48) at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$4(ExtractorHelper.java:124) at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$u5W7VszTe8AoEexIsFM9huQfbkM.call(lambda) at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44) at io.reactivex.Single.subscribe(Single.java:3666) at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35) at io.reactivex.Single.subscribe(Single.java:3666) at io.reactivex.Single.blockingGet(Single.java:2869) at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:217) at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:66) 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 ```
``` org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException: 0:https://www.youtube.com/channel/UCnRK2VxaCN41SJJg0P6N34w at org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException$Companion.wrapList(FeedLoadService.kt:165) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1$1.run(FeedLoadService.kt:314) at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:410) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:303) at org.schabi.newpipe.local.feed.service.FeedLoadService$databaseConsumer$1.accept(FeedLoadService.kt:66) 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:237) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762) Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get duration at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamInfoItemExtractor.getDuration(YoutubeStreamInfoItemExtractor.java:117) at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:54) at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.commit(StreamInfoItemsCollector.java:94) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.collectStreamsFrom(YoutubeChannelExtractor.java:289) at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getInitialPage(YoutubeChannelExtractor.java:239) at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:19) at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:83) at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:48) at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$4(ExtractorHelper.java:124) at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$u5W7VszTe8AoEexIsFM9huQfbkM.call(lambda) at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44) at io.reactivex.Single.subscribe(Single.java:3666) at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35) at io.reactivex.Single.subscribe(Single.java:3666) at io.reactivex.Single.blockingGet(Single.java:2869) at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:217) at org.schabi.newpipe.local.feed.service.FeedLoadService$startLoading$7.apply(FeedLoadService.kt:66) 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 ```
Backup import bug on NewPipe_v0.20.0RC2! Tested on: Xiomi Redmi Note 4(SD625 - Android 7.0 - Miui11)
The bug happens when importing a backup from v0.19.8 (and earlier versions too, I imagine). This bug causes the app to close when trying to watch a video, either in the foreground or background (this after importing the backup, as it works very well before). To fix this I had to delete the "newpipe.settings" file in the backup zip file.
@MD77MD
I'm not sure if this is bug or by design this is a direct result of bug (1) above... but the "ask for confirmation before clearing queue" most be enabled another potential bug: while video is paused, enqueueing a another video will unintentionally cause the player to resume playback
@Oizaro
and I think that background button should be removed
Not everyone has background playback enabled (it's not required), without going to background player you'll be unable to see playing queue after tap on notification, without manually going to background player you'll not be able to listen audio without video while browsing inside NewPipe. So, no, the button can't be removed
newPipe 0.20 Rc2 keeps crashing but don't now why?
@MD77MD Same issue as this https://github.com/TeamNewPipe/NewPipe/issues/4332#issuecomment-700191834.
another two potential bugs (a 2 in 1 😁):
Good find!
Mhh... I have tried RC2, and I think that background button should be removed. For 2 reasons:
We're planning to remove "enqueue in the background" and "enqueue in a popup" and change it to just "enqueue", which acts as a temporary video queue that syncs between all of the players (within the app, in a popup or in the background). So the background and popup buttons will be required.
Here's where it was discussed and as you can see TobiGr, Stypox, opusforlife2 and myself would really like the change. One of us just needs to submit a PR for it.
@opusforlife2 Having options for both disabling the colored notification and the thumbnail on the lockscreen would be nice. I really dislike both features and would like to turn them both off.
Sure. Please open an issue for each.
I'm on a pixel 3a phone with android 11 and newpipe 0.20.0 installed.
When playing a video in background, swiping current playing notification get rid of it definitely resulting in being unable to stop, resume or skip video neither from notification tray nor from lockscreen.
@jehutyy This is a known issue, but it won't be fixed in this release.
ok my bad I thought this RC was about that. Thanks for the heads-up.
Changelogs
App
New
Improved
Fixed
Development
final
isn'tfinal
#4138Extractor
Improved
Fixed
APK for testing
NewPipe_v0.20.0RC7.zip Corresponding PR: #4333