Skip to content

Releases: TeamNewPipe/NewPipe

v0.27.4

30 Nov 19:29
3847b32
Compare
Choose a tag to compare

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

v0.27.3

24 Nov 20:48
d298a12
Compare
Choose a tag to compare

⚠️ Known issues/regressions which are not fixed with this update ⚠️

  • [YouTube] "Sign in to confirm..."/"Watch on the latest version..." error messages are difficult to fix, but we are working on it. See #11139 for more details.
  • [PeerTube] No audio is played in videos with a separated audio file. See #11601 for more details.
  • [YouTube] Age-restricted content will not be available anymore, because YouTube removed all known ways to bypass age-restrictions without login. See #11382 for more details.

Some updates on development

It's been some time since the last release, due to team members being very busy with real life things, and we apologize for that. However, there has been some progress on the rewrite (see the refactor branch) and the NewPipe e.V. started hiring people with the money from donations, which led to the creation of NewPlayer. More details on this will follow in a blogpost on https://newpipe.net. If you want to help out with future releases or with the rewrite, please join our Matrix chat!

Changelog

This version also includes the changes from NewPipe Extractor version v0.24.3.

New

  • Add support for secondary audio track type #11714

Improved

  • Make playlist description clickable to show more / less content #11112
  • [PeerTube] Handle subscribeto.me instance links automatically #11110
  • Only start playing single item in history screen #11696
  • [YouTube] Throttle feed loading to avoid rate limits #11743

Fixed

  • Fix RSS button visibility #11067
  • Fix seekbar preview crashes #11584
  • Fix crash after adding item to a playlist caused by null thumbnail URL #11651
  • Fix seekbar crashing on drag with faulty frameset #11596
  • Fix UI crash when user navigates away before the download dialog appears #11621
  • Fix related items list enqueue popup crash #11614
  • Fix playlist order in add to playlist dialog #11566
  • Adjust the playlist bookmark item layout for RTL languages #11024 #11711

Localization and Documentation

  • Update backup and restore explanation in README #11003
  • Remove Kotlin code restriction from contribution guidelines #11209
  • Update README.pt_BR.md #11275
  • Fixing the 404 page not found, when clicking on "contribution notes" in multiple README.md's translated into different languages #11487
  • Adding Hash of Signing Key to README #11140 #11694
  • Fix a typo in README #11694
  • Use Android's elapsed time formatting #11244
  • Update French README.fr.md #10892
  • Readme translation to arabic #10969
  • Update backup and restore explanation & improve hindi, punjabi and assamese READMEs #11243

Development

  • Fix GitHub workflow for Android tests #11014
  • Migrate to non-transitive R classes #10918
  • Update PrettyTime to 5.0.8 #11094
  • Convert CommentTextOnTouchListener to a lambda #11075
  • Add NewPipe icon to Android Studio's new UI #11230
  • Remove outdated returnActivity test code #11428
  • Replaced IcePick with Bridge and Android-State #11636
  • Update Java version used in CI from 17 to 21 #11636
  • Update Gradle Wrapper from 8.2 to 8.9 #11636
  • Update AGP from 8.2.0 to 8.7.1 #11636
  • Replace symlink list_stream_card_item.xml by a copy of the pointed file to fix compilation on a default Windows setup #11636
  • Remove deprecated android.defaults.buildfeatures.buildconfig Gradle property #11636
  • Fix and update NewPipeExtractor dependency #11636
  • Make it possible to control the version code and name #11656
  • Add null-safe SharedPreferences.getStringSafe #11629
  • Update user agent to Firefox ESR 128 #11268

v0.27.2

25 Jul 19:56
d442b45
Compare
Choose a tag to compare

This hotfix release fixes HTTP 403 errors in the middle of YouTube videos.

New

Improved

Fixed

v0.27.1

11 Jul 21:57
0f64158
Compare
Choose a tag to compare

Fixed

Note that this does not fix 403 errors in the middle of YouTube videos, i.e. #11191. That issue will be addressed in another hotfix release as soon as possible.

v0.27.0

23 Apr 20:45
9828586
Compare
Choose a tag to compare

⚠️ Important fixes ⚠️

  • [YouTube] Fix extraction of comments TeamNewPipe/NewPipeExtractor#1163

    The issue happened because YouTube changed the response of comments. Note that this response doesn't return an exact like count for comments for comments with more than 999 likes, only approximate like counts.

    ℹ️ Third-party social links in descriptions and comments are now showing the accessibility text of YouTube, which is in the form Social media name: YouTube preview text instead of just YouTube's preview text.

  • [YouTube] Restore access to some streams TeamNewPipe/NewPipeExtractor#1168

    These streams are the audio streams with an average bitrate around 32 and 48 kbps (itags 139, 599, 600) and the 720p MPEG-4 muxed (video + audio) video stream on videos with musical contents (itag 22, on other contents it was still available). Note that they are not returned by YouTube on every video depending on multiple factors and they currently come from the Android YouTube app client that we use.

    Unfortunately, this client has now several integrity checks very hard or almost impossible to implement as a third-party client that we used to workaround before. The workaround shipped until 0.26.1 has been disabled by YouTube (the same one used previously by reVanced for non-root users), and the one shipped in this release is being disabled (A/B test or rollout).

    These streams should become completely unavailable in the future and may be fully or partially restored in a future NewPipe update.

  • Fix vulnerability when importing backups GHSA-wxrm-jhpf-vp6v

    There is now a new format for settings stored in backups.
    The old patched format is still supported alongside the new format for backwards compatibility, but will soon be removed completely. NewPipe will show a warning when importing settings in the old format.

    Avoid importing any backup from an untrusted source (e.g. a GitHub issue) if it shows this warning!

⚠️ Known issues/regressions which are not fixed with this update ⚠️

DO NOT OPEN NEW ISSUES FOR THEM BUT FOLLOW THE LINKED ONES INSTEAD!

  • [YouTube] Avatars, banners and subscriber count are unavailable on channels sometimes: a YouTube A/B test or rollout changes the channel header UI, which is currently unsupported by the extractor. See #10826 for more details.

Changelog

This version also includes the changes from NewPipe Extractor version v0.24.0.

New

  • Add support for comment replies #10018
  • Add playlist description to playlist fragment #10091
  • Add option to reset settings #9236
  • Show overall duration of items in a playlist #6045 #10952
  • Allow ordering bookmarked playlists #8221

Improved

  • [Android 13+] Restore support of custom notification actions #10712
    ⚠️ The first three notification actions (play/pause, previous and next) cannot be customized anymore on these Android versions, as they are set by the system ⚠️
  • Allow playing/pausing from the notification when the player is buffering #10712
  • Added "free memory" check before downloading #10505 #10896 #10992
  • Change the landscape layout of list card item #9975
  • Ask for consent before checking for updates #10790
  • Moved player notification setting to notification section #9580

Fixed

  • Don't write defaultFormat setting, use default value #10732
  • Calculate cache key based on info type instead of item type #10717
  • Fix not considering nullability when comparing getAudioTrackType #10909
  • Trim search string and remove duplicate records from the database #8242
  • Various download fixes #10912
  • Fix error if there is no avatar when reloading feed #10957

Localization and Documentation

  • Update translations #10890
  • Use GitHub markdown to emphasise warning in README #10724

Development

  • Update some AndroidX libraries and compileSdk to 34 #10086
  • Update miscellaneous libraries #10530
  • Update Matrix chat URL to new link #10795
  • Update jsoup to 1.17.2 #10817
  • Update GitHub Actions dependencies in workflows #10740
  • Fix typo in TextLinkifier.java #10889
  • Improve app signature check #10618
  • Update workflows to use Node 20 #10908
  • BaseDescriptionFragment: Assert member is initialized #10781

v0.26.1

27 Dec 13:37
49429ff
Compare
Choose a tag to compare

➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️

Fixed

  • [MediaCCC] Fix crash when opening a channel / conference #10699

v0.26.0

21 Dec 22:19
6762993
Compare
Choose a tag to compare

➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️

This version also includes the changes from NewPipe Extractor v0.23.0 and v0.23.1, which fix the recurring "Could not get like count" error on YouTube streams.

New

  • Access more content provided by channels which is grouped in different tabs (TeamNewPipe/NewPipeExtractor#1082 #9182 #10645 #10670 #10671 #10673). The content of the channel tabs can vary by service:

    • YouTube: videos, shorts, live, playlists, about
      • Note that YouTube does not provide upload date and duration for shorts, so they won't show up in the feed
    • PeerTube: videos, playlists, channels (for accounts), about
    • SoundCloud: tracks, playlists, albums, about
    • Bandcamp: albums, tracks, about
    • media.ccc.de: videos, about
  • Allow selecting image quality among multiple images #10062 #10482
    NewPipe supports selecting the image quality among multiple image versions. This comes with three different presets which can be selected from within the settings (low, medium and high quality). This is most noticeable in the recently introduced card style for stream lists which is now able to show thumbnails in higher resolutions. Some services (e.g. YouTube) do not always provide the highest quality thumbnails for those lists.

Improved

  • Adjust empty state message for ListInfoFragments depending on Info stream type #10304
  • Show loading indicator before opening the download dialog from the share menu #10407
  • Improved accessibility of player interfaces #10199
  • Include a high-resolution option in the default resolution settings #9987
  • Show play queue button in main player when there is one stream #10396
  • Add option to add playlist name and video name to playlist sharing content #10427
  • Improve audio stream selection for video-only streams in the downloader #10446

Localization and Documentation

  • Make capitalization of "Night theme" setting consistent with others #10313
  • Update Weblate & fix string formats #10376
  • Fix selection of wrong languages in language picker #10406
  • Make "latest release" link more obvious to bug reporters #10331
  • [Readme] Remove Bitcoin and Bountysource donation options #10491
  • [Readme] Add Matrix room link #10632

Fixed

  • Fix player audio focus not respecting mute #10275
  • Fix downloads of streams with missing MediaFormat #10165
  • [YouTube] Fix extraction of age-restricted music videos TeamNewPipe/NewPipeExtractor#1108 #10440
  • Fix restoring software license dialog #10436
  • Fix inconsistency between user interaction and database commit order when re-adding videos to a playlist #8248
  • Fix playing SoundCloud songs under some conditions: now OPUS HLS streams are considered as unplayable, and thus other streams are preferred #10579
  • Fix app not responding, background app crashes and issues with starting the player #10578
  • Fix some null pointer exceptions #10576 #10577
  • Fix custom filename replacement character being interpreted as regex and crashing the app #10489
  • Fix notifying about old "new" streams #10494
  • Fix channel avatar not loading correctly sometimes #10581

Development

  • Simplify MainActivity.tabSelected(MenuItem) #10360
  • Image minimizer: replace Number.toFixed(0) with Math.floor() #10377
  • Update miscellaneous libraries #10234 #10244
  • Improve the download helpers using the Java 7 NIO API. #10248
  • Fix memory leaks and add documentation #10394
  • Replace MathUtils.clamp with Kotlin coerceIn #10224
  • Bump AGP to 8.1.1 #10428
  • Improve codequality #10435
  • Update extractor and remove DeobfuscateException handling #10440
  • Add workflow "PR size labeler" to label PRs based on the number of changed lines #10170 #10447

v0.25.2

02 Aug 19:53
1e8efa7
Compare
Choose a tag to compare

➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️

⚠️ Important fixes ⚠️

  • [YouTube] Fixed the recent issue where videos would abort playing because of HTTP 403 errors TeamNewPipe/NewPipeExtractor#1084

    The issue happened because YouTube is removing the effectiveness of the previous workaround (i.e. using player parameters of Stories and the start of the Shorts ones) used to get streams from the Android client.

    ⚠️ Like for the previous workaround, the new one used (which, at the moment of publishing the release, is the only known one) to fix the issue can break at any time.

    As stated in the changelog of 0.24.1, if you see this error again and you have the ability to block network requests to specific domains for apps on your device, you can block the youtubei.googleapis.com domain to work around this issue.

    However, this has a few downsides:

    • the 720p video stream with audio (used for external players) will be not available on musical contents;
    • the 48kbps M4A audio stream and the 144p 3GPP video stream will be not available;
    • the rewind duration of livestreams will be limited to 30 seconds at most, instead of 1 hour.
  • Some users reported player crashes or black screen on some devices, especially Android TVs. In some cases this was caused by media tunneling not being properly implemented by the manufacturer.

    • Such feature now is disabled by default on more known unsupported devices! #10122
    • In case you still experience similar issues, try to manually disable media tunneling from Settings -> Video and audio -> ExoPlayer settings -> Disable media tunneling, and report to us if your device needs to be blacklisted automatically. You may want to try the other ExoPlayer settings switches, too.

⚠️ Known issues/regressions which are not fixed with this update ⚠️

DO NOT OPEN NEW ISSUES FOR THEM BUT FOLLOW THE LINKED ONES INSTEAD!

  • [YouTube] No streams are returned in some playlists: YouTube returns an unsupported UI by the extractor when there are only shorts in a playlists: see TeamNewPipe/NewPipeExtractor#1077 more details.
  • Player notification actions set from app player notification settings are not used on Android 13 and above: this is related to targeting Android 13/API 33 or higher: apps cannot completely personalize media notifications: see #9764 for more details.

Changelog

This version also includes the changes from NewPipe Extractor version v0.22.7.

New

  • Allow setting volume and brightness gestures on any side of the screen #9708
  • Add an ExoPlayer settings page #8875 #10122
  • Add support for multiple audio tracks #9937 #10230
  • Add support for displaying main-tabs at the bottom of the screen #9719

Improved

  • Add whitelist to only retrieve supported YouTube itags/streams #9748
  • [YouTube] Improve download speed #9948
  • [PeerTube] Handle links to the instance “peertube.stream” #10141
  • Fix a memory leak in the player #10232
  • Disable media tunneling by default on more known unsupported devices #10122

Fixed

  • [PeerTube] Fix uploader and subchannel avatars being swapped and disable loading thumbnail message failure on content details page #10066
  • Fix crash after feed update #10229
  • Fix no video in player when switching to main player from playlist view #10195

Localization

  • Update translations #10074
  • Add new language ߒߞߏ / N'Ko (nqo) to the language chooser #10042
  • Translate README into new languages and update a few translations #9421 #9897 #10240 #10250
  • Add Uchinaguchi translation #10250

Development

  • Remove jsoup files from APK #10004
  • Update to Kotlin to 1.8.20 and AndroidX Core to 1.10 and switch to AndroidX's PendingIntentCompat #10021
  • Upgrade Gradle and AGP from 7.x to 8.x and use Java 17 #10035 #10067
  • Update ACRA to 5.10.1 and Checkstyle to 10.12.1 to fix a dependency vulnerability #10200
  • Update screenshots #10213
  • Add support for new GitHub assets URLs in image minimizer workflow & minimize images in PR descriptions #10166 #10233
  • Add link to wiki page for APK download #10219
  • Clean up AlertDialogs #10223
  • Update LeakCanary library #10085 #10232
  • Add database test for SubscriptionManager #8456
  • Update AndroidX Room library #10235
  • Use Okio 3.4.0 explicitly to fix a vulnerability #10281

v0.25.1

03 Apr 17:20
07111d8
Compare
Choose a tag to compare

➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️

⚠️ Known issues/regressions which are not fixed with this update ⚠️

DO NOT OPEN NEW ISSUES FOR THEM BUT FOLLOW THE LINKED ONES INSTEAD!

  • Player notification actions set from app player notification settings are not used on Android 13 and above: this is related to targeting Android 13/API 33 or higher: apps cannot completely personalize media notifications: see #9764 for more details.
  • Crash when playing content in fullscreen on some devices: our usage of the ExoPlayer library does not correctly handle rendering to a different surface than the starting one and crashes when trying to switch to fullscreen. See #9023 for more details and workarounds.
  • [YouTube] Trends are not shown sometimes and No videos are shown in this case: YouTube is A/B testing a new trends UI which completely reworks what data is sent and how it is displayed. This new structure is currently not supported by the extractor. See TeamNewPipe/NewPipeExtractor#1046 for more details.

Changelog

This version also includes the changes from NewPipe Extractor version v0.22.6.

New

  • Handle duplicate streams in the "Add to playlist" dialog #9538
  • Larger channel cards in search results #9728
  • Add an option to ignore hardware media button events #9746
  • Add option to remove partially watched videos from the 'Whats new' feed #9747
  • Add button to remove duplicates from playlist #9707

Improved

  • Reduce the size of thumbnails on big screens to fit more grid columns #9858
  • Make UI behavior for playback information display more consistent #8180

Fixed

  • Orientation is locked if there is no sensor for it #9693
  • Fix crash when clicking on an empty comment #9777
  • [Android 11+] Correctly open URLs in browser and fix opening downloads and external players #9850
  • Fix playlist streams progress bar size in card mode #9769
  • Fix erroneous updates of playlist thumbnails #9755
  • Revert "Use WindowCompat" #9812

Localization

Development

v0.25.0

08 Feb 23:32
831f36e
Compare
Choose a tag to compare

➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️

New

  • Show toast when no updates are available #8668
  • Show subscriber count on video details page #9173
  • Download items from the long press menu of queue items #9502
  • Allow permanently setting a playlist thumbnail #9523
  • Add long press action on hashtags and web links in descriptions #7725
  • New card view mode with full width thumbnails #9310

Improved

  • Remove the redundant/overlapping toast "Copied to clipboard" for Android 13+ #8961
  • Make mini-player close button area larger #8743
  • Use smoother bitmap downscaling for thumbnails #8686 #9479
  • Rename "Help" to "Fast mode" #9500
  • Add hint to improve discoverability of subscription import #9501
  • Disable night theme selection if auto theme is not used #9488
  • Set compileSdk and targetSdk to 33 (Android 13) #9306 #9671 #9696 #9726 #9758
  • Seeking no longer pauses the played stream #9496
  • Add icon for "Play All" #9568
  • Add language suffix to downloaded subtitle filenames #9499
  • Check availability of Samsung DeX only on Samsung devices #9619
  • Add "What's New" to the default main page tabs #9664
  • Change "What's New" icon #9678
  • Make channel images in grid lists bigger #9555
  • Change "Chapters" icon #9691
  • [YouTube] Add support for live links #9725

Fixed

  • Fix persistent hover overlay when in desktop/DeX mode or using a mouse/non-touch input #8316
  • Only show "Enqueue next" when in the middle of the queue #8883
  • [PeerTube] Remove dead Privacy Tools instance #9504
  • Fix crash when click "Add to playlist" while the current list is still loading #9521
  • Allow using background player when there are no separate audio streams #9562
  • Improve screen rotation handling in Open action menu #9135
  • Ask for permission when enqueuing in a popup #9653
  • Fix removing watched videos from playlist includes currently playing #9445
  • Fix displaying multiple empty playlists #9642
  • Fix background player stops working when enqueueing playlist at different index #9706
  • Fix link clicking and ellipsizing of comments #9631

Localization

Development

  • Make PendingIntents immutable on Android 6.0 and later #9333
  • Use Locale.forLanguageTag() #8870
  • Forbid wrong @Nullable and @NotNull annotation imports #9474
  • Set image-minimizer to specify image width #9471
  • Update Sonarqube to 3.5 #9480
  • Use Math.floorDiv() #8810
  • Use SparseArrayCompat #8895
  • Update LeakCanary to 2.9.1 #9306
  • Update Desugaring to 1.1.8, ACRA to 5.9.7 and Android Gradle Plugin to 7.3.1 #9481
  • Refactor VideoDetailFragment #8847
  • Refactor VideoPlayerUi #9159
  • Update RxJava to 3.1.5 and RxAndroid to 3.0.2 #9520
  • Use ListAdapter in NotificationModeConfigAdapter #8841
  • Use new NPE UTF8 Utils methods #8769
  • Clean up Optional-related code #9285 #9663
  • Remove Runnable variables for Handlers #8886
  • Use WindowCompat #8894
    • If you encounter any issue with system UI not behaving properly, this PR will be reverted
  • Update desugar_jdk_libs to 2.0.2 and Android Gradle Plugin to 7.4.0 (which requires Android Studio Electric Eel) #9686 #9743
  • Fix reproducible builds #9709