Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for PeerTube HLS videos #5964

Closed
4 tasks done
TILvids opened this issue Mar 31, 2021 · 12 comments · Fixed by #6307
Closed
4 tasks done

Support for PeerTube HLS videos #5964

TILvids opened this issue Mar 31, 2021 · 12 comments · Fixed by #6307
Labels
bug Issue is related to a bug peertube Service, https://joinpeertube.org/ requires extractor change This issue requires a change to the extractor

Comments

@TILvids
Copy link

TILvids commented Mar 31, 2021

Checklist

Steps to reproduce the bug

We have been able to independently verify this happening on two devices so far. Possibly some configuration mismatch? PeerTube instance is running 3.0.1.

Actual behaviour

Video does not load.

Expected behavior

Video should successfully load and play.

Screenshots/Screen recordings

Logs

Do not have phone on me at the moment, will update this post in a bit when I can get to it, if I can pull a log.

UPDATE: Here is the report I pulled.


{"user_action":"requested stream","request":"https://tilvids.com/videos/watch/ef17153e-c21c-4ee5-8258-bbd6bf873a34","content_language":"en-US","content_country":"US","app_language":"en_US","service":"PeerTube","package":"org.schabi.newpipe","version":"0.21.0","os":"Linux motorola/payton_fi/payton_sprout:9/PPW29.69-39-6/c74e9:user/release-keys 9 - 28","time":"2021-03-31 08:59","exceptions":["org.schabi.newpipe.extractor.stream.StreamInfo$StreamExtractException: Could not get any stream. See error variable to get further details.\n\tat org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:194)\n\tat org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:72)\n\tat org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)\n\tat org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:115)\n\tat org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$YTHJjScxCJNO1LTCqs3IKy35iyY.call(Unknown Source:4)\n\tat io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)\n\tat io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)\n\tat io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)\n\tat io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)\n\tat io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)\n\tat io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)\n\tat io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)\n\tat io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)\n\tat io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)\n\tat io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)\n\tat io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15753)\n\tat io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)\n\tat io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)\n\tat io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)\n\tat io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)\n\tat io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)\n\tat io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:614)\n\tat io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)\n\tat io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)\n\tat java.lang.Thread.run(Thread.java:764)\n"],"user_comment":""} 

Device info

  • Android version/Custom ROM version:
  • Device model:
@TILvids TILvids added the bug Issue is related to a bug label Mar 31, 2021
@TobiGr TobiGr added the peertube Service, https://joinpeertube.org/ label Mar 31, 2021
@TILvids
Copy link
Author

TILvids commented Mar 31, 2021

I added a log report that I was able to pull.

@TobiGr
Copy link
Member

TobiGr commented Mar 31, 2021

I converted the JSON to a readable form:

Exception

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:194)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:72)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:115)
	at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$YTHJjScxCJNO1LTCqs3IKy35iyY.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:15753)
	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:614)
	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)


@AudricV
Copy link
Member

AudricV commented Mar 31, 2021

I think they are only HLS streams in this video.
So this issue cannot be fixed until proper HLS support is added to NewPipe and NewPipe Extractor.

@TILvids
Copy link
Author

TILvids commented Mar 31, 2021

@TiA4f8R We did indeed turn on HLS streams for TILvids a few weeks ago, which probably coincides with this beginning to happen. HLS streams are now the preferred method of streaming, per the PeerTube team's documentation, and they're recommending all instances switch over to using it. So it seems like PeerTube functionality is likely to be pretty much dead-in-the-water for NewPipe going forward, until that support gets added. Bummer! :(

@AudricV
Copy link
Member

AudricV commented Mar 31, 2021

Yes, until a proper support of HLS streams, we will not able to provide these videos.
It was the same thing for some SoundCloud tracks (all Universal Music copyrighted tracks), but hopefully, I implemented a workaround.

@fleurc
Copy link

fleurc commented Apr 5, 2021

Same happened to me today while trying to run a peertube instance.

Exception

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:194)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:72)
	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:115)
	at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$YTHJjScxCJNO1LTCqs3IKy35iyY.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:614)
	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)


Hope the crashlog is properly formatted, sorry if it isn't.

@TobiGr
Copy link
Member

TobiGr commented Apr 7, 2021

@TiA4f8R Are you on that? Otherwise, I'd take a look into it.
My plan is to generalize the SoundCloud fix into some utitlity or helper class and use it for both services.

@TobiGr
Copy link
Member

TobiGr commented Apr 7, 2021

I fixed that partially. The streams are extracted now (see TeamNewPipe/NewPipeExtractor#603, but the duration is not handled correctly in the app: app-debug.zip

@TobiGr TobiGr added the requires extractor change This issue requires a change to the extractor label Apr 7, 2021
@AudricV
Copy link
Member

AudricV commented Apr 7, 2021

My plan is to generalize the SoundCloud fix into some utitlity or helper class and use it for both services.

@TobiGr The problem is that the range inside segments URL can be at a different part and some services can return 404, 403, or 400.

@TobiGr
Copy link
Member

TobiGr commented Apr 7, 2021

yes. already figured that out. we cannot apply the soundcloud hack to peertube

@TILvids
Copy link
Author

TILvids commented Apr 7, 2021

Have you guys tried reaching out to the PeerTube team to see if they have any thoughts/ideas? I'm not sure what (if anything) could be done, but at least they're not a black hole of communication like YouTube. :)

@opusforlife2 opusforlife2 changed the title NewPipe results with "Sorry, something went wrong" when trying to view videos from specific PeerTube instance Support for PeerTube HLS videos May 15, 2021
@TobiGr
Copy link
Member

TobiGr commented May 15, 2021

@TILvids Please test #6307

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Issue is related to a bug peertube Service, https://joinpeertube.org/ requires extractor change This issue requires a change to the extractor
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants