Skip to content

Releases: TeamNewPipe/NewPipe

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

v0.24.1

06 Nov 16:27
a95a5ed
Compare
Choose a tag to compare

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

New

Improved

Fixed

  • Fix potential cast exception in comments text #9065

  • Fix DownloadDialog crash on screen rotation #9079

  • Fix crash when clicking download and quitting the history fragment #9143

  • Fix job for removing watched streams from playlist not executing only once #8706

  • Fix duplicate videos in feed group "All" #9230

  • [YouTube] Fix extraction of videos in channels and in feeds when not using dedicated mode (RSS feeds) TeamNewPipe/NewPipeExtractor#944

    ⚠️ Due to the separation of shorts and livestreams (including VODs) of most channels into separate tabs, these contents will be not available until channel tabs support is added.

    However, you can use workarounds until this support is added:

    • For feeds, use the dedicated method to fetch channels (a.k.a. RSS feeds);
    • For channels: you can use the uploads playlist of a channel to get all its public videos: take a channel ID (not a username or a handle), replace UC by UU at the beginning of the ID and use the resulting ID as a playlist ID (append this ID to a playlist URL like https://www.youtube.com/playlist?list= and then open this URL in NewPipe). These playlists may be not available on some YouTube "system" channels.
  • [YouTube] Fix 403 HTTP errors when playing sometimes videos in some countries by using a workaround TeamNewPipe/NewPipeExtractor#960

    ⚠️ The workaround can break at any time. 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.
  • [YouTube] Fix extraction of author and video count of playlists with their new metadata format TeamNewPipe/NewPipeExtractor#958

    ⚠️ With the new metadata format, no author thumbnail is returned anymore.

  • [SoundCloud] Fix tracks in incorrect order on playlists TeamNewPipe/NewPipeExtractor#939

  • [SoundCloud] Fix getting more comments TeamNewPipe/NewPipeExtractor#943

Localization

  • Add new localizations (Icelandic, Latvian, Malayalam) to language selector #9179
  • Update translations #9092, #9179, #9256
  • Remove empty localizations #9256

Development

  • Use LinkifyCompat #8934
  • Utilize useSimpleSummaryProvider attribute #9011
  • Improve FeedGroupDialogViewModel factory #8734
  • Update Android Gradle Plugin to 7.3.0 #8986
  • Use range-limiting methods in more places #8747
  • Use Okio's ByteString for download checksums #8767
  • Calculate search score using streams #8739
  • Use TextViewCompat.setCompoundDrawableTintList() #8655
  • Update AppCompat to 1.5.1 and compileSdk to 32 #8768
  • Update PrettyTime from 5.0.3 to 5.0.6 to include new localizations made by NewPipe contributors #9272
  • Update NewPipe Extractor #9291

v0.24.0

25 Sep 13:12
0c63950
Compare
Choose a tag to compare

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

New

  • ⚠️ Bump minSdk to 21 (Android 5 Lollipop) and drop support for Android 4.4 KitKat #7613
  • Add Download entry to long-press menu #8397
  • Add option to hide future videos in feed #8545 #8966
  • Add Share menu item to local playlists #8542

Improved

  • Crop the notification thumbnail in 1:1 mode instead of stretching it #8533
  • Make thumbnails' scaleType fitCenter #8573
  • Improve image placeholders #8530
  • Removed the "(beta)"-tag from services #8637
  • Refactor player and extract UI components #8170 #8661 #8678 #8731
  • Sort tags case-insensitively #8709

Fixed

  • Fix wrong image used as a placeholder for channels avatars #8676
  • Fix various issues with player notification #8678 #8899

Localization

  • Make some much needed changes to the README #8372
  • Fix lang code for Chinese Simplified #8549

Development

  • Run CI on all release branches #8565
  • Clean up proguard file #8468
  • Update ExoPlayer to 2.18.1 #8536 #8687
  • Specify used ExoPlayer libraries #8469
  • Use minimum required permissions for GitHub workflows #8569
  • Checkstyle assign on same line #8601
  • Use ViewCompat.setBackgroundTintList() #8633
  • Update some misc libraries #8475
  • Use stream sorting #8635
  • Use Java 9 collection factories: List.of(), Set.of(), Map.of() #8631 #8679
  • Use range-limiting method MathUtils.clamp() #8651 #8737
  • Use Kotlin IO extensions #8648
  • Remove some unnecessary methods #8663 #8740
  • Remove deprecated method calls in FocusAwareCoordinator #8670
  • Deduplicate SQL queries to get feed streams #8621
  • Update OkHttp to 4.10.0 #8624
  • Update Lifecycle to 2.5.1 #8683
  • Update AndroidX Fragment to 1.4.1 #8691
  • Update Google Material to 1.6.1 #8692
  • Use Throwable.stackTraceToString() #8701
  • Update AppCompat to 1.4.2 #8667
  • Use WindowMetrics API #8656
  • Update AndroidX Room to 2.4.3 #8716
  • Remove uses of setBottomSheetCallback() #8669
  • Refactor LicenseFragmentHelper #8682
  • Make OnClickGesture an interface #8721
  • Reduce View.kt size #8708
  • Use toArray() with zero-length arrays #8724
  • Use Comparator factory methods #8728
  • Use Collectors.joining() #8738
  • Update FilePicker to our custom fork and disable Jetifier #8666
  • Add FAQ entry to the template checklists #8822
  • Use ListAdapter for search predictions #8719 #8972
  • Update Gradle to 7.5.1 #8751
  • Remove extra whitespace from issue and PR templates #8755
  • Clarify that span shouldn't be in translated READMEs #8754
  • Keep strong references to Picasso notification icon loading targets #8677
  • Create media session UI and fix player notification #8678

v0.23.3

25 Aug 12:41
4227866
Compare
Choose a tag to compare

Fixed

Development

v0.23.2

13 Aug 10:42
50f3131
Compare
Choose a tag to compare

Fixed

v0.23.1

05 Jul 14:41
d81607c
Compare
Choose a tag to compare

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

New

  • Support delivery methods other than progressive HTTP #8153 (thanks to @AudricV!)

    • [YouTube] Use DASH for playback, improving loading times in playback and seeking
    • [YouTube] Full playback of recently ended livestreams
    • [YouTube] Improve availability of some resolutions and formats
    • [PeerTube] Fix seeking on videos with only HLS streams
    • [PeerTube] Fix crash on videos with an audio-only stream
    • [SoundCloud] Fix playback of HLS-only tracks
  • Add button to add a remote playlist to a local one #7355

  • Image preview in Android share sheet (Android 10+ only) #8143

Improved

  • Improve playback parameters dialog's UI #7989 #8349
  • Moved subscription import/export options to (overflow) menu #7458

Fixed

  • Fix keyboard doesn't open with disabled animations #8227
  • Fix crash when opening NewPipe from the notification bar #8244
  • Fix hiding player controls when playing from media button #8315
  • Fix history view count #8336 #8564
  • Fix RouterActivity theming (the menu that shows up when you share something to NewPipe) #8332
  • Fix removing only fully watched videos from playlist #8259
  • Fix crash when rotating device on unsupported channels #8192
  • Make volume progress bar match system volume when we start sliding #8377
  • Fix Add to playlist not working and cleanup RouterActivity choice handling (the menu that shows up when you share something to NewPipe) #8340

Localization

  • Add Hindi translation of the README #8355

Development

  • Update ACRA library #8206
  • Update user agent used by the downloader #8269
  • Remove unused strings.xml resources #8329
  • Update Groupie and ACRA libraries #8407
  • Update Android Gradle Plugin and Kotlin #8406
  • Use JvmOverloads instead of manually overloading method #8391
  • Remove unnecessary compat method calls #8382
  • Use AppCompatResources #8404
  • Made some much needed changes to the ReadMe #8372

v0.23.0

29 Apr 20:04
ecb8ef6
Compare
Choose a tag to compare

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

New

  • Notifications for new streams #2335
  • Seamless transition between background and video players when putting the app in background #7349 #8139
  • Change pitch by semitones #7565
  • Implement appending queue to playlist in main player #8008
  • Load YouTube mixes in related items TeamNewPipe/NewPipeExtractor#788 -- note that this has already been broken by YouTube in the EU

Improved

  • Remember adjustment step size for playback controls (speed and pitch) #7728
  • Mitigating long buffering on initial video playback #7919 #8302
  • Replace R.string.yes with R.string.ok #7976
  • Improve player UI and navigability for Android TV #7963
  • Add a confirmation button when deleting all files in downloader #5878
  • Remove icon duplicates and fix some theming issues #7518 #8081
  • ExoPlayer 2.17.1 update and MediaSource management rework #8020 #8150 #8249

Fixed

  • Fix player controls not hiding if resumed from media button #7341
  • Migrate app update checker to AndroidX Work #7975
  • Fix error notification on KitKat #7977
  • Fix playback being reset to beginning when player type was changed #8020
  • Fix download dialog selector layout #7516
  • Fix crash when rotating device with playlist dialog open #8146
  • Adapt opacity of popup close button to allow touches in other apps on Android >=12 #8279

Development

  • Replace CircleImageView with ShapeableImageView #7925
  • Solve Java warning Raw use of parameterized class #7904
  • Fix Room warning about unused columns during build #7905
  • Fix build on Apple Silicon Macs #7782
  • Refactor generating InfoItemDialog's #7570
  • Better equals check #7910
  • Update Android Gradle Plugin and Gradle #7947
  • Remove duplicate large-land player layout #7894
  • Update ConstraintLayout and Room libraries #7954
  • Update Kotlin to 1.6.10 #7952
  • Update some AndroidX libraries #7978
  • Deduplicate code for fetching stream info when sparse #7981 #8127
  • Extract some view click listeners from player #8011
  • Delete some unused code #8067
  • Clean up the about package a bit #8065
  • Create stub implementation for OnSeekBarChangeListener #8066
  • Some lint cleaning #8068
  • Update Checkstyle to 10.0 and fix various related issues #8073
  • Update license to latest version #8076 #8077
  • Update CONTRIBUTING.md with current checkstyle.xml path #8175
  • Update GitHub action dependencies in workflows #8198
  • Update AGP, Gradle, and Kotlin #8204
  • Use simpler DrawerLayout method #8200
  • Replace checklist drawable #8199

v0.22.2

15 Apr 18:11
53a659c
Compare
Choose a tag to compare

Fixed

v0.22.1

26 Feb 21:35
47f9ed0
Compare
Choose a tag to compare

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

Fixed

  • Load enough initial items and fix crash in lists #7659
  • Have fast seek overlay arc go under system ui #7898
  • Revert "Respect cutouts when playing in MultiWindow" #7924

Development

  • Update ACRA library #7679
  • Improved image-minimizer #7884
  • Change compileSdk from 30 to 31 #7900
  • Small refactor in player class #7901