NewPipe
NewPipe copied to clipboard
Release v0.24.0 (please TEST!)
Testing for regressions
Debug APK (built by our CI in #8889): NewPipe_v0.24.0_RC3_debug.zip Release APK (built and signed by @Stypox): NewPipe_v0.24.0_RC3_release.zip Please report only regressions (i.e. new issues) here, not issues that were already present in previous releases!
TODO
- [ ] Merge weblate
- [x] #8899
- [x] TeamNewPipe/NewPipeExtractor#920
- [x] TeamNewPipe/NewPipeExtractor#925
- [x] TeamNewPipe/NewPipeExtractor#926
- [x] Thumbnails in the feed tab are incorrectly resized https://github.com/TeamNewPipe/NewPipe/issues/8890#issuecomment-1236708859 https://github.com/TeamNewPipe/NewPipeExtractor/pull/927
- [x] Strange
Show future videosicon behavior https://github.com/TeamNewPipe/NewPipe/issues/8890#issuecomment-1230466338 #8966 - [ ] Crash when closing mini player before it loads https://github.com/TeamNewPipe/NewPipe/issues/8890#issuecomment-1242885157 https://github.com/TeamNewPipe/NewPipe/issues/8646#issuecomment-1236162209
- [x] Search suggestions ListAdapter issues #8972
NewPipeExtractor version
This version of NewPipe will ship with a NewPipe Extractor commit which will be known once the extractor PRs above have been merged. -> we are going to change the exposed extractor API again soon, so no official release will be done until then ;-)
App changelog
New
- :warning: Bump
minSdkto 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
- Add Share menu item to local playlists #8542
Improved
- Crop the notification thumbnail in 1:1 mode instead of stretching it #8533
- Make thumbnails'
scaleTypefitCenter#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
- Use ListAdapter for search predictions #8719
Fixed
- Fix wrong image used as a placeholder for channels avatars #8676
- Fix various issues with player notification #8678
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
OnClickGesturean interface #8721 - Reduce
View.ktsize #8708 - Use
toArray()with zero-length arrays #8724 - Use
Comparatorfactory methods #8728 - Use
Collectors.joining()#8738 - Update FilePicker to our custom fork and disable Jetifier #8666
- Add FAQ entry to the template checklists #8822
- 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
Not a regression, but the long press hint for the "Show future videos" button in the subscription feed doesn't change to indicate whether the left-pointing or right-pointing icon is show/don't show.
This version fixed my problem with current NewPipe release, which does not let me watch any videos they just load infinitely.
@Jirafey just download 0.23.3, that problem was already fixed in that version
Finally. This release fixed my fullscreen issue #8774. Thanks .
If this will be the final release then I should be able to use regular newpipe builds again instead of debug builds.
Somebody reported on reddit that still sometimes the wrong notification thumbnail is shown when switching videos. After some testing it seems like this is reproducible only on Android 13 (and maybe 12). Here are the full reproduction steps:
- search for "playlist", while filtering only for playlists
- open a playlist having as first two items two videos you have NEVER seen before (to make sure video thumbnails are not cached)
- tap on the "Background" button in the playlist header
- from the notification, press next
=> The second video will start playing, but the shown thumbnail will be that of the first video. The strange thing is that the color of the thumbnail actually adapts to the thumbnail of the second video, which implies the OS must receive the correct thumbnail somewhere, since it's up to the OS to decide the notification color. I could also confirm that the correct thumbnail is set in the media session by using https://github.com/googlesamples/android-media-controller/. I will investigate a little more and give updates here.
Android 12 (CalyxOS): The thumbnail gets updated correctly.
still has throttling with this and 0.23.3 for some reason.
@eladkarako On playback, on download, on all formats? Could you explain your issue a bit, please?
Also it seems you blocked all the TeamNewPipe organization members since a while.
still has throttling with this and 0.23.3 for some reason. 25kbps top.. :..(
Is this the same issue as #8906?
Tapping on either Remove watched or Show future videos icon always show New feed items toast if a livestream is going on.
https://user-images.githubusercontent.com/79245641/187223573-e12a584a-72ef-471c-b5f5-971107024f9b.mp4
@SameenAhnaf I think that bug is present also in 0.23.3, so it's not a regression, though I agree it looks strange
The Show future videos icon behavior is not present in 0.23.3 though. At least, that should be solved.
still has throttling with this and 0.23.3 for some reason.
On playback, on download, on all formats? Could you explain your issue a bit, please?
Also it seems you blocked all the TeamNewPipe organization members since a while.
Is this the same issue as #8906?
Close, but not quite.
The WebM video format appears to experience the throttling issue during playback, and even then only with certain channels and videos. Not sure if the MP4 format playback can replicate it so easily.
Sometimes power cycling home networking equipment solves the issue, but not for long and not with every video example.
~~Cloudflare 1.1.1.1 and corresponding IPv6 addresses are being used in the router settings, and DNS-over-TLS is not being used/does not affect this problem. Will test with ISP DNS addresses later.~~ DNS address usage does not matter here.
Using mobile data can handle the affected video format more easily, somehow.
Background playback of a WebM video proceeds as normal with minimal issue, but foreground playback and rendering of the WebM video is where the problem occurs.
Small update on my prior comment. Removing the 2 secondary RF antennae on my NETGEAR XR500 router (it comes with 4) appears to have solved the issue for Youtube-encoded WebM video playback.
The strange thing is why this worked, when other apps seemed to maintain typical connectivity with all 4 antennae connected. Maybe they were interfering with each other?
Now im sad since im using an android kitkak phone. What to do now.
Now im sad since im using an android kitkak phone. What to do now.
How long have you used this phone for?
Thumbnails in the feed tab are incorrectly resized, this only happens in the feed tab.
Opening a video updates the thumbnail correctly:
Thumbnails in channel and trending tabs are resized correctly:
Using a OnePlus Nord 2, with Android 12
Thumbnails in the feed tab are incorrectly resized, this only happens in the feed tab.
Strange. They show fine on Android 12 Calyx.
Yeah i've been trying out a few things and it seems like the problem only appears after importing both database and configs from my 0.23.1 instance of newpipe
I can confirm, using fast feed. This is not a problem in the UI, but rather in the extractor, since it seems to provide thumbnails with black bars at the top and at the bottom. It should be solvable easily, I think.
No more RCs for this one?
Steps to reproduce an app crash
- Go to
Subscriptions - Go to channel details of any of the subscriptions.
- Start any media on the background.
- Close mini player before the buffering ends.
- UI crashes.
Exception
- User Action: ui error
- Request: ACRA report
- Content Country: US
- Content Language: en
- App Language: en_GB
- Service: none
- Version: 0.24.0
- OS: Linux Android 11 - 30
Crash log
android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{2d5f03b u0 org.schabi.newpipe.v0_24_0/org.schabi.newpipe.player.PlayerService}
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2126)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8057)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Please release this version, it's working fine on my device.
@Locorock could you test the apk provided in https://github.com/TeamNewPipe/NewPipeExtractor/pull/927? It should fix the thumbnail issue in the feed
@SameenAhnaf regarding https://github.com/TeamNewPipe/NewPipe/issues/8890#issuecomment-1230466338, I tried to implement it but unfortunately it is not a good solution. The button in the top bar is actually a checkbox, so showing "hide future videos" when the button is checked and showing "show future videos" when the button is unchecked is confusing and non-standard behavior. So I think we will not change this, and at least not during the release process.

Can't the hint be changed independently of the item text?
Comment, crash log and screenshot for thumbnails not loading
~Still getting the wrong size after importing last version's settings. I feel like this is more of a problem with the imported settings.~
Exception
- User Action: load image
- Request: https://i.ytimg.com/vi_webp/leoz6wB5dmE/maxresdefault.webp
- Content Country:
- Content Language: en-
- App Language: en
- Service: YouTube
- Version: 0.24.0
- OS: Linux Android 12 - 31
com.squareup.picasso.NetworkRequestHandler$ResponseException: HTTP 404
at com.squareup.picasso.NetworkRequestHandler.load(NetworkRequestHandler.java:51)
at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:219)
at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:175)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:463)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:354)
Honestly no idea about what is going on, but this showed upon opening a video with the wrong thumbnail
And now this
@Locorock thank you for testing. Let's try with another method. I updated the APK in https://github.com/TeamNewPipe/NewPipeExtractor/pull/927, please check if this one works ;-)
@ktprograms you are right, I'm stupid :joy:, I opened #8966 which should add tooltips.
Screenshot, crash log and heap dump of (unrelated) Embedded info did not provide YouTube player js url
This happens as i open any video with no thumbnail

Exception
- User Action: ui error
- Request: ACRA report
- Content Country: IT
- Content Language: it-IT
- App Language: en
- Service: none
- Version: 0.24.0
- OS: Linux Android 12 - 31
org.schabi.newpipe.extractor.exceptions.ParsingException: Could not store JavaScript player
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.storePlayerJs(YoutubeStreamExtractor.java:1104)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.initStsFromPlayerJsIfNeeded(YoutubeStreamExtractor.java:1172)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:826)
at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:60)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:78)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:73)
at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:118)
at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda12.call(Unknown Source:4)
at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)
at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15868)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:644)
at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Embedded info did not provide YouTube player js url
at org.schabi.newpipe.extractor.services.youtube.YoutubeJavaScriptExtractor.extractJavaScriptUrl(YoutubeJavaScriptExtractor.java:116)
at org.schabi.newpipe.extractor.services.youtube.YoutubeJavaScriptExtractor.extractJavaScriptCode(YoutubeJavaScriptExtractor.java:46)
at org.schabi.newpipe.extractor.services.youtube.YoutubeJavaScriptExtractor.extractJavaScriptCode(YoutubeJavaScriptExtractor.java:65)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.storePlayerJs(YoutubeStreamExtractor.java:1102)
... 31 more
┬─── │ GC Root: System class │ ├─ com.mediatek.boostfwk.identify.scroll.ScrollDispatcher class │ Leaking: NO (a class is never leaking) │ ↓ static ScrollDispatcher.sScrollScenario │ ~~~~~~~~~~~~~~~ ├─ com.mediatek.boostfwk.identify.scroll.ScrollIdentify instance │ Leaking: UNKNOWN │ Retaining 255033 bytes in 4527 objects │ mContext instance of org.schabi.newpipe.error.ErrorActivity with │ mDestroyed = true │ ↓ ScrollIdentify.mContext │ ~~~~~~~~ ╰→ org.schabi.newpipe.error.ErrorActivity instance Leaking: YES (ObjectWatcher was watching this because org.schabi.newpipe. error.ErrorActivity received Activity#onDestroy() callback and Activity#mDestroyed is true) Retaining 254779 bytes in 4520 objects key = 1d122c38-b757-4e2b-8f6e-568f07a01230 watchDurationMillis = 10165 retainedDurationMillis = 155 mApplication instance of org.schabi.newpipe.DebugApp mBase instance of androidx.appcompat.view.ContextThemeWrapper, not wrapping known Android context
METADATA
Build.VERSION.SDK_INT: 31 Build.MANUFACTURER: OnePlus LeakCanary version: 2.5 App process name: org.schabi.newpipe.debug.release0240 Stats: LruCache[maxSize=3000,hits=1248,misses=154217,hitRate=0%] RandomAccess[bytes=7282077,reads=154217,travel=111375804850,range=45919168,size= 56720354] Analysis duration: 7212 ms Also got this heap dump from the crash
Uhm, that's a different issue and has nothing to do with thumbnails. Try to import an old database (i.e. where the feed has not been updated in a while), reload the feed and see if the new videos's thumbnails load correctly (the thumbnails of videos that were already in the feed before reloading won't change).
Yeah, seems to be working fine for the new videos