Newpipe: Release v0.14.0

Created on 28 Aug 2018  Â·  61Comments  Â·  Source: TeamNewPipe/NewPipe

I want to release v0.14.0 soon, as a new plan to ensure better quality before releasing I want to create release candiates which should be tested according to a test plan (which does not exist yet).

However here are the things that will be included in this version:

New

  • New Drawer design #1461
  • New customizable front page #1461

Improvements

  • Reworked Gesture controls #1604
  • New way to close the popup player #1597

Fixed

  • Refactor and bugfix #1623

    • Fix Cyclic search result #1562

    • Fix Seek bar not statically lay outed

    • Fix YT Premium video are not blocked correctly

    • Fix Videos sometimes not loading (due to DASH parsing)

    • Fix links in video description

    • Show warning when someone tries to download to external sdcard

    • fix nothing shown exception triggers report

    • thumbnail not shown in background player for android 8.1 see here

Here is the Apk

debug build: NewPipe_v0.14.0_RC3_debug.zip

release build: NewPipe_v0.14.0_RC3.zip

Please download and test it, especially this parts:

Online features

  • Streams

    • Open video streams:

    • Description is shown correctly

    • Next/related videos are shown correctly

    • no NPE

    • Play Audio works

    • Play video works with every shown stream

    • Download works, ad file get registered in content providers (are shown up in music/video player)

  • Search

    • No cycling searchresult

    • Search filter work acordingly

    • no NPE

    • empty search result does not trigger NPE

    • ads and premium videos get blocked (would trigger NPE if not)

  • Channel/Playlist

    • ads and premium videos get blocked (would trigger NPE if not)

    • no NPE

  • Download

    • download never triggers NPE

    • try to download shows dialog not an NPE

Offline features

  • Subscriptions can be added/deleted
  • Playlists can be bookmarkd and removed
  • Videos can be added and removed to and from offline playlists
  • PlayQueues (the one that play in the player) can be set as playlists.
  • Videos are added to history, and can be removed from it

Feel free to test more stuff aside form that :)

Release branch: #1639

Most helpful comment

Just for your information, F-Droid provides 0.14.1 now! Please install it from there.

All 61 comments

You didn't say we should test every service (though it's obvious to me). I
think we should also make a list of streams to test, since some streams
have weird edge cases.

Op di 28 aug. 2018 12:36 schreef Christian Schabesberger <
[email protected]>:

Assigned #1635 https://github.com/TeamNewPipe/NewPipe/issues/1635 to
@wb9688 https://github.com/wb9688.

—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/TeamNewPipe/NewPipe/issues/1635#event-1812722666, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJU76W968iy1eipG1kck9cVPGxbQJ_wWks5uVR0-gaJpZM4WPWSX
.

That's true as well, but those edge cases could also be covered through automated tests.

well 14.0 perform poorly,it takes much longer to load and any button pressed it takes 4x longer to respond (a.k.a the interface is painfully slow) and loading anything (search,videos) also takes 2-3x longer

besides that everything is working fine,really enjoyed the new gesture controls and thumbnails finally show on the background player in oreo

Might be because this is a debug build

its kinda odd since i never had this problem with a previous debug build but well can't wait for the final version,really enjoyed 14.0

@switchtegrax1 I uploaded release build as well.

Some really nice progress being made, good work team =D

And now comes the fun bug report:

There are certain streams (example) from Youtube where the audio is not available but were still playable on the background, now these streams can no longer be played because we have removed the background button when there is no audio.

Also, attempting to start playback from the context menu (i.e. enqueue on background) now crashes to guru with "Receiver not registered". IIRC, the receiver cannot be unregistered without throwing an exception when it is not registered, which is the case since the player has not yet started playback due to the above bug.

The branch for postfixing bugs can be found here:
https://github.com/TeamNewPipe/NewPipe/pull/1639

@karyogamy how did it work? Did you send the videostream to the background player?
For me that video didn't work with the backgroudn player after the fix of the DASH parsing. We may need to elaborate a strategy when, and when not to show the button.

@mauriciocolli pointed this issue out:

  • What if the user had a channel that was deleted in there? It will crash and block the user out of the application.

    • Though I think this was happening even before this PR.

As it seems like no one had this problem before, I doubt it will be one now, but we should still look into a fix soon. My suggestion would be that we catch the exception that is thrown when opening a non-existant channel and show a page stating that this channel doesn't exist anymore, as opening such a channel shouldn't crash the app in general.

You are right, though we should handle those cases even before we thow an exception.

I'll open a pull request later fixing some issues mentioned here, if you could wait for it to be merged, that would be great.

We should post an announcement before the release is published.

@TheAssassin I already wrote some stuff about the redesign PR. I'll add more info about the popup PR and the most important fixes. This should be done tonight.

I think we should post two blog posts then.

Exception

org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get subscriber count
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getSubscriberCount(YoutubeChannelExtractor.java:138)
    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(ExtractorHelper.java:121)
    at org.schabi.newpipe.util.ExtractorHelper$$Lambda$4.call(Unknown Source)
    at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.Maybe.subscribe(Maybe.java:4073)
    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:14349)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
    at io.reactivex.Maybe.subscribe(Maybe.java:4073)
    at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.Maybe.subscribe(Maybe.java:4073)
    at io.reactivex.internal.operators.maybe.MaybeSubscribeOn$SubscribeTask.run(MaybeSubscribeOn.java:54)
    at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
    at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
    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)

-------------------

I had these two errors with this version NewPipe-v0.14.0_RC1.zip

can you also have the percentage for brightness and volume as before, ie a button that puts the old gesture of volume and brightness?

Exception

  • __User Action:__ ui error
  • __Request:__ App crash, UI failure
  • __Content Language:__ IT
  • __Service:__ none
  • __Version:__ 0.13.7
  • __OS:__ Linux Android 4.2.1 - 17
java.lang.RuntimeException: java.io.IOException: open failed: EINVAL (Invalid argument)
    at us.shandian.giga.get.DownloadManagerImpl$Initializer.run(DownloadManagerImpl.java:362)
Caused by: java.io.IOException: open failed: EINVAL (Invalid argument)
    at java.io.File.createNewFile(File.java:948)
    at us.shandian.giga.get.DownloadManagerImpl$Initializer.run(DownloadManagerImpl.java:350)
Caused by: libcore.io.ErrnoException: open failed: EINVAL (Invalid argument)
    at libcore.io.Posix.open(Native Method)
    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
    at java.io.File.createNewFile(File.java:941)
    ... 1 more
java.io.IOException: open failed: EINVAL (Invalid argument)
    at java.io.File.createNewFile(File.java:948)
    at us.shandian.giga.get.DownloadManagerImpl$Initializer.run(DownloadManagerImpl.java:350)
Caused by: libcore.io.ErrnoException: open failed: EINVAL (Invalid argument)
    at libcore.io.Posix.open(Native Method)
    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
    at java.io.File.createNewFile(File.java:941)
    ... 1 more
libcore.io.ErrnoException: open failed: EINVAL (Invalid argument)
    at libcore.io.Posix.open(Native Method)
    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
    at java.io.File.createNewFile(File.java:941)
    at us.shandian.giga.get.DownloadManagerImpl$Initializer.run(DownloadManagerImpl.java:350)

-------------------

Please use code tags, or, ideally, create new issues. Alternatively, you could send these to our sentry instance via mail.

@theScrabi why does it say version = 0.13.x? It should say version = 0.14.0-alpha or something.

@Brimont Please use our bug-report converter.

@TheAssassin Why do you think we'll need two posts?

@TobiGr too much content in a single post is counterproductive. If you want to announce changes for something else, please write a separate post.

But this is all about the new release.

New

  • New Drawer design #1461
  • New customizable front page #1461

Improvements

  • Reworked Gesture controls #1604
  • New way to close the popup player #1597

Ah, I see. Please ignore my statement then.

@theScrabi Please merge Weblate before publishing the new release.

I was able to reproduce one of the errors above. See #1641. I think we should fix this first as this seems to be a nasty bug.

Nice update!

As of now I think when you swipe to the right on the part were you switch between YouTube and Soundcloud should be in white font instead of black. It is kinda hard to see the word YouTube in the menu.

Another thing I noticed is if you go to Settings->Appearance->Content Of Main Page and only have one item. It would be nice to remove the tabs from the main page to increase the size since there is only one item and the one tab always selected takes up space on the screen.

Update:
https://github.com/TeamNewPipe/NewPipe/issues/1647

Exception

  • __User Action:__ Play stream
  • __Request:__ play stream
  • __Content Language:__ IT
  • __Service:__ none
  • __Version:__ 0.13.7
  • __OS:__ Linux Android 4.2.1 - 17
java.lang.IllegalArgumentException: Receiver not registered: org.schabi.newpipe.player.BasePlayer$1@42546708
    at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:657)
    at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1411)
    at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:445)
    at org.schabi.newpipe.player.BasePlayer.unregisterBroadcastReceiver(BasePlayer.java:367)
    at org.schabi.newpipe.player.BasePlayer.destroy(BasePlayer.java:295)
    at org.schabi.newpipe.player.VideoPlayer.destroy(VideoPlayer.java:542)
    at org.schabi.newpipe.player.MainVideoPlayer.onStop(MainVideoPlayer.java:234)
    at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1211)
    at android.app.Activity.performStop(Activity.java:5264)
    at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3583)
    at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3642)
    at android.app.ActivityThread.access$1200(ActivityThread.java:156)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
    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)

-------------------

@trymeouteh
This discussion should focus about bugs in the planed 0.14.0 release. Please open up a separate issue for this.

I've updated the build with the following fixes:

  • Updated translation
  • Fixed font color for navigation drawer

@theScrabi you can test to fix my report on this post?

@Brimont can you tell me how to reproduce it?

@theScrabi when I watch a live that goes from 720p to 1080p automatically I think this error occurs because the 1080p streams I can not see them

@theScrabi go to this channel with newpipe https://www.youtube.com/channel/UCjt756Pw2WUatZovW9_qlFA
https://m.youtube.com/#/channel/UCnl3dVmdp73l4ZaV88gZ1og
Counter subscribe not work and generate error

@theScrabi download this video and app crash https://m.youtube.com/watch?v=Qp-Q8D0Ei8I

Wanna suggest to not add Kiosk > Trending in first page at first launch, I miss the blank page at first launch by default, I think loading first page may consume some data (even it's not much) and possibly get tracked (by their service's design)

Also I got noticed the player stream usually skipped before the stream end (especially if you queue multiple streams or play from bookmarked playlists) and seems like it's happen often than 0.13.x

Exception

  • __User Action:__ Play stream
  • __Request:__ play stream
  • __Content Language:__ IT
  • __Service:__ none
  • __Version:__ 0.14.0
  • __OS:__ Linux Android 4.2.1 - 17
java.lang.IllegalArgumentException: Receiver not registered: org.schabi.newpipe.player.BasePlayer$1@4215a780
    at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:657)
    at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1411)
    at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:445)
    at org.schabi.newpipe.player.BasePlayer.unregisterBroadcastReceiver(BasePlayer.java:367)
    at org.schabi.newpipe.player.BasePlayer.destroy(BasePlayer.java:295)
    at org.schabi.newpipe.player.VideoPlayer.destroy(VideoPlayer.java:542)
    at org.schabi.newpipe.player.MainVideoPlayer.onStop(MainVideoPlayer.java:234)
    at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1211)
    at android.app.Activity.performStop(Activity.java:5264)
    at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3583)
    at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3642)
    at android.app.ActivityThread.access$1200(ActivityThread.java:156)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
    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)

-------------------

Updated release build to RC3

Lost ability to play on background
Compare with 0.13.5 <-> 0.14 RC3 Debug

@kowith337 please describe your problem, for me all works perfectly fine.

So I released v0.14.0.

Somehow streams info page doesn't have "Play on background" button, even I've enqueue on background on search result page, the player cannot play the stream (said failed to playing)

The version number that I've add hyperlink is link to app screenshot that show the test/debug version doesn't have play background button.

I was gonna open the PR fixing the things I mentioned tonight, oh well.

It will reset the saved tabs for people that mess with the current version though, I really don't want to create a migration from this to the new saving format...

@mauriciocolli its OK :) I pulled back back the release. So far its possible since nothing big happened.

One little thing I noticed in my drawer: It probably should match_parent in height, as currently the red shade is not at the bottom of where I would expect it to be:

screenshot_20180906-125357

U can fix it for the next version.

@bennyhillthebest This has nothing to do with 0.14.0, all versions are effected. therefore please upgrade to 0.14.1 which fixes the problem.

https://github.com/TeamNewPipe/NewPipe/releases update,uninstall if you installed it from fdroid and them install 0.14.1

hey, please add missed strings to Weblate.

Just for your information, F-Droid provides 0.14.1 now! Please install it from there.

Just wan't open new issue. 0.14.1 affected too.

@TheAssasin Not for me. The F-Droid app and the website still have 0.14.0 as newest version: https://f-droid.org/en/packages/org.schabi.newpipe/

Is F-Droid performing A/B tests now...? Their stuff isn't document very well anyway...

@TobiGr Interesting. Now I was able to update via F-Droid app but the website still lists 0.14.0 as the latest release.

The repository data which is displayed on the website is often updated once a week along with the TWIF post. That's on the weekend.

The repository data which is displayed on the website is often updated once a week along with the TWIF post. That's on the weekend.

That's quite a silly way of doing it...

I have so many critics over fdroid lately :(

They forgot that they setup may need to scale up :/

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Close this

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cavemandaveman picture cavemandaveman  Â·  3Comments

B0pol picture B0pol  Â·  3Comments

Aevann picture Aevann  Â·  3Comments

Hunter9888x picture Hunter9888x  Â·  3Comments

desmonk picture desmonk  Â·  3Comments