GithubHelp home page GithubHelp logo

infinityloop1308 / pipepipe Goto Github PK

View Code? Open in Web Editor NEW
1.5K 17.0 31.0 19.28 MB

A FLOSS Android app to let you browse YouTube, NicoNico and BiliBili freely. Better NewPipe.

License: GNU General Public License v3.0

Shell 100.00%
android bilibili mediaplayer niconico youtube newpipe

pipepipe's People

Contributors

infinityloop1308 avatar wh201906 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pipepipe's Issues

TODO: Enhanced stream discovery

Replace the current weak discovering mechanism to an enhanced stream discovery.

Some points:

  • Black list for user/title/stream
  • Local discovery based on AI stuff

[Bug][Need refactor] can not download BiliBili videos

Currently I can do nothing as the problem seems to be NewPipe's downloader doesn't support BiliBili's format, though I remember it worked before.
If you have related skills about video processing, please help me!

Logs:

Exception

  • User Action: download post-processing
  • Request: https://bilibili.com/BV1Sd4y1d7sL?p=1 [ {type=audio format=m4a bitrate=192000} ]
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: Bilibili
  • Version: 1.8.0
  • OS: Linux Android 11 - 30
Crash log

java.util.NoSuchElementException: expected trun found sbgp
	at org.schabi.newpipe.streams.Mp4DashReader.readBox(Mp4DashReader.java:282)
	at org.schabi.newpipe.streams.Mp4DashReader.parseTraf(Mp4DashReader.java:386)
	at org.schabi.newpipe.streams.Mp4DashReader.parseMoof(Mp4DashReader.java:351)
	at org.schabi.newpipe.streams.Mp4DashReader.getNextChunk(Mp4DashReader.java:197)
	at org.schabi.newpipe.streams.Mp4FromDashWriter.build(Mp4FromDashWriter.java:186)
	at us.shandian.giga.postprocessing.M4aNoDash.process(M4aNoDash.java:37)
	at us.shandian.giga.postprocessing.Postprocessing.run(Postprocessing.java:174)
	at us.shandian.giga.get.DownloadMission.doPostprocessing(DownloadMission.java:704)
	at us.shandian.giga.get.DownloadMission.$r8$lambda$J0GR1urTFneOp2O30GpOM3TNG0I(Unknown Source:0)
	at us.shandian.giga.get.DownloadMission$$ExternalSyntheticLambda1.run(Unknown Source:2)
	at java.lang.Thread.run(Thread.java:923)


[HELP NEEDED] Major planned/missing features

List:

  • Merge upstream#8837: We have already applied its previous version(i.e. the third UI) so that it is just a UI change and there is not any missing function. The problem is, he refactored his previous code, including a rebase and force push and now his branch is far away from us. Need to solve tons of conflicts. Check branch merging-search-client and meging-search-extractor to continue work on this. ⚠️Warning: head of that branch can not build without solving errors.
  • Merge upstream#9410: This pr provides full support of comment replies, while the current implement can only fetch 1 page. Conflicts has been solved, but the problem is, his pr is buggy. Replies after the 1st page will not load and loading indicator is always shown. Further investigation shows that is because onScroll is not called at all, which might because he is using a RecycleView inside another RecycleView. If you have knowledge about android UI, please help me fix this. Check branch merging-comment-replies.
  • #10 Check the issue for more details
  • #12 It seems we can not gain any benifit using a non-premium account, but most premium features are not supported yet.
  • #20
  • #50 This may need to be implemented with a new UI for Superchats.

App/UI crashed

I don't know why it happened
Appearance: Black
other settings default
Video
不买错亿!神作集体骨折价!【steam夏促】
https://m.bilibili.com/video/BV1va411W7yY?p=1
{"user_action":"ui error","request":"ACRA report","content_language":"en-US","content_country":"US","app_language":"en_US","service":"none","package":"org.schabi.newpipe","version":"0.23.0","os":"Linux Android 12 - 32","time":"2022-06-28 14:24","exceptions":["java.lang.RuntimeException: Canvas: trying to draw too large(228985130bytes) bitmap.\n\tat android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:266)\n\tat android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:94)\n\tat android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:549)\n\tat com.squareup.picasso.PicassoDrawable.draw(PicassoDrawable.java:109)\n\tat android.widget.ImageView.onDraw(ImageView.java:1442)\n\tat android.view.View.draw(View.java:22704)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21579)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1994)\n\tat android.view.View.draw(View.java:22707)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21579)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat androidx.recyclerview.widget.RecyclerView.drawChild(RecyclerView.java:5204)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.draw(View.java:22707)\n\tat androidx.recyclerview.widget.RecyclerView.draw(RecyclerView.java:4603)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21579)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.draw(View.java:22707)\n\tat androidx.viewpager.widget.ViewPager.draw(ViewPager.java:2426)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21579)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.draw(View.java:22707)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21579)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat androidx.fragment.app.FragmentContainerView.drawChild(FragmentContainerView.java:268)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat androidx.fragment.app.FragmentContainerView.dispatchDraw(FragmentContainerView.java:256)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat androidx.drawerlayout.widget.DrawerLayout.drawChild(DrawerLayout.java:1478)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21570)\n\tat android.view.View.draw(View.java:22435)\n\tat android.view.ViewGroup.drawChild(ViewGroup.java:4528)\n\tat android.view.ViewGroup.dispatchDraw(ViewGroup.java:4289)\n\tat android.view.View.draw(View.java:22707)\n\tat com.android.internal.policy.DecorView.draw(DecorView.java:819)\n\tat android.view.View.updateDisplayListIfDirty(View.java:21579)\n\tat android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:534)\n\tat android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:540)\n\tat android.view.ThreadedRenderer.draw(ThreadedRenderer.java:616)\n\tat android.view.ViewRootImpl.draw(ViewRootImpl.java:4525)\n\tat android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4245)\n\tat android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3374)\n\tat android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2179)\n\tat android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8787)\n\tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:1037)\n\tat android.view.Choreographer.doCallbacks(Choreographer.java:845)\n\tat android.view.Choreographer.doFrame(Choreographer.java:780)\n\tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)\n\tat android.os.Handler.handleCallback(Handler.java:938)\n\tat android.os.Handler.dispatchMessage(Handler.java:99)\n\tat android.os.Looper.loopOnce(Looper.java:201)\n\tat android.os.Looper.loop(Looper.java:288)\n\tat android.app.ActivityThread.main(ActivityThread.java:7870)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)\n"],"user_comment":""}

App crash after Youtube video ended with Danmaku on

Exception

  • User Action: ui error
  • Request: ACRA report
  • Content Country: CN
  • Content Language: zh-CN
  • App Language: zh_CN_#Hans
  • Service: none
  • Version: 2.4.1
  • OS: Linux Android 9 - 28
Crash log

java.lang.ArithmeticException
	at j$.time.a.d(Unknown Source:67)
	at j$.time.Duration.toMillis(Unknown Source:4)
	at org.schabi.newpipe.player.bulletComments.MovieBulletCommentsPlayer.drawComments(MovieBulletCommentsPlayer.java:105)
	at org.schabi.newpipe.player.bulletComments.MovieBulletCommentsPlayer.complete(MovieBulletCommentsPlayer.java:168)
	at org.schabi.newpipe.player.Player.completeBCPlayer(Player.java:2300)
	at org.schabi.newpipe.player.Player.changeState(Player.java:2204)
	at org.schabi.newpipe.player.Player.updatePlaybackState(Player.java:2117)
	at org.schabi.newpipe.player.Player.onPlaybackStateChanged(Player.java:2083)
	at com.google.android.exoplayer2.ExoPlayerImpl.lambda$updatePlaybackInfo$22(ExoPlayerImpl.java:1916)
	at com.google.android.exoplayer2.ExoPlayerImpl.$r8$lambda$JgXP2uBTbbt6JFsjC-TSVgxOYeo(Unknown Source:0)
	at com.google.android.exoplayer2.ExoPlayerImpl$$ExternalSyntheticLambda10.invoke(Unknown Source:4)
	at com.google.android.exoplayer2.util.ListenerSet$ListenerHolder.invoke(ListenerSet.java:281)
	at com.google.android.exoplayer2.util.ListenerSet.lambda$queueEvent$0(ListenerSet.java:190)
	at com.google.android.exoplayer2.util.ListenerSet.$r8$lambda$NbKDn9xtItiyMgYZmjIx_Sv1FFQ(Unknown Source:0)
	at com.google.android.exoplayer2.util.ListenerSet$$ExternalSyntheticLambda1.run(Unknown Source:6)
	at com.google.android.exoplayer2.util.ListenerSet.flushEvents(ListenerSet.java:211)
	at com.google.android.exoplayer2.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:1947)
	at com.google.android.exoplayer2.ExoPlayerImpl.handlePlaybackInfo(ExoPlayerImpl.java:1774)
	at com.google.android.exoplayer2.ExoPlayerImpl.lambda$new$1(ExoPlayerImpl.java:306)
	at com.google.android.exoplayer2.ExoPlayerImpl.$r8$lambda$nOBJYkeEQ2uz3sBKLToLWmzrgZk(Unknown Source:0)
	at com.google.android.exoplayer2.ExoPlayerImpl$$ExternalSyntheticLambda5.run(Unknown Source:4)
	at android.os.Handler.handleCallback(Handler.java:873)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:193)
	at android.app.ActivityThread.main(ActivityThread.java:6698)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:859)


Known issue: BiliBili service can not 'open in Browser' properly

This is an known issue.

Cause: I use the api link to represent video url rather than the origin video link. It also results in failing to "open in app" at a BiliBili website.

I will not fix it since the fix needs a large amount of code to be rewrote, but PR of this issue is welcomed.

doesn’t work search in yt

when pasting search string in yt, press enter, - process is going, but no results at all, just clear result place :(

Add player styles of other colors

The color of the current player feels very bright. I hope you can consider changing other colors, such as white, black and dark. Or other colors. Thank you very much for your work. It's really hard. I hope you can think about it. I really need this. Please!

request: change min SDK to low again forever in the next update

On version 1.9.5, minimum SDK is 19 (4.4) and target SDK is 29 (10)

But in version 2.0.0, minimum SDK is 28 (9) and target SDK is 29 (10)

Could you consider changing min SDK to 19 again?

If you update target SDK to higher android version its ok. but because you change minimum SDK i can't update app

I really don't understand why many developers keep change the minimum SDK to be higher, when some users like me are stuck on the latest android version which is out of date and won't be able to update anymore, even though the condition of the phone is still good. and before getting an update, the same apps could still be used and worked well

It feels like app developers are now forcing people to have to buy a new phone just so they can update their apps.

This does not only happen to closed source apps but open source apps too. without considering that the people being coerced were in a dire financial situation and had other more important things in their lives as priority

It's really sad

abrupted in ”live reply”

Exception

Crash log

java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
	at org.schabi.newpipe.extractor.services.bilibili.utils.getRecordApiUrl(utils.java:74)
	at org.schabi.newpipe.extractor.services.bilibili.extractors.BilibiliChannelExtractor.onFetchPage(BilibiliChannelExtractor.java:46)
	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:60)
	at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:54)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$4(ExtractorHelper.java:128)
	at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$BOLWstv98dC8pFAG_uir5gPXYwY(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda3.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.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)


Bilibili livestream not working

Every Bilibili livestream does not play properly, can you fix it if possible?

Exception

  • User Action: play stream
  • Request: Player error[type=ERROR_CODE_IO_BAD_HTTP_STATUS] occurred while playing https://live.bilibili.com/21452505
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: BiliBili
  • Version: 1.9.4
  • OS: Linux samsung/g0qksx/g0q:12/SP1A.210812.016/S906NKSU2AVHB:user/release-keys 12 - 31
Crash log

com.google.android.exoplayer2.ExoPlaybackException: Source error
	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641)
	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:613)
	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 com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:396)
	at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:258)
	at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
	at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:99)
	at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:62)
	at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:174)
	at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
	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)


new issue about timestamps in comments after 2.4.0

First of all, I want to thank you for all your work.

I don't know, maybe you are working on this but I decided to open a new issue.

5 days ago, I opened a issue about timestamps in description. #64 (comment)
And a day later, you released 2.4.0.
In this version, you fixed what i said. Thanks.

But now, the main problem is;
You fixed timestamps in description but this update/fix broke timestamps in comments.

I want to divide this issue into two topics. Comments and Description

••••••••••••••••
----Timestamps in COMMENTS (main problem now)
When i click it ,goes to beginning of the video. Video player or PopUp. Same problem for all videos. (It started in 2.4.0)
••••••••••••••••
--Timestamps in DESCRIPTION
You fixed this and works well. But except very small issue (less important )
https://www.youtube.com/watch?v=sKA6o_B0lNs
When I open this video in PopUp player, timestamps in description dont work, not responding.

https://www.youtube.com/watch?v=ED7sZbfiP_k
But in this video, there is no problem with description Timestamps on popup player
••••••••••••••••••

--- If you are going to work on this issue, I think you should check app especially with this two videos after fix. With comment/description timestamps and with main player /popup player seperataly.
https://www.youtube.com/watch?v=sKA6o_B0lNs
https://www.youtube.com/watch?v=ED7sZbfiP_k

---If fixing timestamps in description brakes timestamps in comments and if there is no way to fix together , it is too hard to do or it takes long time, I think you should undo all this fix and go back to 2.3.3 codes about timestamps for now/temporarily.

Bilibili play error

All videos failed to play

Exception

  • User Action: play stream
  • Request: Player error[type=ERROR_CODE_IO_NETWORK_CONNECTION_FAILED] occurred while playing https://bilibili.com/BV1124y1X7KQ?p=1
  • Content Country: CN
  • Content Language: zh-CN
  • App Language: zh_CN
  • Service: BiliBili
  • Version: 1.9.4
  • OS: Linux Android 10 - 29
Crash log

com.google.android.exoplayer2.ExoPlaybackException: Source error
	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641)
	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:613)
	at android.os.Handler.dispatchMessage(Handler.java:103)
	at android.os.Looper.loop(Looper.java:244)
	at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.UnknownHostException: Unable to resolve host "xy115x223x29x70xy.mcdn.bilivideo.cn": No address associated with hostname
	at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:365)
	at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:258)
	at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
	at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1009)
	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)
Caused by: java.net.UnknownHostException: Unable to resolve host "xy115x223x29x70xy.mcdn.bilivideo.cn": No address associated with hostname
	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:156)
	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
	at java.net.InetAddress.getAllByName(InetAddress.java:1152)
	at com.android.okhttp.Dns$1.lookup(Dns.java:41)
	at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:178)
	at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:144)
	at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:86)
	at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:176)
	at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
	at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
	at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
	at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
	at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
	at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
	at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90)
	at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)
	at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:636)
	at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:517)
	at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:359)
	... 7 more
Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
	at libcore.io.Linux.android_getaddrinfo(Native Method)
	at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:74)
	at libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:200)
	at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:74)
	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:135)
	... 25 more


bilibili: error

配音演员高全胜 and others - bili_user - sorry, something went wrong
channel bug since 1.7.2

Exception

  • User Action: requested channel
  • Request: Start loading: https://space.bilibili.com/1667342531
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: Bilibili
  • Version: 1.7.2
  • OS: Linux Android 12 - 32
Crash log

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.replace(java.lang.CharSequence, java.lang.CharSequence)' on a null object reference
	at org.schabi.newpipe.extractor.services.bilibili.extractors.BilibiliLiveInfoItemExtractor.getName(BilibiliLiveInfoItemExtractor.java:26)
	at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:48)
	at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.commit(StreamInfoItemsCollector.java:108)
	at org.schabi.newpipe.extractor.services.bilibili.extractors.BilibiliChannelExtractor.getInitialPage(BilibiliChannelExtractor.java:97)
	at org.schabi.newpipe.extractor.utils.ExtractorHelper.getItemsPageOrLogError(ExtractorHelper.java:21)
	at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:94)
	at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:55)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$4(ExtractorHelper.java:126)
	at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$BOLWstv98dC8pFAG_uir5gPXYwY(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda3.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: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)


Timestamps in video description

When i click timestamps in video description, always responds me with "open with..." notification and shows other apps in my phone. Always i have to choose animepipe app and it works fine but wasting my time.
But there is no problem with timestamps in comments. it opens as soon as i click.

Add SponsorBlock

Hello, can you add SponsorBlock feature if possible? Not sure if AnimePipeExtractor would be compatible with SponsorBlock but I would like to see if that's possible.

Bug: niconico sorting filter crashes.

  1. Go to niconico.
  2. Set Sort order to ascending.
  3. Set Sort by to different one.
  4. Press search.
  5. Search something by entering text.
  6. Error occures.

Exception

  • User Action: searched
  • Request: voiceroid実況プレイ
  • Content Country: JP
  • Content Language: ja-JP
  • App Language: ja_JP
  • Service: NicoNico
  • Version: 1.8.1
  • OS: Linux Android 8.1.0 - 27
Crash log

java.lang.ClassCastException: org.schabi.newpipe.extractor.services.niconico.search.filter.NiconicoFilters$NiconicoSortOrderFilterItem cannot be cast to org.schabi.newpipe.extractor.services.niconico.search.filter.NiconicoFilters$NiconicoSortFilterItem
	at org.schabi.newpipe.extractor.services.niconico.search.filter.NiconicoFilters.evaluateSelectedFilters(NiconicoFilters.java:44)
	at org.schabi.newpipe.extractor.services.niconico.linkHandler.NiconicoSearchQueryHandlerFactory.getUrl(NiconicoSearchQueryHandlerFactory.java:31)
	at org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory.fromQuery(ListLinkHandlerFactory.java:61)
	at org.schabi.newpipe.extractor.linkhandler.SearchQueryHandlerFactory.fromQuery(SearchQueryHandlerFactory.java:38)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$searchFor$0(ExtractorHelper.java:88)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda1.call(Unknown Source:8)
	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.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:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
	at java.lang.Thread.run(Thread.java:764)


Danmaku not synchronized on Youtube

When watching youtube live videos, the danmaku goes slightly faster than video itself, keep adding time gaps between danmaku and video over time.
As in a video lasting 4 hours, it will end up with a roughly 20-30 seconds offset.
This also happens when directly jump through seekbar, so it's likely not a issue of rendering.

[Feature request] Newpipe's card layout

I know that this app is not only for YouTube also not your primary focus but as in latest version of newpipe, they implemented new card layout. So, can we also add this to animepipe?

[Service request] bilibili.tv

At first I thought this app supports bilibili.tv, but it turns out it's only bilibili.com. Is it possible in the future?

TODO: login

This feature is used to get some account-related videos. Login breaks the anonymity, but a dedicated throw-away account can minimize the downside and make it a universal player.
This project will make every effort to avoid sending unnecessary user data, if this feature is implemented, a list will be provided to show actions which need account data

Unable to Parse Bilibili Video pages

Hello, I just tried out your fork (I am surprised that Bilibili was rejected from upstream because of censorship, when YouTube is also full of censorship) in order to view a few videos about the Sapphire Nitro+ B550i, however the app just fails to parse even the video details. Opening the page in an external browser works.

Here is the report:

Exception

  • User Action: requested stream
  • Request: http://www.bilibili.com/video/av892596834
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: Bilibili
  • Version: 1.8.0
  • OS: Linux razer/cheryl2/aura:9/P-MR2-RC001-RZR-190914/3123:user/release-keys 9 - 28
Crash log

org.schabi.newpipe.extractor.exceptions.ExtractionException: Some important stream information was not given.
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractImportantData(StreamInfo.java:124)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:81)
	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.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda6.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: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:764)


The same exact thing also happens with any other video.

App crashes android kitkat i think

Issue
App crashes twice when launched.
First when launched, once the notice is closed after a while another notice pops up.
Screenshot_2022-12-14-05-02-07

How to reproduce
Install app
Run the app

Device
Samsung Galaxy Tab 4 7.0
Android 4.4.2
1.5GB RAM

Logcat:
animepipestopstwice.txt

Video Quality in bilibili is too low

In Bilibili, vedios only show 360p and 480p, not so clear. If video quality can reach 1080p, or al least 720p, it will bring us a better experience。

YouTube Live Chat does not appear when certain settings are enabled

If either "Auto-enqueue next stream" or "Turn on YouTube's Restricted Mode" is enabled, YouTube Live Chat will not appear.

You should be able to reproduce this by enabling either "Auto-enqueue next stream" or "Turn on YouTube's Restricted Mode" and restarting AnimePipe.

TODO: live chat

This is an important feature which can be used to improve user experience significantly.

Needs UI change: a separated tab
Extractor change: a new module to enable long connect and extract live chats

Could not parse website

Exception

Crash log

org.schabi.newpipe.extractor.exceptions.ExtractionException: Some important stream information was not given.
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractImportantData(StreamInfo.java:124)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:81)
	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.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda6.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.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: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)


Crash when drawing large images on devices with big screen

Reproduce:

  1. Open this in AnimePipe
  2. App Crashes

Log:
java.lang.RuntimeException: Canvas: trying to draw too large(128000000bytes) bitmap. at android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:280) at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:88) at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:548) at com.squareup.picasso.PicassoDrawable.draw(PicassoDrawable.java:109) at android.widget.ImageView.onDraw(ImageView.java:1436) at com.google.android.material.imageview.ShapeableImageView.onDraw(ShapeableImageView.java:198) at android.view.View.draw(View.java:21979) at android.view.View.updateDisplayListIfDirty(View.java:20856) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.draw(View.java:21982) at android.view.View.updateDisplayListIfDirty(View.java:20856) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at androidx.recyclerview.widget.RecyclerView.drawChild(RecyclerView.java:5204) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.draw(View.java:21982) at androidx.recyclerview.widget.RecyclerView.draw(RecyclerView.java:4603) at android.view.View.updateDisplayListIfDirty(View.java:20856) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.draw(View.java:21982) at androidx.viewpager.widget.ViewPager.draw(ViewPager.java:2426) at android.view.View.updateDisplayListIfDirty(View.java:20856) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.draw(View.java:21982) at android.view.View.updateDisplayListIfDirty(View.java:20856) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at androidx.fragment.app.FragmentContainerView.drawChild(FragmentContainerView.java:268) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at androidx.fragment.app.FragmentContainerView.dispatchDraw(FragmentContainerView.java:256) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at androidx.drawerlayout.widget.DrawerLayout.drawChild(DrawerLayout.java:1478) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.updateDisplayListIfDirty(View.java:20847) at android.view.View.draw(View.java:21711) at android.view.ViewGroup.drawChild(ViewGroup.java:4432) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4193) at android.view.View.draw(View.java:21982) at com.android.internal.policy.DecorView.draw(DecorView.java:808) at android.view.View.updateDisplayListIfDirty(View.java:20856) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:581) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:587) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:664) at android.view.ViewRootImpl.draw(ViewRootImpl.java:3767) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3495) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2779) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7781) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1041) at android.view.Choreographer.doCallbacks(Choreographer.java:864) at android.view.Choreographer.doFrame(Choreographer.java:798) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1026) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)

pr Could not parse website

pull request
InfinityLoop1308/PipePipeExtractor#11

Exception

  • User Action: requested stream
  • Request: http://www.bilibili.com/video/av16674467
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: Bilibili
  • Version: 1.7.2
  • OS: Linux Android 12 - 32
Crash log

org.schabi.newpipe.extractor.stream.StreamInfo$StreamExtractException: Could not get any stream. See error variable to get further details.
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:188)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:82)
	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.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda6.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.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: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)


New name & logo to release in F-Droid

I am planing to push this app into F-Droid.
Although some features are still missing, the current version is stable enough to be released. Therefore, the main issue comes to be the appearance - it is not good to have exact the same logo as NewPipe and named with enhanced, since it will confuse new users and kind of aggressive.
If you have any ideas, please comment here! Thanks for your contribution.

bilibili 360P & 480P resolution settings

default resolution
default popup resolution
limit resolution when using mobile data
360P and 480P for Bilibili and Niconico if there're more than 2 resolution options
240p=360p
144p=360p
720p=480p no account
1080p=480p no account

Request Min Sdk 21 again

Beacause That's upstream repo's already maintained Min Sdk "21" NO BUGS, 28 is too high leaves out too many devices. Ready to test with Android 6 device, Android 5 has also similar to 6 not many BIG changes vis-a -vis Kitkat to Lollypop Changes. Thank You, Consider the Request.

Known Issue: BiliBili live has no sound sometimes

I don't know how to reproduce it, but this problem occurs really often.
Temp solution: Play background and then return to foreground

If anyone finds how to reproduce it, please reply in this issue, and I will fix it ASAP.

Constant error while watching stream

Constant error while watching stream, and it is very annoying

Exception

  • User Action: requested stream
  • Request: https://www.youtube.com/watch?v=V_Q4lYiuv4g
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: YouTube
  • Version: 1.9.4
  • OS: Linux samsung/g0qksx/g0q:12/SP1A.210812.016/S906NKSU2AVHB:user/release-keys 12 - 31
Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: Could not get like count
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getLikeCount(YoutubeStreamExtractor.java:452)
	at org.schabi.newpipe.extractor.stream.StreamInfo.extractOptionalData(StreamInfo.java:280)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:83)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:73)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:121)
	at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$YTHJjScxCJNO1LTCqs3IKy35iyY(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda6.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: Ratings are enabled even though the like button is missing
	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.getLikeCount(YoutubeStreamExtractor.java:436)
	... 30 more


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.