Releases: TeamNewPipe/NewPipe
v0.24.1
➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️
New
- Add monochrome icon #8987
- Add link to FAQ in the app #9164
- Add an "Open in browser" button on error panel #9180
- Add option to display channel groups as list instead of grid #9207 #9298
- Long-click on stream segment to share timestamped URLs (for YouTube only) #9203
- [YouTube] Support handles #9291 TeamNewPipe/NewPipeExtractor#964
Improved
- Add play queue button to video details fragment #8946 #9109
- Show "Hold to enqueue" tip in local playlists #9196
- [YouTube] Add support for attributed text description TeamNewPipe/NewPipeExtractor#953
- [YouTube] Support all channel usernames TeamNewPipe/NewPipeExtractor#964
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
byUU
at the beginning of the ID and use the resulting ID as a playlist ID (append this ID to a playlist URL likehttps://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 theyoutubei.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
➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️
New
⚠️ BumpminSdk
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
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
Fixed
- [YouTube] Fix infinite loading when trying to play any video TeamNewPipe/NewPipeExtractor#912
- [YouTube] Fix throttling on some videos TeamNewPipe/NewPipeExtractor#882
Development
- Upgrade the jsoup library to 1.15.3, which includes a security fix #8880 TeamNewPipe/NewPipeExtractor#911
v0.23.2
Fixed
- [YouTube] Fix "Could not get any stream" error when trying to play any video, thanks to @Theta-Dev! TeamNewPipe/NewPipeExtractor#891
- [YouTube] Fix replacement of video and audio streams by a video saying
The following content is not available on this app
TeamNewPipe/NewPipeExtractor#890
v0.23.1
➡️ ➡️ ➡️ 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 cleanupRouterActivity
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
➡️ ➡️ ➡️ 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
withR.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
withShapeableImageView
#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
v0.22.1
➡️ ➡️ ➡️ 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
v0.22.0
➡️ ➡️ ➡️ Read the blog post ⬅️ ⬅️ ⬅️
New
- New Fast Forward/Rewind behavior #4833
- Searchable Preferences / Settings #7586, #7860
- Highlight pinned comments as such #7577
- Added FSFE-Tube PeerTube instance #7481
Improved
- Unify error reporting and add error notification #7482
- Show an alert dialog when no appropriate file manager was found #7452
- Do not repeatedly say "Video preview thumbnail" when in reader mode #7619
- Increase playlist stuck target duration coefficient and catch
BehindLiveWindowExceptions
properly #7661
Fixed
- Fixed order of local search results #7491
- Respect cutouts when playing in MultiWindow #7451
- Fixed hashtags that use non-English characters. #7556
- Fixed readme link #6855
- Fixed view of sub-channel icon when not in use #7582
- Fixed search not accepting key input after closing player overlay #7607
- Load full stream info before using a stream, fixing empty fields in play queue #7036
- Fixed crash when sharing a playlist which is loading #7662
- Workaround: Set recovery before switching player #7668, #7852
- Added app icon to fastlane metadata #7672
- Always show playing in background/popup toast #7614, reverting #7224 and #7568
- Fixed first item always played in the play queue when reloading play queue manager #7693
- Load uploader url when showing channel details from play queue #7538
- Fixed crash when long-pressing stream while player is starting #7704
Development
- Bump ktlint, Checkstyle, Java version #7500
⚠️ The app requires now Java 11 to be built - Update/Fix "Get it on F-Droid" #7498
- Updated a bunch of libraries #7499
- Readd sonar CI job #7552
- Small improvements to code quality and readability #7562
- Updated NewPipeExtractor #7589
- CI: Upload test-report when an error occurs #7636
- Replaced JUnit asserts with AssertJ in HistoryRecordManagerTest #7654
- Fixed false warning #7648
- Add traditional Chinese README #7618
- Add Polish README #7694
- Some untranslatable string improvements #7317
- Ensure order of search history entries in tests #7670
- Sync weblate #7689
- Fixed some gradle deprecations #7678
- Improved HistoryRecordManager tests #7700
- Moved translated READMEs to subfolder #7784
- Updated FUNDING.yml #7682
- Small changes to license section of README #7710
- Added some stuff to paths-ignore #7803
v0.21.16
🔴 🔴 🔴 Read the blog post for more details 🔴 🔴 🔴
Fixed
- Fix YouTube not playing any streams TeamNewPipe/NewPipeExtractor#785