Newpipe: Release v0.16.2

Created on 30 Apr 2019  路  20Comments  路  Source: TeamNewPipe/NewPipe

We should release bug fixes from time to time... :)
Please test and share new crashes and bugs witch us below. Corresponding pull request: #2312

newpipe_0.16.2_rc2_debug.apk.zip (by @TobiGr)

Changelog

Improvements

  • add support for opening Invidio.us links
  • make links in comments clickable, increase text size #2168
  • seek on clicking timestamp links in comments #2207
  • show preferred tab based on recently selected state #2247
  • add playlist to queue when long clicking on 'Background' in playlist window #2023
  • search for shared text when it is not an URL #1963
  • add "share at current time" button to the main video player #2271
  • add close button to main player when video queue is finished #1969
  • add "Play directly in Background" to longpress menu for video list items #2198
  • improve English translations for Play/Enqueue commands #2237
  • small performance improvements #2178, #2179
  • remove unused files #2183
  • update ExoPlayer to 2.9.6 #2184, #2311

Fixed

ToDo

  • [ ] Update Weblate translations

Most helpful comment

Thanks you all for testing!

@AnotherLife This is an old bug and will be fixed in #2309 (not in this release)

@zmrh I couldn't reproduce this either. Maybe on of these annoying Android 5 bugs? :)

@Brimont This is an extractor exception. But we didn't touch any related code. So I guess this was either a temporary bug or it exists in other versions, too.

@avently It's good to hear from you! Welcome back. An embedded player is definetely on our list.

Everyone can use my code from that PR without restrictions.

That's good to hear. I also thought we weren't allowed to reuse the code. I guess parts of it are very useful for us.

The idea behind the code is good but result could be better. And one large PR is a bad idea - multiple small pull requests is better in this case.

Yes, splitting this up into small PRs makes much sense and reviewing, testing and QA faster.

@shmil111 Yes, me too. But this is not related to this PR as I have problems with it on both versions. We should track this down in #2336 and #2337.

@zmrh will be fixed in #2149 (next release)

All 20 comments

On the last stable, in the What's New page only shows some videos and then just sits there with the loading icon. Is that a known bug?

version in RC1 is reported incorrectly as 0.16.0

not entirely sure which steps led to this, hence unable to replicate, but sharing just in case:

Exception

  • __User Action:__ ui error
  • __Request:__ App crash, UI failure
  • __Service:__ none
  • __Version:__ 0.16.0
  • __OS:__ Linux Android 5.0.2 - 21

Crash log

java.lang.RuntimeException: Unable to start activity ComponentInfo{org.schabi.newpipe.debug/org.schabi.newpipe.about.AboutActivity}: java.lang.ClassCastException: android.os.Parcelable[] cannot be cast to org.schabi.newpipe.about.SoftwareComponent[]
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
    at android.app.ActivityThread.access$800(ActivityThread.java:144)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5219)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
Caused by: java.lang.ClassCastException: android.os.Parcelable[] cannot be cast to org.schabi.newpipe.about.SoftwareComponent[]
    at org.schabi.newpipe.about.LicenseFragment.onCreate(LicenseFragment.java:49)
    at android.support.v4.app.Fragment.performCreate(Fragment.java:2414)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1418)
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
    at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:3223)
    at android.support.v4.app.FragmentController.dispatchCreate(FragmentController.java:190)
    at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:369)
    at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:85)
    at org.schabi.newpipe.about.AboutActivity.onCreate(AboutActivity.java:64)
    at android.app.Activity.performCreate(Activity.java:5976)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
    ... 11 more
java.lang.ClassCastException: android.os.Parcelable[] cannot be cast to org.schabi.newpipe.about.SoftwareComponent[]
    at org.schabi.newpipe.about.LicenseFragment.onCreate(LicenseFragment.java:49)
    at android.support.v4.app.Fragment.performCreate(Fragment.java:2414)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1418)
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
    at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:3223)
    at android.support.v4.app.FragmentController.dispatchCreate(FragmentController.java:190)
    at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:369)
    at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:85)
    at org.schabi.newpipe.about.AboutActivity.onCreate(AboutActivity.java:64)
    at android.app.Activity.performCreate(Activity.java:5976)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
    at android.app.ActivityThread.access$800(ActivityThread.java:144)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5219)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)



Exception

Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get channel name
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getName(YoutubeChannelExtractor.java:100)
    at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:62)
    at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:49)
    at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$4(ExtractorHelper.java:123)
    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: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.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.Maybe.subscribe(Maybe.java:4154)
    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)
Caused by: java.lang.NullPointerException
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeChannelExtractor.getName(YoutubeChannelExtractor.java:98)
    ... 28 more



@TobiGr @theScrabi
From time-to-time I'm visiting NewPipe's repo and can't find a player inside fragment feature implemented. Is it really non-important for everyone?
I'm comparing current version and 2017 year's version I use everyday. And it looks a bit different but no major changes in features list (except comments support and some other cool things).

For me it's pretty strange to not have the player that works inside a window with comments, description, etc.

@avently

834 If you allow people access to use this it may speed up the process of getting a fragment player. I believe it wasn't merged in the time frame you wanted because there were bug fixes that needed to be fixed first.

Also, many things have been added. They just aren't front end things. Better downloaders, more stable players, and other things have all been added. These things aren't really visible to the end user, but make for a more stable experience, which imo is better than willy nilly adding new features.

@gkeegan

838 If you allow people access to use this it may speed up the process

Everyone can use my code from that PR without restrictions. I only said the PR shouldn't be reopened since no decisions were made for a long time. If a strategy doesn't work, make a new strategy:)

Anyway, I have been using the code for years but not without problems. They are not critical and can be fixed easily.

The idea behind the code is good but result could be better. And one large PR is a bad idea - multiple small pull requests is better in this case.

@avently

From that PR,

And for the record, you are not allowed to reopen this PR. Create your own. This will be the history of my fail.

Sorry for the misunderstanding. I thought that "create your own" meant that people couldn't use it.

I'm experiencing a problem in playing specific videos on the background player.
It just doesn't load.
The problem is span across many versions of the app.

An example of a video like this:
https://www.youtube.com/watch?v=EWSNOSv9TAs

It happens quite often.

I tried forcing shutdown of the app and trying to load it again, I tried even uninstalling the app and downloading it again, and the same song still won't load (but only on background mode).

I know with a problem so unspecific like this I'm not helping you much.
I assume the problem is specific to me since it happens so often if it was happening for everyone it for sure would've been reported and fixed already.

I have it running in background now.

downloading videos stuck at "post processing"

Screenshot_2019-05-10-16-25-17

Thanks you all for testing!

@AnotherLife This is an old bug and will be fixed in #2309 (not in this release)

@zmrh I couldn't reproduce this either. Maybe on of these annoying Android 5 bugs? :)

@Brimont This is an extractor exception. But we didn't touch any related code. So I guess this was either a temporary bug or it exists in other versions, too.

@avently It's good to hear from you! Welcome back. An embedded player is definetely on our list.

Everyone can use my code from that PR without restrictions.

That's good to hear. I also thought we weren't allowed to reuse the code. I guess parts of it are very useful for us.

The idea behind the code is good but result could be better. And one large PR is a bad idea - multiple small pull requests is better in this case.

Yes, splitting this up into small PRs makes much sense and reviewing, testing and QA faster.

@shmil111 Yes, me too. But this is not related to this PR as I have problems with it on both versions. We should track this down in #2336 and #2337.

@zmrh will be fixed in #2149 (next release)

@TobiGr could you make a new issue with todo list related to an embedded player implementation?
I want to adapt the embedded player to new codebase. Maybe other devs will be glad to help too

Thanks to @Stypox, we can ship two more fixes with 0,16.2:

  • prevent streams from not loading
  • fix YouTube subscription import

Here is the new RC: newpipe_0.16.2_rc2_debug.apk.zip

@avently Sure, but this might take a while as I would like to release the new version first and then review the three large PRs. I hope, I have some time in between, because I'd like to take a look at the old code, too. @theScrabi, @mauriciocolli In case you have some spare time, feel free to contribute to the list.

I didn't test it with v0.16.2 too, but I witness issues with some SoundCloud streams (not all of them) since yesterday (https://github.com/TeamNewPipe/NewPipe/issues/2344 & https://github.com/TeamNewPipe/NewPipeExtractor/issues/166). It may be release-blocking?


Exception

Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: Attempt to invoke virtual method 'java.lang.String org.jsoup.nodes.Node.attr(java.lang.String)' on a null object reference
    at org.schabi.newpipe.extractor.services.soundcloud.SoundcloudStreamLinkHandlerFactory.getUrl(SoundcloudStreamLinkHandlerFactory.java:25)
    at org.schabi.newpipe.extractor.linkhandler.LinkHandlerFactory.fromUrl(LinkHandlerFactory.java:47)
    at org.schabi.newpipe.extractor.StreamingService.getStreamExtractor(StreamingService.java:288)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:59)
    at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:115)
    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:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.jsoup.nodes.Node.attr(java.lang.String)' on a null object reference
    at org.schabi.newpipe.extractor.services.soundcloud.SoundcloudParsingHelper.resolveUrlWithEmbedPlayer(SoundcloudParsingHelper.java:104)
    at org.schabi.newpipe.extractor.services.soundcloud.SoundcloudStreamLinkHandlerFactory.getUrl(SoundcloudStreamLinkHandlerFactory.java:23)
    ... 29 more



The SoundCloud issues are there with 0.16.2 RC2 too.

We didn't change anything related to SoundCloud in this release. It looks like the SoundCloud API changed. a bunch of SoundCloud tests are failing (see extractor). As long as nobody takes a look at it, this will be unfixed in 0.16.2. But be assured, that we will dive into it soon.

Add a recommendation tab

@Paris302 You could open an issue for that

Was this page helpful?
0 / 5 - 0 ratings