Long time no see! We were busy behind the scenes, and can now present you quite a few new features as well as the usual tranche of bug fixes and improvements. First and foremost, though, two more developers have joined Team NewPipe. Welcome, @XiangRongLin and @vkay94!
PeerTube Sepia Search
PeerTube has had a longstanding problem that it is difficult to search for videos across instances when they don’t federate, i.e., list videos from other instances. So Framasoft developed Sepia Search, a new search engine for PeerTube. You can read more about it over at the Framasoft blog. Now you can use this search engine within NewPipe as well, thanks to @Bopol. You can select it from the three dot menu on the right side of the search bar (just like YouTube Music) when you are on a PeerTube instance, and you are good to search all the instances available here!
YouTube introduced Chapters in May last year, allowing viewers to easily jump to specific timestamps in a video which the content creator picked for it. With this release, @vkay94 brought this feature to you, the users of NewPipe, as well. You can select chapters by pressing the new Chapters button in the video player, whose icon looks like a numbered list (as opposed to the Playlist button whose icon is a bulleted list). The list of chapters looks like this:
Bottom Tabs and Expanded Buttons (the Share button is back, baby!)
We heard you like buttons (quite loud and clear), so we brought you more. Rather, @Stypox restored a couple of buttons which didn’t find a place in the transition to the unified UI. NewPipe now shows more buttons below the visible button row by using the expansion arrow. You can now directly share the video you are watching to other apps or open it in your browser. If you enable the “Show Kodi” Setting, you can also play the video with Kodi directly from there.
Along with this, @Stypox also added a tab layout for the components below the video. Now you have three tabs you can tap to switch between Comments, Related Videos and the Video Description. This looks a little something like:
@urlordjames disabled restoring brightness if the brightness gesture is disabled, which is pretty straightforward. If you disable the brightness gesture, you clearly want to rely on the system brightness, and not stay stuck on that very annoying brightness level that the app happened to save before you turned off the gesture.
@TacoTheDank added some missing licenses, fixed some errors, and prettied them up a little.
@TiA4f8R disabled sending metrics to Google when using Android System WebView. Yet another step in the neverending fight to preserve your privacy.
@mbarashkov added the ability to toggle between play/pause with a hardware space button (such as when using scrcpy or a Bluetooth keyboard) if the player is in full screen.
@khimaros added the option to play a video on Kodi in the long-press menu.
@Atemu modified VideoDetailFragment so that it doesn’t exit full screen on rotation when in tablet UI.
@TobiGr added the conference title to videos in the “Recent” kiosk for media.ccc.de, and also ordered the streams in there by upload date. It has never been easier to find the one you are looking for.
@XiangRongLin fixed a legacy issue where 360p WebM video streams didn’t appear in-app. Now they do, and all it took was removing a couple of backslashes!
@XiangRongLin made sure that some URLs with timestamps are played correctly, whereas previously, they kept buffering indefinitely.
@EricLemieux, in their first contribution to our project, fixed a rare null pointer exception caused by interacting with the Previous/Next buttons while the play queue was empty.
@B0pol made the app get its package name dynamically, fixing issues where multiple NewPipe apps had to be installed (such as when you tried out a testing apk provided by our developers).
@Stypox fixed an issue where the wrong playback speed was shown in the player.
@TiA4f8R resolved a crash when no default browser is set and improved the share dialogs (on some devices). You could have also installed a browser like a normal person, but who are we to judge?
[media.ccc.de] @TobiGr fixed a NullPointerException in the Extractor if search results contain a future talk… by just removing future talks from search results. Keeping it simple.
[YouTube] The Extractor always asked for the player configuration from
youtube.com, which always got redirected to
www.youtube.com. @TiA4f8R changed it so the request is directly made to the latter, saving a redirect.
This section is all about translating NewPipe. This release, however, saw a lot of changes regarding the README in our repository, which you can find here. @nadiration added a Somali translation of the README, @DavidBrazSan a Brazilian Portuguese one and @ryota-hasegawa a Japanese translation. @opusforlife2 corrected a word in the Korean README instructions. Finally, @mhmdanas added alternative installation methods other than F-Droid.
@nadiration also changed the Somali language name in-app from AF-Soomaali to Soomaali.
- @Isira-Seneviratne swooped in with yet more Kotlin-isation on his agenda. This time he converted
ExceptionUtilsmethods to Kotlin extension functions.
- @Stypox (the absolute madlad!) merged the 3 player classes into one in a giant PR, massively simplifying and cleaning up the code and making future development far easier, while fixing some bugs along the way (as you do).
- @Isira-Seneviratne continued his view binding work from earlier, covering VideoPlayer, Groupie, and fragments such as the VideoDetailFragment.
- @Redirion updated the AndroidX Media library and used its compat versions to simplify the code.
- @Isira-Seneviratne Removed a few NullPointerExceptions by ensuring null safety (which means there are less potential errors to interrupt you).
- @XiangRongLin made
Localization.relativeTimetestable, which means we’ll know immediately if future code breaks things for any reason.
- @XiangRongLin moved the settings import logic to a better location and added some tests.
- @Isira-Seneviratne merged the two Constants files into one.
- @XiangRongLin ensured that the automated test APKs in PRs carry the branch name, and not just the generic “NewPipe HEAD” name Github Actions was using.
- @XiangRongLin added numerous mock objects to make the Downloader and YouTube Mix playlist Extractor tests more reliable.
- @TobiGr continued the migration from a couple of versions ago, from Travis CI to GitHub Actions, and now the Extractor repo is migrated as well.
- @Bopol fixed failing PeerTube Extractor tests by changing the test instance to a more reliable one.
- @Bopol also added a bit of code to the Extractor so hearted comments on YouTube get extracted. This has not found its way into NewPipe (the app) yet.
- @XiangRongLin added code to ignore all failing the tests in the Extractor until they are fixed properly.
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.
!!! Please be aware that F-Droid is currently unable to publish a new version of NewPipe (the latest version available is 0.20.1, in which YouTube is already broken) due to an issue that applies only to reproducible apps. Hence it is our recommendation that you install NewPipe:
- from our custom NewPipe F-Droid repo by following the FAQ entry, or
- from GitHub Releases.
Make sure you back up your data as mentioned in the warning at the top of the FAQ page!
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 (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.
The screenshots in this blog post were taken from the video Introducing YouTube Chapters - Add Sections to your Video Playback (Tutorial)!, made by Trending Reviews, as found on YouTube. Thanks for providing your content with a Creative Commons license!