Releases: TeamNewPipe/NewPipe
v0.28.5
⚠️ Android developer verification program updates ⚠️
Alphabet/Google is about to introduce verification for developers who want to distribute apps to more than 20 devices. One of the main goals is to complicate and hinder installing apps through "unofficial" channels. As mentioned in our last release notes and a blog post we strongly oppose these plans. The European Commision has issued a statement that it is monitoring the situation and is "engaged in a regulatory dialogue" with Alphabet/Google. If you haven't already, please reach out to your representatives about this issue. For more updates and background information, visit https://keepandroidopen.org/.
Improved
- Add UI options to import/export subsciptions in backup & restore settings #13347
Fixed
- Fix NullPointerException in enqueue actions by using Application Context #13385
- [YouTube] Fix parsing duration of related items #13403 TeamNewPipe/NewPipeExtractor#1464
Translation & Localization
- Updated translations and removed untranslated locales #13382
Development
- Small improvements to Image handling #13207
- Remove freedroidwarn license #13305
- Port path related changes from refactor #13352
- Update dependencies and Gradle to latest stable release #13363
NewPipe Extractor
This release is shipped with NewPipe Extractor v0.26.1. For additional extractor related changes see the linked release.
v0.28.4
New
Improved
- [Feed] Shuffle the order outdated subscriptions are updated in #13161
- Do not stack comment pages #13213
- VideoDetailFragment: Forcefully catch click events uncaught by children #13203
- Add link to FAQ entry to "Sign in to confirm not a bot" exception message #13310
Fixed
- Fix comment replies header layout without avatar image #13241
- Fix subtitle post-processing error losing original exception #13256
- Hide related items in tablet mode after fullscreen exit if showing related items is disabled #13037
- Hide controls when resuming playback via double tap #13030
- Fix inconsistency in getQuantity and add docs #13293
Development
- Upgrade Android Gradle Plugin to 9.0.0 #13136 #13190
- Kotlin conversion #13028 #13219 #13026 #13224 #13225 #13247
- Code cleanup #13131 #13137 #13236
- Enable lint checks and resource shrinking. The APK size has been reduced significantly. #13194 #13290
- Accomodate extractor changes (EnumSet for service media capabilities) #13148
- Migrate from Picasso to Coil #13272
Dependency updates
- Update dependencies and Gradle to latest stable releases #13276
CI
v0.28.3
Improved
- [YouTube] Added support for more channel URL formats
- [YouTube] Added support for more video metainfo formats
Fixed
- Fixed resuming streams at the last playback position #13195
Translation / Localization
- Updated translations
NewPipe Extractor
This version comes with the changes mentioned above and additional changes which are included in NewPipe Extractor v0.25.2.
v0.28.2
ℹ️ Hotfix release
This hotfix release fixes the "Content not available" error that prevents YouTube videos from being played: #13082. It also fixes a few regressions that slipped through with 0.28.1: #13072 #13031 #13040 #13046.
Improved
- [YouTube] Restore ability to rewind livestreams up to 4 hours #12601
- Disable video and text tracks when playing livestreams in background player #12601
- Allow reporting
ContentNotAvailableExceptionerrors if they may be caused by extractor bugs #13133
Fixed
- [YouTube] Fix page reload required error and related breaking API changes #13129
- Fix playlist items dragging to only neighbor positions #13049
- Fix video title and comments flickering back and forth between current and previous video #13132
- Fix "Start main player in fullscreen" option not working anymore (reverts #12781) #13134
- Fix header crash while scrolling in a playlist or just after deleting a video in it #12996
- Fixed a bug that prevented the display of multiple empty playlists #13055
- Fix "remove watched" button in playlist removes some unwatched streams too #12929
Development
- Delete long orphaned file #13000
- Use "factory" method for creating db migrations #12990
- Update dependencies #12995
- Kotlin refactor #13036
- Delete unused code #13019
- Enable multiple ktlint checks #13081
CI
v0.28.1
➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️
NewPipe 0.28.1 is shipped with NewPipe Extractor 0.25.0. For extraction related changes see the linked release.
New
Improved
- Fix clearing queue and keep current player when clicking on timestamps #12252 #12254 #12898
- Try to recover pending download missions when possible #12550
- Add option to delete a download without also deleting file #12544
- Add enqueue option to router dialog #12821
- Add more specific error messages and deduplicate their handling #12578 #12603
- Overlay Permission: display explanatory dialog for Android > R #12253
- Notifications are no longer requested again after rotating the phone #12716
- Allow dragging boorkmarked playlist in both directions #13008
Fixed
Player
- [Player] Use original audio language by default #12931
- Remember and restore orientation on fullscreen exit #12840 #12781
- Fix ghost notifications and fix random player crashes ("
startForegroundService()did not then callstartForeground()") #12606 - Fix audio language button pushing player controls off-screen in portrait and popup #12699 #12714 #12729
- Fix scaleX being NaN on minimize to background app switch #12952
Downloader
- Fix insufficient permissions on opening downloaded streams #12934
- Fix download resume corruption when server returns HTTP 200 #13014
- Fix missing subtitle text in manually downloaded *.SRT files #12575
- Fix initial numbering of frames in TTML to SRT converter #12671
Other
- Fix short count formatting for Android versions below 7.0 #12460
- Fix and simplify opening URLs in browser #12605
- Fix long-pressing Play All-button does nothing #12692
- Enforce using SAF on FireOS TVs with Android 10+ #12642
- Commit all the playlist changes to db immediately to prevent incorrect UI states #13005
- Fix incorrect UI states of PlayQueue items #12922
- Fix crash on screen rotation while entering SoundCloud import URL #12995
Translation / Localization
Development
- Target SDK 35 #12388
- Correctly ignore new version check for Picasso #12483
- Update Android Gradle Plugin to 8.13.0 #12616
- Remove
isUsingDSP#12676 - Switch to version catalogs, migrate Gradle files from Groovy DSL to Kotlin DSL #12706 #12765
- Migrate from KAPT to KSP #12746 #12816 #12820 #12489 #12849 #12864 #12954 #12975
- Dependency updates #12684 #12776
- Revert Google Material Components to 1.11.0 #13018
- Deprecation fixes #12885 #12897
- Use context.getString() shorthand instead of context.getResources().getString() #12949
- Convert newpipe/util/KioskTranslator.java to kotlin #12947
- Add AI policy to contribution guidelines and PR template #12909
- Code quality improvements #12973 #12963 #12981
- workflows: Update actions versions #12986
- Kotlin migration #12978
v0.28.0
➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️
New
- Add support for Android Auto (special thanks to @haggaie!) #9592 #12044 #12416 #12410 #12412
- Add feed groups as main screen tabs #12325
- [YouTube] Support new kiosks and add migration to change trending kiosk tab #12450
- [YouTube] Share as YouTube temporary playlist #12065
- [SoundCloud] Add support for likes in channel and feed #12367
- [SoundCloud] Add support for AAC 160k unprotected stream TeamNewPipe/NewPipeExtractor#1317
Improved
- [Android 13+] Support per-app language preferences #12093 #12444 #12470
ℹ️ This replaces the in-app setting of the app localization for Android 13+ devices. Your existing in-app preference will be migrated automatically to use Android's per-app language setting. - Show service name in search bar hint #12258
- Show download date in Downloads #12117
- Support RTL usernames in comment header #12188
- Disambiguate audio track labels #12089
Fixed
- Fix broken text colors in dark mode #12035
- [YouTube] Fix playlists not loading more than 100 items TeamNewPipe/NewPipeExtractor#1301
- [YouTube] Fix missing recommended videos TeamNewPipe/NewPipeExtractor#1320
- [YouTube] Other miscellaneous fixes, see https://github.com/TeamNewPipe/NewPipeExtractor/releases/tag/v0.24.8
- Fix crashes in History list view (caused by buggy header) #12214
- Fix stream notification grouping when channel URLs differ #12067
- Fix duplicate menu options in
ChannelFragment#12083 - Fix timestamps not working in comment replies #12202
- Add migration to remove the now-defunct SoundCloud Top 50 kiosk #12438
- Fix UI crash instead of proper error report if search next page can't be extracted #12408 #12455
Translation / Localization
- Update translations and add 15 new locales to the in-app language chooser #12103 #12476
- Do not capitalize "page" for main page content options #12437
- Add dev and refactor nightly build badges to README #12298
- Add matrix chat link and dev/refactor nightly badges to all translated READMEs #12302
- Fix "Get it on F-Droid" appearing giant in README #12409
- Fix new badge links on README being rendered incorrectly #12434
Development
- Disable logs about view animations by default #12043
- Add new Proguard rules for Mozilla Rhino #12104
- Improve extractor Jitpack workaround comment and fix its hash in
build.gradlefile #12256 - [YouTube] Fix accessing poToken challenge data at wrong index in some cases #12150
- Update user agent to Firefox 140 ESR #12472
v0.27.7
This hotfix release fixes YouTube only providing a 360p stream #12126 #12134 TeamNewPipe/NewPipeExtractor#1297
Note that the solution employed in this version is likely temporary, and in the long run the SABR video protocol needs to be implemented, but TeamNewPipe members are currently busy so any help would be greatly appreciated! Take a look at #12248 for more information.
v0.27.6
This hotfix release fixes various YouTube issues:
IOS player response is not validwhich prevented any video from loading #11980 TeamNewPipe/NewPipeExtractor#1272- HTTP 403 errors while playing videos (usually at minute 1:09) #11803 TeamNewPipe/NewPipeExtractor#1272
- Missing video streams at 720p 24-30FPS #11486 TeamNewPipe/NewPipeExtractor#1272
- A few age restricted videos are now playable again #11382 TeamNewPipe/NewPipeExtractor#1272 (but only a few, since there is no known reliable method to extract them)
Warning
YouTube requests now require to run and pass Google's web browsers integrity checks, which NewPipe performs through the system WebView. Therefore, if your device does not have a working WebView implementation, NewPipe will have to fallback to other video extraction methods which might incur in HTTP 403 errors when playing.
New
- [YouTube] Add support for poTokens #11955 TeamNewPipe/NewPipeExtractor#1272
Improved
- Convert error report timestamps to ISO format #11887
Fixed
- Fix caption sizes not being changed #11806
- Fix loading
StreamInfotwice on firstVideoDetailFragmentopening #11959 - [Soundcloud] Remove unplayable DRM-protected streams and reduce network requests TeamNewPipe/NewPipeExtractor#1269
DownloaderImpl: Auto-close resources and simplify headers setting #11969
Translation / Localization
Development
- Fix image-minimizer on lines containing multiple images #11879
v0.27.5
This hotfix release fixes YouTube videos not loading due to extractor error IOS player response is not valid (see #11934 and TeamNewPipe/NewPipeExtractor#1262).
Note
This release only addresses the most pressing error that prevents YouTube video details from loading.
We are aware there are other problems, and we will soon make a separate release to solve them.
v0.27.4
This is a minor release made to allow the new APK to be reproducible for F-Droid, see #11754, and see v0.27.3 for the previous release notes
Improved
- Always allow changing player notification preferences on Android 13+ #11738
Fixed
- Fix exporting database/subscriptions would not truncate an already existing file, possibly leading to a corrupted export #11745
- Fix player resuming from start when clicking on a timestamp #11734
Development
- Add workflow to build unsigned release APKs reliably #11765