TeamNewPipe / NewPipe

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

[FIXED IN 0.23.2] [YouTube] Something went wrong/Could not get any stream #8760

Closed ghost closed 2 years ago

ghost commented 2 years ago

Checklist

Affected version

0.23.1

Steps to reproduce the bug

  1. Click on any youtube video
  2. U will get something went wrong error.

Expected behavior

-_-

Actual behavior

YouTube video doesn't play

Screenshots/Screen recordings

No response

Logs

Exception

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(ExtractorHelper.java)
    at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda6.call(R8$$SyntheticClass)
    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:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:761)


Affected Android/Custom ROM version

Android 7.1.1

Affected device model

Motorola E4

Additional information

No response

nikhilCad commented 2 years ago

Looks like we both opened the issue at nearly the same time, I will close mine now keep this one open

ghost commented 2 years ago

Looks like we both opened the issue at nearly the same time, I will close mine now keep this one open

LOL

DocSniper commented 2 years ago

Can confirm this Youtube error with Android 11 and NewPipe 23.1. Everything still works fine with PeerTube. Google has probably modified something again...

RiedleroD commented 2 years ago

interestingly, vanced still works.

itsme24082004 commented 2 years ago

Can confirm this Youtube error with Android 11 and NewPipe 23.1. Everything still works fine with PeerTube. Google has probably modified something again...

Peertube too not working now for me 😐😐

ghost commented 2 years ago

Can confirm this Youtube error with Android 11 and NewPipe 23.1. Everything still works fine with PeerTube. Google has probably modified something again...

Classic Google

gqqjhffr commented 2 years ago

Chiming in to ditto this. Android 12, latest NewPipe version.

ghost commented 2 years ago

interestingly, vanced still works.

Do u think I will use that proprietary app which is a mod of the official YouTube app? It is a clone of youtube without any ads. It can also have hidden trackers in it you will never know.

ghost commented 2 years ago

interestingly, vanced still works.

wasnt its discountinued

itsme24082004 commented 2 years ago

interestingly, vanced still works.

wasnt its discountinued

Same doubt πŸ™ƒπŸ™ƒ

ghost commented 2 years ago

interestingly, vanced still works.

wasnt its discountinued

Ya lmao. Imagine using a proprietary discontinued project. Always prefer free and open source softwares.

Theta-Dev commented 2 years ago

Piped, which uses the same extractor, seems to be broken, too. Test: https://piped.kavin.rocks/watch?v=4vYOwhll1fs

Time to fire up the debugger to see what broke.

Sissiogamer1 commented 2 years ago

I'm getting the same problem with Android 10

gqqjhffr commented 2 years ago

Chiming in to ditto this. Android 12, latest NewPipe version.

... why did I get thumbs-downed twice on this? Genuine question.

xorbital commented 2 years ago

Because that's what the thumbs up button on the first post is for Commenting "Same for me" doesn't add any valuable information and only makes it harder for devs to read through everything, same with duplicate issues. See issue #7734 for example, the issue got locked eventually because everyone needed to write the same thing

gqqjhffr commented 2 years ago

Because that's what the thumbs up button on the first post is for Commenting "Same for me" doesn't add any valuable information and only makes it harder for devs to read through everything, same with duplicate issues. See issue #7734 for example, the issue got locked eventually because everyone needed to write the same thing

I did contribute my Android and NewPipe versions though. The other posts in the thread doing the same thing didn't get thumbs-downed.

ghost commented 2 years ago

Because that's what the thumbs up button on the first post is for Commenting "Same for me" doesn't add any valuable information and only makes it harder for devs to read through everything, same with duplicate issues. See issue #7734 for example, the issue got locked eventually because everyone needed to write the same thing

I did contribute my Android and NewPipe versions though. The other posts in the thread doing the same thing didn't get thumbs-downed.

That doesn't mean u will take everything for granted. Can u look at all the comments properly? All of them got thumbs down.

Kinjoko commented 2 years ago

The same thing happens for me but the NewPipe Legacy app is unaffected by this bug and works properly

ColeWunderlich commented 2 years ago

This issue also exists for version 0.22.0

ghost commented 2 years ago

The same thing happens for me but the NewPipe Legacy app is unaffected by this bug and works properly

I am sorry but I don't know what newpipe legacy is about. What is the difference between newpipe and newpipe legacy?

Kinjoko commented 2 years ago

The same thing happens for me but the NewPipe Legacy app is unaffected by this bug and works properly

I am sorry but I don't know what newpipe legacy is about. What is the difference between newpipe and newpipe legacy?

To be honest, I'm not sure either. I only know that Legacy's API requirement is Android 4.1 (API 16) so it can run on older devices. There is probably additional code that helps with compatibility with such devices.

Theta-Dev commented 2 years ago

I have found the issue: NewPipe seems to extract invalid javascript code for decrypting the nsig stream url parameter (the one used to disable throttling).

player.js source: https://www.youtube.com/s/player/4c3f79c5/player_ias.vflset/en_US/base.js

Extracted function:

Yka=function(a){var b=a.split(""),c=[1,-1491143228,function(d,e){for(e=(e%d.length+d.length)%d.length;e--;)d.unshift(d.pop())},
function(d,e){d=(d%e.length+e.length)%e.length;e.splice(-d).reverse().forEach(function(f){e.unshift(f)})},
function(d,e,f){var h=f.length;d.forEach(function(l,m,n){this.push(n[m]=f[(f.indexOf(l)-f.indexOf(this[m])+m+h--)%f.length])},e.split(""))},
1237385704,function(){for(var d=64,e=[];++d-e.length-32;)switch(d){case 58:d=96;continue;case 91:d=44;break;case 65:d=47;continue;case 46:d=153;case 123:d-=58;default:e.push(String.fromCharCode(d))}return e},
1225666314,1096873292,-1734260956,function(d){d.reverse()},
8,function(){for(var d=64,e=[];++d-e.length-32;){switch(d){case 58:d-=14;case 91:case 92:case 93:continue;case 123:d=47;case 94:case 95:case 96:continue;case 46:d=95}e.push(String.fromCharCode(d))}return e},
-1016745021,"try",562231887,3,884054075,1094364930,"mUQ0mmV",-1681276860,-1989531069,-108227737,1956060395,-493939180,2131070901,5,2,-1009019524,1005565846,function(d,e,f,h,l,m,n,p,q){return f(h,l,m,n,p,q)},
"dGkUD",-1196116017,"Lb3JFjG",1135809004,-1633902162,-593335341,-1771867838,"vTFYJnn",-179086125,-106638316,"][","KoHC",-2140023277,function(d,e,f,h,l,m,n,p){return e(f,h,l,m,n,p)},
null,function(d,e){e.push(d)},
function(d,e,f,h,l){return e(f,h,l)},
9,1096873292,-2075052662,-1601585883,"qt_F","UAra",-1292304395,2003061831,"NexDF1Q",-1930411836,null,2084471006,-1503687301,1965829231,"Q28W",-2134348932,function(d,e,f,h,l,m,n,p,q,v,w){return d(f,h,l,m,n,p,q,v,w)},
function(d,e){e=(e%d.length+d.length)%d.length;d.splice(e,1)},
null,1057324902,b,1184679822,"Kq3_","XAvwMDt","ewLuK",1186823343,770905775,1174919815,b,"[\")'",-428480698,682407718,4,function(d,e){d.splice(d.length,0,e)},
1523473591,function(d){for(var e=d.length;e;)d.push(d.splice(--e,1)[0])},
-257906558,"dGkUD",-725471628,"switch",0,7,1476659330,1282707934,function(d,e){e=(e%d.length+d.length)%d.length;var f=d[0];d[0]=d[e];d[e]=f},
-1404159046,-1945770994,"A0b82S3",943658017,"[\")'",67069803,668690865,-501909700,-2041876971,function(d,e){d=(d%e.length+e.length)%e.length;e.splice(0,1,e.splice(d,1,e[0])[0])},
2087425718,-1476367835,844677276,570256504,733653487,function(){for(var d=64,e=[];++d-e.length-32;)switch(d){case 46:d=95;default:e.push(String.fromCharCode(d));case 94:case 95:case 96:break;case 123:d-=76;case 92:case 93:continue;case 58:d=44;case 91:}return e},
",};

FUNCTION_NAME: Yka

This seems to have broken all alternative YouTube clients that use the web client and can circumvent throttling, such as yt-dlp. (Yt-dlp catches the error though and downloads the video with throttling).

yt-dlp --extractor-args "youtube:player-client=web" 4vYOwhll1fs

Here is the line where it fails, for debugging: https://github.com/TeamNewPipe/NewPipeExtractor/blob/dev/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeThrottlingDecrypter.java#L92

Xonar92 commented 2 years ago

Wow that was fast! The great potential of Github in action. Thanks

heartlog commented 2 years ago

NOooooooooOoooooooOoooooooOooooooOoooooOooooooOo

mikwee commented 2 years ago

Can confirm: Android 12, latest version.

ghost commented 2 years ago

ok so issue soleved?

ghost commented 2 years ago

... why did I get thumbs-downed twice on this? Genuine question.

Yeah, those crybabies are so mentally challenged that they cry about "d0 NoT p0St C0mMeNT tH1nGs L1ke sAMe fOr mE" and have delusion as if they are entitled to dictate us not to do something while they are clearly not, which is the reason why I blocked them, and recommend you to do the same.

And yeah, let me see if those crybabies throw the same or similar exception to me as well, but note that I will block anyone who do so or (try to) downvote me, on sight. Trying to force me will result in completely opposite situation. Period.

Give this person a true

Pauler221 commented 2 years ago

Guys is there a good alternative to the NewPipe app?

Don't get me wrong I love NewPipe but just in case the devs abandon the project or it gets shut down or whatever do we have an alternative or are we screwed? Preferably an app that works in situations like this.

I'm looking for APPS and NOT forks of NewPipe.

gqqjhffr commented 2 years ago

... why did I get thumbs-downed twice on this? Genuine question.

Yeah, those crybabies are so mentally challenged that they cry about "d0 NoT p0St C0mMeNT tH1nGs L1ke sAMe fOr mE" and have delusion as if they are entitled to dictate us not to do something while they are clearly not, which is the reason why I blocked them, and recommend you to do the same.

And yeah, let me see if those crybabies throw the same or similar exception to me as well, but note that I will block anyone who do so or (try to) downvote me, on sight. Trying to force me will result in completely opposite situation. Period.

Thanks for the sanity check.

hhl commented 2 years ago

so i got the same error, not playing anymore .

Exception

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.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:923)


itsme24082004 commented 2 years ago

@prorounak2005 bro change that title to "new pipe not working ,not playing any videos " this would gain some attention in my opinion

ghost commented 2 years ago

Guys is there a good alternative to the NewPipe app?

Don't get me wrong I love NewPipe but just in case the devs abandon the project or it gets shut down or whatever do we have an alternative or are we screwed? Preferably an app that works in situations like this.

I'm looking for APPS and NOT forks of NewPipe.

If this ever happened we would to crate our own app or just watch videos from invidous on a web browser

AudricV commented 2 years ago

What seem to happen is that the function is not extracted fully, because of new line breaks.

We have a code to prevent this issue, but it doesn't catch any exception, but only ParsingExceptions. If we make YoutubeThrottlingDecrypter.apply(String, String) throwing any Exception instead of a ParsingException and that we catch this exception, the anti-break code works.

licaon-kter commented 2 years ago

@Pauler221 won't all apps end up in the same situations eventually?

Educatejag commented 2 years ago

You people are a blessing. Thanks for fixing the issue. I pray you all get a long, happy, healthy life πŸ˜ŠπŸ™πŸ™πŸ™

w6gw8h commented 2 years ago

Thank you so much! You are super heros! Greetings from Germany

alphain24 commented 2 years ago

i know nothing about code i'm just here to fix the issue but idk how

ghost commented 2 years ago

i know nothing about code i'm just here to fix the issue but idk how

Talk about crybabies disliking comments.

ghost commented 2 years ago

i know nothing about code i'm just here to fix the issue but idk how

Talk about crybabies disliking comments.

Please STFU . PLEASE!!! This issue has been closed. What's the point of talking here? Use discord,irc,matrix or element. GitHub is not a place to chat with ur homies.