NewPipe 0.20.3 released: YouTube loads MUCH faster!

post image

Another point release is here! We’re still focusing mostly on improvements and fixes, so no major features. @TobiGr was busy this time around, so the release manager for this version is @Stypox! We owe him our thanks!

New

  • Since the behaviour and function of queues has changed dramatically in the unified player, all the different enqueuing options have been replaced with a… unified one. This contribution was brought to you by @vkay94.

  • Closing the embedded player by swiping it away is a two step process. You first have to swipe down to the mini player, and then swipe it again to close it. To make closing the player easier and faster, @vkay94 has implemented a two-finger swipe down gesture which will close the player in one go.

  • Several of our users encounter a reCAPTCHA on YouTube time and again. To preserve their privacy across NewPipe sessions, there is a new setting to clear the reCAPTCHA cookies, thanks to @wb9688.

  • Since 0.20.0, users on Android 8 and above see a colorised notification when playing streams. @XiangRongLin added the option to turn it off, so that the notification has a static colour instead.

  • @Stypox added support for YouTube Shorts URLs.

  • @Bartoshr added support for shortened channel links which look like “youtube.com/username”.

  • Google always uses a redirect URL when you click on YouTube links in search results, with the actual video URL in the URL parameters. @Stypox has added support for discarding the extra cruft and opening the video link in NewPipe.

Improved

  • YouTube has removed obfuscation from most of its URLs, so now we can directly access them, speeding up video loading by a lot! The deobfuscation code is still cached in case it is needed. Go @Stypox!

  • By default, notifications on Android show their creation/update time. This is useless for a media notification, so it has been hidden by @Stypox.

  • If you had a queue built up, trying to directly play a new stream instead of enqueueing it would warn you of losing your queue. This didn’t happen for a single video, but now it does, thanks to @opusforlife2, guided by @avently.

  • When deleting a stream from History, its Watched/Resume state was not deleted. This was a privacy concern, so now stream state is deleted as well. @Stypox

  • The Age Restricted Content and YouTube’s Restricted Mode toggles often caused confusion for users, so summaries have been added to them for clarification. @Stypox

  • NewPipe now ignores trailing characters in YouTube video IDs, improving error resilience when sharing URLs to NewPipe. Thanks, @kirisakow!

  • Improve fallback to the video details if the player JSON response from YouTube is incomplete. Once again, @Stypox added this improvement.

Fixed

  • If the stream was paused and the user tried to rewind/fast-forward, the app would crash. This has been fixed by @Stypox.

  • If the user had no local playlists, tapping on “Add to Playlist” would sometimes cause a white flash. Reported and fixed by @vkay94.

  • The thumbnails in playlists and queues could be used as handles to drag list items around. Since proper drag handles already exist for list items, this duplicated functionality has been removed. @Stypox

  • Some fixes for the following issues were made by @Stypox to the video details page:
    • Opening video details from the play queue caused infinite buffering in an active stream.
    • Background player would randomly stop and buffer infinitely on long streams.
    • If a stream was already active, sharing a video URL to NewPipe would silently enqueue it instead of opening the video’s details, confusing the user.
    • If the mini player was open before switching away from NewPipe, it would vanish upon switching back.
  • If the user tried to add a playlist to the Main Page in content settings, it would cause a UI crash. Fixed by @Stypox.

  • YouTube removed the ability to export subscriptions. Now the only way to get them is to use Google Takeout. This has been implemented by @Stypox.

  • Age-restricted YouTube videos broke recently, and have been fixed by @Stypox.

  • The upload date for both currently live streams and ended live streams on YouTube is now parsed correctly. @Stypox

  • @Bopol fixed opening channel URLs which redirect to other URLs, like VEVO channels which have multiple IDs. Earlier, this would cause a crash.

  • The account and channel extractors for PeerTube were requesting HTML, but trying to parse JSON. This was fixed by @Bopol.

  • @Scrxtchy fixed parsing SoundCloud tracks that contain the term ‘sets’.

Development

This section is dedicated to @Isira-Seneviratne, who went around like a real-life Fix-It Felix Jr., cleaning up and modernising the code base here, there and everywhere! We’re giving a short summary below, because even though hundreds of lines of code were changed, most of the changes are indecipherable to users. You can check out the Releases page on Github to see them in detail.

  • Introduced Java 8 APIs with the help of API desugaring.
  • Enabled MultiDex for release builds (it was already enabled for debug builds), allowing more than 64000 functions or methods to be used in the app.
  • Replaced AsyncTask with RxJava to execute asynchronous code, as AsyncTask has been deprecated starting with API level 30 (Android 11).
  • Replaced innumerable functions with cleaner/better alternatives.

Thank you so much, Isira!

  • If you have ever installed a debug build to test a feature, you must have noticed the extra LeakCanary icon in your app drawer. This icon has been hidden, and will only show up when you actually enable it. @wb9688

  • All the XML files used by NewPipe were formatted properly by @wb9688, which made them MUCH easier to review.

  • The About page was updated to work with ViewPager2 instead of ViewPager thanks to @TacoTheDank.

  • @mhmdanas used ImageOptim to optimise and shrink the PNG resources used by the app.

  • @XiangRongLin reworked the non-standard notification settings and layout to bring them more in line with the rest of the settings.

  • @vkay94 separated the player UI logic from the player gesture logic for easier maintenance and improvement.

  • For some reason, the index variable used for one of the loops was a floating-point number instead of an integer. This was corrected by @bd0n4lds.

  • @TacoTheDank made several miscellaneous fixes and improvements in multiple places.

  • @Stypox fixed a rare NullPointerException which was caused by multiple redundant function calls in a queue, also improving performance slightly.

  • The tests for various stream extractors were improved, fixing many potential bugs. @Stypox

  • @Bopol added a FileUtil class to write a file to disk. This will help in testing and debugging responses from services.

  • Various extractor tests were polished to correct potentially misleading terminology and usage. @Bopol

Localisation

  • Santali language was added thanks to @Prasanta-Hembram.

  • Central Atlas Tamazight localization is partly available now.

  • The README now has a Korean translated, thanks to @KIMMINTAE98!

    • If you wish to translate the README to your language, your contributions are most welcome!

Farewell to a team member

These were @wb9688’s final contributions to the NewPipe project. We’d like to take a moment and appreciate the effort he put into NewPipe and NewPipe Extractor. Initial support for SoundCloud, big refactors of the Extractor, late night hotfixes and meticulous PR reviews are just a few things to list here. You’ll be missed!

Where to get this brand-new version

NewPipe notifies you about new versions. You can download them when you press the notification, which will take you to the GitHub release page.

If you use the F-Droid app, it, too, notifies you about updates for NewPipe. Please keep in mind that it can take F-Droid a while to update their repository. If you have problems installing you may need to uninstall NewPipe and then install it afresh. (Make sure to backup data by exporting your database from the Content settings menu.)

If you already installed NewPipe from F-Droid’s repository, to get this version of NewPipe you can do one of the following:

Note: If you installed NewPipe from GitHub Releases you will not have to uninstall NewPipe to switch to our custom repo. Just let it update your current version.

Now that you’ve updated, please let us know what your experience of the latest release is, especially bugs in need of fixing. As usual, you can reach out to us via IRC (#newpipe on freenode), open issues on GitHub or, ideally, use our built-in crash reporter to send us machine-readable issue reports. You can even send in fixes yourself.

If you have any other questions feel free to send them in the comments here and someone will reply to you.

See also:  pinned  release

Let us know what you think!