This release has been baking for quite a while, hasn’t it? We’ve all been busy with real life, and the world moved on in the meantime. So this release brings you both several new features and some much needed bug fi - “SORRY, SOMETHING WENT WRONG” - xes, excuse us, such as for YouTube’s removal of dislikes, which caused a snackbar error on every YouTube video, and for PeerTube’s new short URLs, which are the new default since v3.3.0.
We also have some quality-of-life fixes, like adding more options in menus at various places, some UI changes for the feed and the player, and using ExoPlayer’s default buffer values for videos. Let us know if this last change helps or hurts your viewing experience.
@FireMasterK added support in the Extractor for description snippets (which you can see in search results on YouTube) in lists of trending videos and search results.
@mhmdanas added support for opening y2u.be links to the Extractor. It’s a YouTube link shortener found in some video descriptions. But we don’t stand for shortened links, do we? No! We want the actual damn URL, thank you very much. Snatches video ID from shortened URL and discards the rest.
@KalleStruik added an “Add to playlist” option in the NewPipe Open menu shown when a video link is tapped in another app.
@vhouriet added a “Check for updates” option in Update settings for NewPipe versions downloaded from GitHub, tapping which forces the app to search for new updates.
@nschulzke added the long-press option to “Mark as watched” videos in playlists. Earlier this option was only available in feeds.
When tapping on a timestamp in the description, the popup player opens and a toast saying “Playing in popup mode” is shown. This toast was shown even if the popup player was already open. @vhouriet fixed this redundant toast. No unnecessary toasts for you anymore, even if you like toast.
A very similar fix was also added by @vhouriet for the background player toast. Now it only shows up if the background player isn’t already open, and not every time the button is tapped.
@ktprograms added the “Show channel details” option to the long-press menu for queue items, for both ways of accessing the queue: using the Queue button in the main player, and when tapping the notification to open the Queue activity.
@iambaji ensured that the status of the “Show watched items” toggle is saved, so that it doesn’t get reset every time the app is opened.
@TiA4f8R replaced the native Share Sheet on EMUI when selecting text in the app with the Android Share Sheet, which provides more functionality, such as the ability to copy to clipboard.
@litetex improved the layout of the playback speed controls dialog in landscape mode so that there is no need to scroll anymore, except on devices with very small screens. Disclaimer: It is not recommended to run NewPipe on your smart watch, though we dare you to try.
@litetex also brought a major improvement to the feed refreshing experience! Now when you refresh, new items show with a prominent border around them to distinguish them from existing items. Moreover, if you are positioned partly down the list, you get a big bold button - “New Feed Items” - to instantly take you to the top.
And now, for the all-important YouTube dislike count fix. Thanks to @B0pol who has fixed the extraction of the dislike count (it’s based on a calculation using other values for now, until even that avenue is closed by YouTube), you won’t be bothered anymore by an error snackbar on every video you open. You’re most welcome.
@B0pol fixed PeerTube extraction for instances that have been updated to version 3.3.0 and above. These instances use short links (e.g.
/watch/) as their default URL path for everything (videos, channels, playlists, etc.), which NewPipe now supports.
@0x416c6578 fixed a bug where the Shuffle button was shown as active even though shuffle mode was off.
If a video finished while the app was in the background, resuming the app would cause it to replay. This was fixed by @litetex.
- Bump spotbugs-annotations from 4.4.1 to 4.5.0
- Bump gson from 2.8.8 to 2.8.9
The hardcoded SoundCloud client ID was updated yet again by TobiG– wait! It was someone else this time! Who is this mystery person, you ask? Find out, on the next episode of… Dragon Ball Z.
@TobiGr improved the readability of some code in the
@litetex fixed several broken tests in the Extractor.
- @TacoTheDank updated some libraries and related code:
- AndroidX Media library: 1.3.1 -> 1.4.2 -> 1.4.3
- Android Gradle Plugin: 7.0.2 -> 7.0.3
- Kotlin: 1.5.30 -> 1.5.31
- RecyclerView: 1.1.0 -> 1.2.1
- Groupie: 2.9.0 -> 2.10.0
@litetex deduplicated the drawer code in
@litetex also corrected the
TAGstring used in the
@TacoTheDank cleaned up the two
.gitignorefiles by deleting one of them and adding relevant APK build directories to the other.
@TacoTheDank also removed the deprecated
setUserVisibleHintfunction and changed the related code accordingly.
@TacoTheDank also also (they evidently did too much work this release) updated the fragment pager workaround code to include changes from a new version of AndroidX’s Fragment library.
@TiA4f8R replaced the
TextViewclasses with their AppCompat variants for better compatibility with older Android versions.
@litetex replaced the deprecated
usingin Gradle settings.
@Redirion updated ExoPlayer from v2.12.3 to v2.14.2 along with fixing most of the deprecations that came with this update, and made use of the new
MediaParserfeature that has been added in ExoPlayer 2.14.0 for Android 11 and above.
The ExoPlayer update also allowed @TobiGr to remove the JCenter repository completely from the repo.
@Redirion re-added the SHA-256 checksum for Gradle Wrapper, which was removed some years ago due to an Android Studio bug.
@Redirion removed the custom
LoadControllerused by the app in favour of the
DefaultLoadcontrolused by ExoPlayer. This means that the start/resume buffer is now 2.5s instead of 0.5s. A speed-based playback condition was also removed in favour of ExoPlayer’s default behaviour.
@litetex added better player error handling to debug builds of the app. Now those annoying and unhelpful “Unrecoverable player error occurred” toast messages can be replaced by a proper crash log with a toggle in Debug settings. Another added toggle lets you add a button to the video details screen to manually crash the player for testing purposes.
- And finally, @litetex cleaned up miscellaneous code in multiple places in different files.
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 Releases 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 the update, you may need to uninstall NewPipe and then install it afresh. (Make sure to backup data by exporting your database from the
Settings > Content menu.)
If you already installed NewPipe from F-Droid’s repository, to get this version of NewPipe you can do one of the following:
- Wait for them to update
- Switch to NewPipe’s custom repository by following the directions in the announcement post
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. Make sure you back up your data as mentioned in the warning at the top of the FAQ page!
Now that you’ve (hopefully) 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 Libera.Chat), 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 post them in the comments here and someone will reply to you. Also, thanks for reading it till the end! We put quite some time into these blog posts.