TeamNewPipe / NewPipe

A libre lightweight streaming front-end for Android.
https://newpipe.net
GNU General Public License v3.0
31.66k stars 3.07k forks source link

Release v0.26.0 (please TEST!) #10471

Closed TobiGr closed 11 months ago

TobiGr commented 1 year ago

Testing for regressions

Release APK (built and signed by @Stypox): NewPipe_v0.26.0_RC3_release.zip Debug APK (built by @Stypox): NewPipe_v0.26.0_RC3_debug.zip Please report only regressions (i.e. new issues) here, not issues that were already present in previous releases!

TODO

App changelog

## New - Access more content provided by creators which is grouped in different tabs (TeamNewPipe/NewPipeExtractor#1082 and #9182). The content of the channel tabs can vary by service: - YouTube: videos, live, playlists, about - 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 `ListInfoFragment`s 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 ## Localization - 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 - [README] Remove Bitcoin and Bountysource donation options #10491 ## 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 ## Development - Make "latest release" link more obvious to bug reporters #10331 - Simplify `MainActivity.tabSelected(MenuItem)` #10360 - Image minizier: 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

NewPipe Extractor changelog

### New - Add support for channel tabs and channel tags TeamNewPipe/NewPipeExtractor#1082 TeamNewPipe/NewPipeExtractor#1092 - [YouTube] Support more channel headers TeamNewPipe/NewPipeExtractor#1094 - [YouTube] Support Shorts UI in playlists TeamNewPipe/NewPipeExtractor#1093 - Multiple images support #889 TeamNewPipe/NewPipeExtractor#1113 - [YouTube] Add support for ultralow audio formats TeamNewPipe/NewPipeExtractor#1063 - Add `hasCreatorReply()` to `CommentsInfoItem` TeamNewPipe/NewPipeExtractor#1111 ### Improved - [YouTube] Improve and fix `YoutubeJavaScriptExtractor` TeamNewPipe/NewPipeExtractor#1087 TeamNewPipe/NewPipeExtractor#1091 - [YouTube] Refactor JavaScript usage and fix extraction of obfuscated signature deobfuscation function TeamNewPipe/NewPipeExtractor#1108 ### Fixed - [media.ccc.de] Only extract kiosk live stream rooms if they are streaming TeamNewPipe/NewPipeExtractor#1089 - [SoundCloud] Detect whether there are any more search results TeamNewPipe/NewPipeExtractor#1081 ### Development - Replace cryptographically secure random with regular random TeamNewPipe/NewPipeExtractor#1088 - Bump org.junit:junit-bom from 5.9.3 to 5.10.0 TeamNewPipe/NewPipeExtractor#1083 - Bump actions/checkout from 3 to 4 TeamNewPipe/NewPipeExtractor#1103 - [Bandcamp] Fix `StreamExtractorTest` TeamNewPipe/NewPipeExtractor#1105 - Use `Locale.forLanguageTag()` in tests TeamNewPipe/NewPipeExtractor#1107 - Update copyright notices to use correct GPLv3 format TeamNewPipe/NewPipeExtractor#1110
opusforlife2 commented 1 year ago

Does anyone else have a clearly noticeable stutter when swiping between channel tabs? Especially when swiping to Live, Playlists, and Channels. It's very consistent.

And strangely, the stutter is worse once everything is loaded. If swiping to any of these tabs for the first time, the stutter is far less noticeable. I suspect the thumbnails. The pause happens just before they show up or go away.

(It might be my old slow device or the debug channel causing this.)

SameenAhnaf commented 1 year ago

I can notice it too. But lowering thumbnail quality or completely disabling it doesn't reduce the amount of stutter.

SameenAhnaf commented 1 year ago

Accessing all types of videos, while thumbnail is disabled, causes a crash.

Exception

io.reactivex.rxjava3.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | io.reactivex.rxjava3.exceptions.CompositeException: 2 exceptions occurred. 
    at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:718)
    at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:715)
    at io.reactivex.rxjava3.internal.observers.ConsumerSingleObserver.onError(ConsumerSingleObserver.java:46)
    at io.reactivex.rxjava3.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:79)
    at io.reactivex.rxjava3.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:123)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:241)
    at android.os.Looper.loop(Looper.java:342)
    at android.app.ActivityThread.main(ActivityThread.java:8143)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:583)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: io.reactivex.rxjava3.exceptions.CompositeException: 2 exceptions occurred. 
    at io.reactivex.rxjava3.internal.operators.single.SingleOnErrorReturn$OnErrorReturn.onError(SingleOnErrorReturn.java:58)
    at io.reactivex.rxjava3.internal.operators.single.SingleMap$MapSingleObserver.onError(SingleMap.java:70)
    at io.reactivex.rxjava3.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:61)
    at io.reactivex.rxjava3.internal.operators.single.SingleDoOnError$DoOnError.onSuccess(SingleDoOnError.java:52)
    at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.onSuccess(SingleSubscribeOn.java:68)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle$ToSingleMaybeSubscriber.onSuccess(MaybeToSingle.java:83)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onNext(FlowableElementAtMaybe.java:80)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:136)
    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:16013)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
    at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    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:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
    at java.lang.Thread.run(Thread.java:1012)
Caused by: io.reactivex.rxjava3.exceptions.CompositeException$ExceptionOverview: Multiple exceptions (2)
|-- java.lang.NullPointerException: uriString
    at android.net.Uri$StringUri.<init>(Uri.java:507)
|-- java.lang.NullPointerException: uriString
    at android.net.Uri$StringUri.<init>(Uri.java:507)


n-buna404 commented 1 year ago

Just a small observation, I that if u turn on autorotate on device and use landscape mode swiping between the channel tabs do not have the noticeable stutter, it only happens in vertical mode kinda strange ( irrespective of thumbnail quality)

SameenAhnaf commented 1 year ago

Entering/exiting full screen consumes unexpectedly high amount of time. First app shownshown in the video is vanilla Newpipe version, the second one is debug version

https://github.com/TeamNewPipe/NewPipe/assets/79245641/aee14f25-e686-4986-a890-c4182567caf8

ChaosNicro commented 1 year ago

Here my report about the OOMs during the feed refresh. It happens consistently for me, at around 150-250 subs processed. If the feed is open during the OOM-crash, it does not produce a guru-screen, putting the app in the backround and watching the notification for the crash, then bringing the app back, does produce a guru-screen. I've put some of them below. A heap dump taken during the refresh finds no obvious leaking objects in LeakCanary. I take this to mean that some component allocates memory incrementally per sub processed, that would be GCed if the refresh managed to finish. I can provide more info, if someone can instruct me on what's needed. Disabling all "fetch tabs" in settings except for "videos", does not change this.

Exceptions ## Exception * __User Action:__ ui error * __Request:__ ACRA report * __Content Country:__ DE * __Content Language:__ de-DE * __App Language:__ de_DE * __Service:__ none * __Version:__ 0.26.0 * __OS:__ Linux Android 12 - 32
Crash log

``` java.lang.OutOfMemoryError: Failed to allocate a 48 byte allocation with 1528560 free bytes and 1492KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC. at java.lang.AbstractStringBuilder.(AbstractStringBuilder.java:68) at java.lang.StringBuilder.(StringBuilder.java:90) at java.lang.Throwable.printStackTrace(Throwable.java:670) at java.lang.Throwable.printStackTrace(Throwable.java:735) at android.util.Log.printlns(Log.java:457) at android.util.Log.e(Log.java:262) at org.schabi.newpipe.App$1.accept(App.java:172) at org.schabi.newpipe.App$1.accept(App.java:135) at io.reactivex.rxjava3.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:378) at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:68) at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:920) ```


## Exception * __User Action:__ ui error * __Request:__ ACRA report * __Content Country:__ DE * __Content Language:__ de-DE * __App Language:__ de_DE * __Service:__ none * __Version:__ 0.26.0 * __OS:__ Linux Android 12 - 32
Crash log

``` java.lang.OutOfMemoryError: Failed to allocate a 32 byte allocation with 886456 free bytes and 865KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC. at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.addConditionWaiter(AbstractQueuedSynchronizer.java:1882) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2187) at okio.AsyncTimeout$Companion.awaitTimeout$okio(AsyncTimeout.kt:320) at okio.AsyncTimeout$Watchdog.run(AsyncTimeout.kt:186) ```


## Exception * __User Action:__ ui error * __Request:__ ACRA report * __Content Country:__ DE * __Content Language:__ de-DE * __App Language:__ de_DE * __Service:__ none * __Version:__ 0.26.0 * __OS:__ Linux Android 12 - 32
Crash log

``` java.lang.OutOfMemoryError: Failed to allocate a 16 byte allocation with 544576 free bytes and 531KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC. at android.os.ThreadLocalWorkSource.setUid(ThreadLocalWorkSource.java:68) at android.os.Looper.loopOnce(Looper.java:199) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) ```


## Exception * __User Action:__ ui error * __Request:__ ACRA report * __Content Country:__ DE * __Content Language:__ de-DE * __App Language:__ de_DE * __Service:__ none * __Version:__ 0.26.0 * __OS:__ Linux Android 12 - 32
Crash log

``` java.lang.OutOfMemoryError: Failed to allocate a 8208 byte allocation with 31608 free bytes and 30KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC. at okio.Segment.(Segment.kt:62) at okio.SegmentPool.take(SegmentPool.kt:90) at okio.Buffer.writableSegment$okio(Buffer.kt:1485) at okio.InputStreamSource.read(JvmOkio.kt:91) at okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:128) at okio.RealBufferedSource.read(RealBufferedSource.kt:192) at okhttp3.internal.http2.Http2Stream$FramingSource.receive$okhttp(Http2Stream.kt:445) at okhttp3.internal.http2.Http2Stream.receiveData(Http2Stream.kt:276) at okhttp3.internal.http2.Http2Connection$ReaderRunnable.data(Http2Connection.kt:650) at okhttp3.internal.http2.Http2Reader.readData(Http2Reader.kt:180) at okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.kt:119) at okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.kt:618) at okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.kt:609) at okhttp3.internal.concurrent.TaskQueue$execute$1.runOnce(TaskQueue.kt:98) at okhttp3.internal.concurrent.TaskRunner.runTask(TaskRunner.kt:116) at okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:42) at okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:65) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:920) ```


ghazzor commented 1 year ago

{"user_action":"play stream","request":"Player error[type=ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT] occurred while playing https://www.youtube.com/watch?v=UxznzzWPhyI","content_language":"en-IN","content_country":"IN","app_language":"en_IN","service":"YouTube","package":"org.schabi.newpipe.debug.release0260","version":"0.26.0","os":"Linux Android 12 - 31","time":"2023-10-10 06:14","exceptions":["com.google.android.exoplayer2.ExoPlaybackException: Source error\n\tat com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:644)\n\tat com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:616)\n\tat android.os.Handler.dispatchMessage(Handler.java:102)\n\tat android.os.Looper.loopOnce(Looper.java:226)\n\tat android.os.Looper.loop(Looper.java:313)\n\tat android.os.HandlerThread.run(HandlerThread.java:67)\nCaused by: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.SocketTimeoutException: failed to connect to rr1---sn-ci5gup-cvhk.googlevideo.com/182.79.138.204 (port 443) from /192.168.1.7 (port 33930) after 8000ms\n\tat org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:389)\n\tat com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:263)\n\tat com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:52)\n\tat com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:796)\n\tat com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:609)\n\tat com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)\n\tat com.google.android.exoplayer2.source.chunk.ContainerMediaChunk.load(ContainerMediaChunk.java:124)\n\tat com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)\n\tat java.lang.Thread.run(Thread.java:1012)\nCaused by: java.net.SocketTimeoutException: failed to connect to rr1---sn-ci5gup-cvhk.googlevideo.com/182.79.138.204 (port 443) from /192.168.1.7 (port 33930) after 8000ms\n\tat libcore.io.IoBridge.connectErrno(IoBridge.java:235)\n\tat libcore.io.IoBridge.connect(IoBridge.java:179)\n\tat java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)\n\tat java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)\n\tat java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)\n\tat java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)\n\tat java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)\n\tat java.net.Socket.connect(Socket.java:646)\n\tat com.android.okhttp.internal.Platform.connectSocket(Platform.java:182)\n\tat com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:145)\n\tat com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)\n\tat com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)\n\tat com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)\n\tat com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)\n\tat com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)\n\tat com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)\n\tat com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)\n\tat com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)\n\tat com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90)\n\tat com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)\n\tat org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.makeConnection(YoutubeHttpDataSource.java:704)\n\tat org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.makeConnection(YoutubeHttpDataSource.java:548)\n\tat org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:383)\n\t... 10 more\n"],"user_comment":""}

android 12 one ui 4 samsung falaxy m21 newpipe 26.0

ChaosNicro commented 1 year ago

From my testing, both the subscriptions- and the Whats-new-view do not contain shorts unless the "dedicated feed"/fast-mode is enabled. This matches pre-0.26.0 behaviour. My understanding was, that channel-tabs would allow this to work without needing fast-mode, so I'm mentioning it here.

opusforlife2 commented 1 year ago

@ChaosNicro There's a new setting: Fetch channel tabs. Have you opened it?

ChaosNicro commented 1 year ago

Thanks for replying. All boxes are ticked and live-content does show up as intended, just shorts are missing. They do show up when viewing a channel-profiles "shorts"-tab, but aren't integrated into feeds.

Screenshot_20231019-193321_NewPipe release-0 26 0
ACR-Jeff commented 1 year ago

Mine is the opposite, Showing "shorts" all the time in subscriptions/whats new tabs. Even when unchecked as well as when Dedicated feed is enabled/disabled

ChaosNicro commented 1 year ago

Mine is the opposite, Showing "shorts" all the time in subscriptions/whats new tabs. Even when unchecked as well as when Dedicated feed is enabled/disabled

@ACR-Jeff Mind that unchecking the setting doesn't remove shorts from the database/feeds, it just prevents Newpipe from fetching new ones. I think that's by design.

ACR-Jeff commented 1 year ago

I have "Start main player in fullscreen" enabled, If I play a video I have to manually set it to full screen, Play it through to the end, The video ends back to the description in mini player view automatically, I then exit out to play another video, When selecting another video it goes to the description of the video and shortly after automatically is set to Full screen as I expect it should, Yet part way through the video it will crash the UI completely.

ACR-Jeff commented 1 year ago

After I posted the above issue I decided to flip the "Start main player in fullscreen" off and on again and restart the system, I haven't experienced the UI crash any further.

ShellCadium commented 1 year ago

10380 has also been fixed with this release. @opusforlife2, I can also feel heavy stutters while shifting through the channel tabs. Tested with both the debug apk and the nightly release as well.

NewNewPipe commented 1 year ago

The LIVE TAB of this channel does not show anything.

https://www.youtube.com/channel/UCbS8vsbx1MSl1aGrja2-4kg

Despite the video content.

JPluess commented 1 year ago

Hey mostly fine but i did get an error...

Exception

android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{d0eaa3d u0 org.schabi.newpipe.debug.release0260/org.schabi.newpipe.player.PlayerService}
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2188)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8167)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)


DI555 commented 1 year ago

i hope it will be an optoin to choose channel tabs language like: "settings -> content -> channel tabs language" i saw some devs played with it in last NP code, but if you have differ app and content languages, and also country of content is different, this choosing would be the great!

JPluess commented 1 year ago

Exception

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:103)
    at android.os.Looper.loop(Looper.java:237)
    at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 503
    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:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:919)


I dont understand the error message. My internet is fast enough but original youtube is loading alot and playing just a few seconds. If that is the case, why would NP make an exception error. I just post it anyway.

vehosah commented 1 year ago

Unfortunately the buffering problem continues

arrowcrown commented 1 year ago

When a channel page is added as a tab to the home screen, the app crashes when I try to open a video from that tab.

ChaosNicro commented 1 year ago

When a channel page is added as a tab to the home screen, the app crashes when I try to open a video from that tab.

Exception

java.lang.IllegalArgumentException: No view found for id 0x7f0a0198 (org.schabi.newpipe.debug.release0260:id/fragment_player_holder) for fragment VideoDetailFragment{7c6aae7} (897e85aa-6161-4820-8455-c6ca1213921b id=0x7f0a0198)
    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:513)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1758)
    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
    at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
    at android.os.Handler.handleCallback(Handler.java:938)
    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:7870)
    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:1003)


jcperil commented 1 year ago

Loading time is at least 3500 ms.

https://github.com/TeamNewPipe/NewPipe/assets/89805719/019f5f79-b939-4af6-af45-03182038a1cd

I can also feel a small but (relatively) noticeable delay in displaying the context menu when you want to enqueue videos. Is this intended?

opusforlife2 commented 1 year ago

Loading time is at least 3500 ms.

Don't bother testing delays in debug APKs. This is only worth checking on release APKs.

ZybanX commented 1 year ago

After test this app, there a problem encountered. When you press and hold a video (on trending tab) and select "Mark as watched" is not working because when selecting that, it should show a red bar on the video thumbnail unless you restart the app

opusforlife2 commented 1 year ago

This problem isn't encountered on 0.25.2, you're saying?

ZybanX commented 1 year ago

This problem isn't encountered on 0.25.2, you're saying?

No im not talking about 25v (stable version) but I'm talking about the 26v (testing verson)

ZybanX commented 1 year ago

Newpipe v26 freezes when subscribing to a YouTube channel

ChaosNicro commented 1 year ago

Newpipe v26 freezes when subscribing to a YouTube channel

Can you be more specific? I subscribed to multiple channels during my time with the RC and didn't have any issues.

ZybanX commented 1 year ago

Newpipe v26 freezes when subscribing to a YouTube channel

Can you be more specific? I subscribed to multiple channels during my time with the RC and didn't have any issues.

I made a mistake, it was actually my device slowing down when I was testing it

MD77MD commented 11 months ago

when importing datebase from the original newapp... newpipe .26 starts to misbehave... it would crash each time i would switch to another app or go home ... wheather a video was opened or not.

SwallowYourDreams commented 11 months ago

Opening any file from the downloads section crashes the app for me. In spite of what the error report says, I have granted Newpipe all permissions, including access to storage.

Exception

java.lang.SecurityException: UID 10198 does not have permission to content://com.android.externalstorage.documents/document/primary%3ANewpipe%2FSecret%20of%20Mana%20Music%20%26%20Ambience%20%20Serene%20forest%20setting.m4a [user 0] [prefix]; you could obtain access using ACTION_OPEN_DOCUMENT or related APIs
    at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
    at android.os.Parcel.createException(Parcel.java:3041)
    at android.os.Parcel.readException(Parcel.java:3024)
    at android.os.Parcel.readException(Parcel.java:2966)
    at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:2126)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1873)
    at android.app.Activity.startActivityForResult(Activity.java:5589)
    at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:712)
    at android.app.Activity.startActivityForResult(Activity.java:5547)
    at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:693)
    at android.app.Activity.startActivity(Activity.java:6045)
    at android.app.Activity.startActivity(Activity.java:6012)
    at org.schabi.newpipe.util.external_communication.ShareUtils.tryOpenIntentInApp(ShareUtils.java:145)
    at org.schabi.newpipe.util.external_communication.ShareUtils.openIntentInApp(ShareUtils.java:163)
    at us.shandian.giga.ui.adapter.MissionAdapter.viewWithFileProvider(MissionAdapter.java:347)
    at us.shandian.giga.ui.adapter.MissionAdapter.-$$Nest$mviewWithFileProvider(Unknown Source:0)
    at us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem.lambda$new$1(MissionAdapter.java:882)
    at us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem.$r8$lambda$CmCEgQjJdZQU71R9MLF_QHU7UWI(Unknown Source:0)
    at us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem$$ExternalSyntheticLambda1.onClick(Unknown Source:2)
    at android.view.View.performClick(View.java:7659)
    at android.view.View.performClickInternal(View.java:7636)
    at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
    at android.view.View$PerformClick.run(View.java:30156)
    at android.os.Handler.handleCallback(Handler.java:958)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:205)
    at android.os.Looper.loop(Looper.java:294)
    at android.app.ActivityThread.main(ActivityThread.java:8177)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by: android.os.RemoteException: Remote stack trace:
    at com.android.server.uri.UriGrantsManagerService.checkGrantUriPermissionUnlocked(UriGrantsManagerService.java:1251)
    at com.android.server.uri.UriGrantsManagerService.checkGrantUriPermissionFromIntentUnlocked(UriGrantsManagerService.java:626)
    at com.android.server.uri.UriGrantsManagerService.-$$Nest$mcheckGrantUriPermissionFromIntentUnlocked(UriGrantsManagerService.java:0)
    at com.android.server.uri.UriGrantsManagerService$LocalService.checkGrantUriPermissionFromIntent(UriGrantsManagerService.java:1441)
    at com.android.server.wm.ActivityStarter$Request.resolveActivity(ActivityStarter.java:605)


Stypox commented 11 months ago

I updated the release candidate APKs with the following changes:

I used TeamNewPipe/NewPipeExtractor#1127 as the extractor base, which fixes a few errors in the app (e.g. the like count one), and is going to be merged in a little.

MD77MD commented 11 months ago

when importing datebase from the original newapp... newpipe .26 starts to misbehave... it would crash each time i would switch to another app or go home ... wheather a video was opened or not.

this bug is still here

Stypox commented 11 months ago

@arrowcrown @ChaosNicro here is a PR that fixes clicking on videos in channels in the main page. Could you test it and check if it works now? https://github.com/TeamNewPipe/NewPipe/pull/10645

@MD77MD could you provide a bit more information?

ShellCadium commented 11 months ago

@arrowcrown @ChaosNicro here is a PR that fixes clicking on videos in channels in the main page. Could you test it and check if it works now? #10645

I can confirm that it has indeed been fixed, tested with 4 channel pages on the home screen.

arrowcrown commented 11 months ago

@arrowcrown @ChaosNicro here is a PR that fixes clicking on videos in channels in the main page. Could you test it and check if it works now? https://github.com/TeamNewPipe/NewPipe/pull/10645

I tried both live and non-live video streams. It works perfectly! Thank you.

ShellCadium commented 11 months ago

Adding more than 3 channel pages crashes Newpipe, when trying to access a sub menu in the settings page. It doesn't matter if the 4th one was generated as a result of importing a database or created manually, the crash will occur. Creating up to 3 channel pages on the other hand, doesn't result in a crash. A test on another device shows a different result, the app on that can only handle a single channel page, adding more will result in a crash, when trying out the scenario mentioned above. For the crash to actually occur, the channel pages in question should have loaded the content fully, in all of the tabs.

Exception (Device 1):

java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1306344 bytes
    at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:184)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7945)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:603)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: android.os.TransactionTooLargeException: data parcel size 1306344 bytes
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:545)
    at android.app.IActivityTaskManager$Stub$Proxy.activityStopped(IActivityTaskManager.java:4408)
    at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:146)
    ... 7 more


Exception (Device 2):

java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 671588 bytes
    at android.app.ActivityClient.activityStopped(ActivityClient.java:86)
    at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:143)
    at android.os.Handler.handleCallback(Handler.java:938)
    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:7880)
    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:1009)
Caused by: android.os.TransactionTooLargeException: data parcel size 671588 bytes
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:571)
    at android.app.IActivityClientController$Stub$Proxy.activityStopped(IActivityClientController.java:1297)
    at android.app.ActivityClient.activityStopped(ActivityClient.java:83)
    ... 9 more


opusforlife2 commented 11 months ago

This problem seems systemic. Channel tabs all seem to want to load together, instead of serially.

sigh8 commented 11 months ago

App crashes if I try to update feed during video playback. Was able to recreate this 4 times. If I play a video and then refresh the feed, video will start to lag after 30 seconds and then crash.

Exception

java.lang.OutOfMemoryError: Failed to allocate a 104 byte allocation with 410752 free bytes and 401KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
    at android.database.CursorWindow.nativeGetString(Native Method)
    at android.database.CursorWindow.getString(CursorWindow.java:462)
    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:54)
    at org.schabi.newpipe.database.history.dao.StreamHistoryDAO_Impl$9.call(StreamHistoryDAO_Impl.java:658)
    at org.schabi.newpipe.database.history.dao.StreamHistoryDAO_Impl$9.call(StreamHistoryDAO_Impl.java:604)
    at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromCallable.subscribeActual(MaybeFromCallable.java:47)
    at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMapMaybe$FlatMapMaybeSubscriber.onNext(FlowableFlatMapMaybe.java:131)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:403)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:178)
    at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:324)
    at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.runEager(ExecutorScheduler.java:289)
    at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:250)
    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)


DEGENMUTANT commented 11 months ago

Thank you NewPipeTeam for all your hardwork and dedication that you guys bring to the masses with your great development skills and ect , This new version 0.26 is great , and im surely greatful for more intuitive features and updates in the future. KEEP UP THE AWESOME WORK.... "If anyone tells you they have issues they are lying" 🤣🤣🤣 noobs.

ChaosNicro commented 11 months ago

This seems to be a symptom of the issue I reported above (see the list at the top). The RC seems to progressively consume memory as it refreshes the feed. @sigh8 Does switching to fast-mode and then refreshing the feed also crash? That works in my case to mitigate the issue.

opusforlife2 commented 11 months ago

Please try to create memory-related crashes in as many different ways as you can. But make sure they're regressions, please.

sigh8 commented 11 months ago

This seems to be a symptom of the issue I reported above (see the list at the top). The RC seems to progressively consume memory as it refreshes the feed. @sigh8 Does switching to fast-mode and then refreshing the feed also crash? That works in my case to mitigate the issue.

Switching to fast-mode indeed solves the issue. I thought it was an issue with video playback as newpipe wouldn't crash if I only refreshed the feed. Upon further inspection I have noticed that it previously did not crash because it used to update only 220 channels out of 300. With video playback, it starts to lag after 223 subscriptions and now that it has started to update all 300 channels at once, it will crash after updating 243 subscriptions without media playing.

ShellCadium commented 11 months ago

This problem seems systemic. Channel tabs all seem to want to load together, instead of serially.

So, it is a regression right? although, I still don't know why the crash varies by device. Does that have something to do with the API version? I tested this using the second release candidate, the non-debug version.

opusforlife2 commented 11 months ago

So, it is a regression right?

The only way to know for sure is to compare the behaviour with the current release. When the exact same steps give different outcomes, that's a clue.

MD77MD commented 11 months ago

@arrowcrown @ChaosNicro here is a PR that fixes clicking on videos in channels in the main page. Could you test it and check if it works now? #10645

@MD77MD could you provide a bit more information?

  • If I understand correctly, once you imported the database, every time you open the app and right after doing that (i.e. without performing any action in NewPipe) you switch to another app, NewPipe crashes. Is that correct?
  • Were you able to collect a crash report?
  • Does the same behavior arise even if you only import data and not settings?
  • If the answer to the previous question was "no", then the problem might depend on a specific setting. Could you share the settings export (just extract newpipe.settings from the .zip so that you don't give away any personal data)?
  • Do you have channels in your home page?

If i import data only without the settings, then it works fine.... will do more tests and try to get a crash report.

didn't get your last question but i do have 3 tabs of youtube channels if thats what you mean.

ShellCadium commented 11 months ago

So, it is a regression right?

The only way to know for sure is to compare the behaviour with the current release. When the exact same steps give different outcomes, that's a clue.

In the current stable build (version 0.25.2), I can easily add and open 10+ channel pages without crash of any sort. Pretty safe to classify this as a regression.

opusforlife2 commented 11 months ago

laggy channel tabs

@Stypox You've linked my comment to this bullet point. This was me testing the first RC, and a debug build at that. With your RC2 release build, there is no lag. Someone else can test this to confirm, but I think this TODO can be removed.

Edit: Okay there is still a minor hiccup with the older, slower device, though it is lesser than the debug build.

Stypox commented 11 months ago

@sigh8 @ChaosNicro could you test this APK and tell me if it fixes the out of memory crashes when loading feed? app-release.zip