Closed Stypox closed 7 months ago
player notification buttons don't work. android 12.
I display comments under the video under whichn there are 26,000 NP displayed only about 1,000 of them.
org.schabi.newpipe.extractor.stream.Description.getType attemps to do something on a null value which causes the app to crash. Happens unreliably when either focusing the app or attempting to play any YouTube video.
player notification buttons don't work. android 12.
Android 13 too, though it's specifically the two custom buttons that don't work. The 3 default ones do.
org.schabi.newpipe.extractor.stream.Description.getType attemps to do something on a null value which causes the app to crash. Happens unreliably when either focusing the app or attempting to play any YouTube video.
That's this execption, I guess: caught on a nightly though. Not sure if it is one with the latest extractor commit.
``` java.lang.NullPointerException: Attempt to invoke virtual method 'int org.schabi.newpipe.extractor.stream.Description.getType()' on a null object reference at org.schabi.newpipe.util.text.TextLinkifier.fromDescription(TextLinkifier.java:70) at org.schabi.newpipe.util.text.TextEllipsizer.linkifyContentView(TextEllipsizer.java:166) at org.schabi.newpipe.util.text.TextEllipsizer.setContent(TextEllipsizer.java:62) at org.schabi.newpipe.info_list.holder.CommentInfoItemHolder.updateFromItem(CommentInfoItemHolder.java:127) at org.schabi.newpipe.info_list.InfoListAdapter.onBindViewHolder(InfoListAdapter.java:337) at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7747) at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7847) at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6646) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6917) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6757) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6753) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1662) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4645) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4348) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at androidx.viewpager.widget.ViewPager.onLayout(ViewPager.java:1775) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:149) at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43) at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2381) at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at androidx.coordinatorlayout.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1213) at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:899) at com.google.android.material.bottomsheet.BottomSheetBehavior.onLayoutChild(BottomSheetBehavior.java:576) at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at androidx.drawerlayout.widget.DrawerLayout.onLayout(DrawerLayout.java:1263) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729) at android.widget.LinearLayout.onLayout(LinearLayout.java:1638) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729) at android.widget.LinearLayout.onLayout(LinearLayout.java:1638) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at com.android.internal.policy.DecorView.onLayout(DecorView.java:799) at android.view.View.layout(View.java:23798) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4118) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3459) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2371) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9297) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239) at android.view.Choreographer.doCallbacks(Choreographer.java:899) at android.view.Choreographer.doFrame(Choreographer.java:832) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7924) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) ```
It's fixed on the extractor dev, but again the comments fix branch which the RC was based on is some commits behind dev
background play needs to be pressed 2x to work, this has been the case since 2.6.1 and before
background play needs to be pressed 2x to work, this has been the case since 2.6.1 and before
@prasetyodedy Then it is not a regression and doesn't belong in this issue.
I can only view one page of comments now. This was not the case in 0.26.1
If that's for YouTube, that's a mistake from my side that I fixed in the extractor code. See https://github.com/TeamNewPipe/NewPipeExtractor/pull/1163#issuecomment-2038027408.
@zombiestitches Not a regression. It's a known bug.
Raising awareness for https://github.com/TeamNewPipe/NewPipe/issues/10746, please take a look at it for this release if possible.
I know it's possible to add NewPipe's own repo as a workaround, but that's some additional friction for less tech savvy users and it's just more convenient if it's available in the default repo.
As of writing, the latest version available on f-droid's default repo is 0.25.2
.
@Stypox it's not possible to watch anything on recent releases at all for a couple of days. It always crashes. Nightly 97 is the last one working I think. 97 to 111 are all crashing at all times.
@fenopa Please do not ping specific members for such cases.
If you get an error report generated by the app, please try to search it in the existing issues (using partially or completely the first line of the error stacktrace is a good idea and the best chance to get results) to see if it is not already known. If not, please post the error report in this issue.
RC2 landed:
Release APK (built and signed by @Stypox): NewPipe_v0.27.0_RC2_release.zip
It looks like more comments are already loaded in RC2, whether all of them I don't know yet.
Thanks for launching the functionality in the comments section about displaying replies to comments.
I am still very much missing the record of comments to the file. For now, I am assisting in other ways.
org.schabi.newpipe.local.feed.service.FeedLoadService$RequestException: 0:https://www.youtube.com/channel/UC0vBXGSyV14uvJ4hECDOl0Q
at org.schabi.newpipe.local.feed.service.FeedLoadManager.loadStreams(FeedLoadManager.kt:229)
at org.schabi.newpipe.local.feed.service.FeedLoadManager.access$loadStreams(FeedLoadManager.kt:33)
at org.schabi.newpipe.local.feed.service.FeedLoadManager$startLoading$7.apply(FeedLoadManager.kt:113)
at org.schabi.newpipe.local.feed.service.FeedLoadManager$startLoading$7.apply(FeedLoadManager.kt:112)
at io.reactivex.rxjava3.internal.operators.parallel.ParallelMap$ParallelMapSubscriber.onNext(ParallelMap.java:116)
at io.reactivex.rxjava3.internal.operators.parallel.ParallelFilter$ParallelFilterSubscriber.tryOnNext(ParallelFilter.java:132)
at io.reactivex.rxjava3.internal.operators.parallel.ParallelRunOn$RunOnConditionalSubscriber.run(ParallelRunOn.java:399)
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:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: java.lang.NullPointerException
at org.schabi.newpipe.local.feed.service.FeedUpdateInfo.<init>(FeedUpdateInfo.kt:39)
at org.schabi.newpipe.local.feed.service.FeedLoadManager.loadStreams(FeedLoadManager.kt:220)
... 13 more
@Stypox Notif buttons work now! Still, it would be good to confirm with someone using A12-.
Exception: User Action: requested feed
@JohhanSam that's not a regression (i.e. it was there even in 0.26.1, see #10863). Anyway, could you test https://github.com/TeamNewPipe/NewPipe/pull/10957?
it's not possible to watch anything on recent releases at all for a couple of days. It always crashes. Nightly 97 is the last one working I think. 97 to 111 are all crashing at all times.
@fenopa could you provide more information on the crash you are experiencing, and open an issue for it? Since nightly 97 was the same as release 0.26.0, this is also not a regression though.
player notification buttons don't work. android 12.
@NaN-Sz I can reproduce with RC1, but now I can't with RC2. Can you confirm that this is the case? I think Android Studio messed up the package name in BuildConfig
since I forgot to "Sync project with Gradle files" which caused intents to refer to the wrong package name, or something like that (can't be sure though)
Rotating your device outside of the app when the comment replies view was the last view shown makes the app crash. Here is a video which shows the problem:
https://github.com/TeamNewPipe/NewPipe/assets/74829229/e525b2b7-6860-47c1-9947-669d2d163973
Device: Google Pixel 7a running Android 14 QPR stock ROM
(The ErrorReportActivity
doesn't open, so I don't have a generated error report.)
I can reproduce with RC1, but now I can't with RC2. Can you confirm that this is the case?
Yes, buttons are working perfectly now.
Timestamps in comment replies are not clickable
https://www.youtube.com/watch?v=GKh2LdXNU3g
@armelolsens2496 2:10 incroyable ❤😭
It’s clickable in comment views, but if you click on replies it isn’t anymore.
I'm not sure how actual comment replies behave (i.e. replies to a comment, what i said is reply to video but in comment replies view), I couldn’t find one
im import my preferences/config, I passed all my configuration without any problem
Are these RC builds available via the NewPipe F-Droid repo?
Are these RC builds available via the NewPipe F-Droid repo?
No, as its a tester only build. you are welcome to try it out though. Dont know when it will be released but i hope soon.
So far no issues for me.
@B0pol your issue is actually already fixed after the latest merged changes in https://github.com/TeamNewPipe/NewPipeExtractor/pull/1163, we'll publish a new RC soon
Here is RC3 debug (unfortunately no dev is available to build the release version at the moment, so please test this one): NewPipe_v0.27.0_RC3_debug.zip
@Stypox I apologize for the reading skill issue from before. That aside, after using RC3 for ~1 hour I have encountered no bugs or crashes, however, the app has become much slower in some parts. Going to full screen (and out of it) now takes double if not triple the time.
@JohhanSam the slowdowns are normal because it's the debug version, don't worry
One question (altho technically a feature request but I feel like this place is better to ask), would it be possible to add a setting that would change the behavior of the timestamp (in comments)? I primarily would like to be able to switch the popup opening off and on.
@fenopa could you provide more information on the crash you are experiencing, and open an issue for it? Since nightly 97 was the same as release 0.26.0, this is also not a regression though.
@Stypox not having any crashes with the NewPipe_v0.27.0_RC2_release you posted on this thread. I was trying nightly releases here: https://github.com/TeamNewPipe/NewPipe-nightly/releases and all recent ones were crashing.
Android 13. v0.27.0 works well, thanks. Thanks for adding tree comments.
@fenopa could you provide more information on the crash you are experiencing, and open an issue for it? Since nightly 97 was the same as release 0.26.0, this is also not a regression though.
@Stypox not having any crashes with the NewPipe_v0.27.0_RC2_release you posted on this thread. I was trying nightly releases here: https://github.com/TeamNewPipe/NewPipe-nightly/releases and all recent ones were crashing.
@fenopa let me explain, NewPipe-nightly releases are generated through GitHub actions, which is automated. It compiles the most recent commit from the dev branch. If you look closely, you'll notice that all recent bug fixes are in a separate branch called release-0.27.0. Once this branch marge into dev you can use NewPipe-nightly again.
If possible, please update NewPipe-nightly build.
v0.27.0 is missing the search filter options I thought was coming in the next versions of Newpipe.
My comment is probably useless but i somehow got this error code and i have no idea how to reproduce it and i didn't even notice it till later since i didn't notice anything. I will edit this comment if i come across it again with (hopefully) steps to reproduce. RC2 release
com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(298, null, null, video/avc, avc1.4D4020, 2693744, null, [1280, 720, 60.0], [-1, -1]), format_supported=YES
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:578)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:203)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: com.google.android.exoplayer2.video.MediaCodecVideoDecoderException: Decoder failed: OMX.MTK.VIDEO.DECODER.AVC
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1639)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:803)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1007)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502)
... 3 more
Caused by: java.lang.IllegalStateException
at android.media.MediaCodec.native_queueInputBuffer(Native Method)
at android.media.MediaCodec.queueInputBuffer(MediaCodec.java:2293)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.queueInputBuffer(SynchronousMediaCodecAdapter.java:143)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:1364)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:784)
... 5 more
Though could a "scrool back to top" button be added for the commets The uodate is look good. def going to sup to libra pay
Android 11, Lineageos 18.1, Lenovo P2 Newpipe 0.27.0 RC3 works well including tree comments. Thank you!
Android 10, /e/ OS 18.1, Xiaomi Redmi Note 8T Work flawlessly! Nice job 👍
Android 14, LineageOS 21, Pixel 4a 5G (bramble) Have used 0.27.0 RC3 for about a week now. No noticeable regressions or serious issues. Comments load properly, as well as comment trees. Content loading is also very consistent; much better than in the current stable release. Thanks for the good work y'all do. Looking forward to the official release :)
New RC, includes small YouTube bugfixes from https://github.com/TeamNewPipe/NewPipeExtractor/pull/1168
Release APK (built and signed by @Stypox): NewPipe_v0.27.0_RC4_release.zip Debug APK (built by our CI in https://github.com/TeamNewPipe/NewPipe/pull/10929): NewPipe_v0.27.0_RC4_debug.zip
Is there an expected release date? I see rc in the name which I think means it's close (correct me if I'm wrong)
I'm probably late to the party, but I'm pulling down the latest release and testing. I'll only report new defects (regression, not defects present in the current release -- 0.26.1) and ensure only defects that have not already been reported are documented.
Is there an expected release date? I see rc in the name which I think means it's close (correct me if I'm wrong)
The more we test, the faster will get released! Tell your firends 🎉 RC stands for "release candidate"
0.27.0_RC crashes trying to download with SAF turned off in settings. When SAF is on, everything is fine, but the download path in settings looks weird, like content://com.android.externalstorage.documents/tree/primary:Download. Instead of /storage/emulated/0/Download, when SAF is off, but crashes.
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
at org.schabi.newpipe.streams.io.StoredDirectoryHelper.getFreeMemory(StoredDirectoryHelper.java:186)
at org.schabi.newpipe.download.DownloadDialog.prepareSelectedDownload(DownloadDialog.java:864)
at org.schabi.newpipe.download.DownloadDialog.lambda$initToolbar$1(DownloadDialog.java:353)
at org.schabi.newpipe.download.DownloadDialog.$r8$lambda$eftfC3lumhpNMhhwp_4dKbyeS0U(DownloadDialog.java:0)
at org.schabi.newpipe.download.DownloadDialog$$ExternalSyntheticLambda13.onMenuItemClick(R8$$SyntheticClass:0)
at androidx.appcompat.widget.Toolbar$1.onMenuItemClick(Toolbar.java:225)
at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:781)
at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:836)
at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:159)
at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:987)
at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:977)
at androidx.appcompat.widget.ActionMenuView.invokeItem(ActionMenuView.java:625)
at androidx.appcompat.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:156)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Fixes comments on videos not loading and videos suddenly not working since a short bit ago or so on my end.
Have tested on a few different FireStick 4k and 4k Max units and have had no issues at all, great work.
Using RC3, I get this error if I have a video partially played and turn off the phone/background the app. If I go back later to play it again, I get an error until I close out of the video and reopen it.
com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:644)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:616)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 403
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:422)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:263)
at com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:52)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:796)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:609)
at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
at com.google.android.exoplayer2.source.chunk.ContainerMediaChunk.load(ContainerMediaChunk.java:124)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
@crapnicki Are you sure it doesn't happen on 0.26.1?
@opusforlife2 It totally could have, but I was getting so many "Something went wrong" errors, that it's hard to remember.
Testing for regressions
Debug APK (built by our CI in https://github.com/TeamNewPipe/NewPipe/pull/10929): NewPipe_v0.27.0_RC4_debug.zip Release APK (built and signed by @Stypox): NewPipe_v0.27.0_RC4_release.zip
Please report only regressions (i.e. new issues) here, not issues that were already present in previous releases
TODO
https://github.com/TeamNewPipe/NewPipeExtractor/pull/1170for 0.27.1NewPipeExtractor version
This version of NewPipe will ship with NewPipeExtractor version 0.24.0.
App changelog
### 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 - Allow ordering bookmarked playlists #8221 ### Improved - [Android 13+] Restore support of custom notification actions #10712 :warning: 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 [Android N / API 24+] #10505 #10896 - 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 ### 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 action 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
Extractor changelog
⚠️ **This version contains breaking changes** (thus the bump to 0.24): Due to the removal of the usage of InnerTube API keys, some methods in `YoutubeParsingHelper` which can be used by clients have been changed in TeamNewPipe/NewPipeExtractor#1168: - `areHardcodedClientVersionAndKeyValid` was renamed to `isHardcodedClientVersionValid` - `getKey` was removed, since there is no InnerTube API key anymore - `resetClientVersionAndKey` was renamed to `resetClientVersion` - `isHardcodedYoutubeMusicKeyValid` was renamed to `isHardcodedYoutubeMusicClientVersionValid` - `getYoutubeMusicKey` was renamed to `getYoutubeMusicClientVersion` and now just returns the version instead of (key, name, version), since there is no key anymore and the name is fixed ("67") and therefore hardcoded - other related methods which are not really meant to be used outside of the extractor ### New - [YouTube] Implement emergency meta info TeamNewPipe/NewPipeExtractor#1135 - [YouTube] Add Releases channel tab as an extractor albums channel tab TeamNewPipe/NewPipeExtractor#1147 - [PeerTube] Add support for v6 features (frames and segments) TeamNewPipe/NewPipeExtractor#1142 ### Improved - [YouTube] Detect new account termination messages for YouTube TeamNewPipe/NewPipeExtractor#1160 - Make `getCommentText` return `@Nonnull` values TeamNewPipe/NewPipeExtractor#1162 - [YouTube] Use accessibility data for social links in attributed descriptions when present TeamNewPipe/NewPipeExtractor#1163 ### Fixed - [PeerTube] Fix local kiosk TeamNewPipe/NewPipeExtractor#1144 - [PeerTube] Do not accept non-URLs TeamNewPipe/NewPipeExtractor#1143 - [MediaCCC] Allow obtaining channel tab link handler TeamNewPipe/NewPipeExtractor#1148 - [YouTube] Support new comments data TeamNewPipe/NewPipeExtractor#1163 - [YouTube] Update clients versions, restore access to some streams and more TeamNewPipe/NewPipeExtractor#1168 ### Development - Bump org.jsoup:jsoup from 1.16.2 to 1.17.2 TeamNewPipe/NewPipeExtractor#1145 - Bump com.github.spotbugs:spotbugs-annotations from 4.8.0 to 4.8.3 TeamNewPipe/NewPipeExtractor#1138 - Bump actions/setup-java from 3 to 4 TeamNewPipe/NewPipeExtractor#1132 - Bump org.junit:junit-bom from 5.10.0 to 5.10.2 TeamNewPipe/NewPipeExtractor#1156 - Bump actions/cache from 3 to 4 TeamNewPipe/NewPipeExtractor#1153 - Bump actions/upload-artifact from 3 to 4 TeamNewPipe/NewPipeExtractor#1139 - LocaleCompat.forLanguageTag: return Optional if parsing fails TeamNewPipe/NewPipeExtractor#1151