Newpipe: Could not decrypt video URL signature

Created on 10 Oct 2018  路  23Comments  路  Source: TeamNewPipe/NewPipe

Happened on Oneplus 6, android 9.

ASAP bug

Most helpful comment

Yes, it happens on every video. This is what it says:

Exception

org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$DecryptException: Could not parse decrypt function 
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:725)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:598)
    at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:48)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:59)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:55)
    at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3$ExtractorHelper(ExtractorHelper.java:113)
    at org.schabi.newpipe.util.ExtractorHelper$$Lambda$3.call(Unknown Source:4)
    at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.Maybe.subscribe(Maybe.java:4073)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
    at io.reactivex.Flowable.subscribe(Flowable.java:14349)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
    at io.reactivex.Maybe.subscribe(Maybe.java:4073)
    at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
    at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:579)
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
    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)
Caused by: org.schabi.newpipe.extractor.utils.Parser$RegexException: failed to find pattern ";([A-Za-z0-9_\$]{2})\...\( inside of var K=function(a){if(a.data.getUint8(a.dataOffset)){var b=a.data;a=a.dataOffset+4;return 4294967296*b.getUint32(a)+b.getUint32(a+4)};"
    at org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:65)
    at org.schabi.newpipe.extractor.utils.Parser.matchGroup1(Parser.java:52)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:713)
    ... 30 more

-------------------

All 23 comments

Which NewPipe version is installed on your device?

The latest version

In this case, we need some more information. Does this happen on every video? And also please convert your error report and post it below.

Yes, it happens on every video. This is what it says:

Exception

org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$DecryptException: Could not parse decrypt function 
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:725)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:598)
    at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:48)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:59)
    at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:55)
    at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3$ExtractorHelper(ExtractorHelper.java:113)
    at org.schabi.newpipe.util.ExtractorHelper$$Lambda$3.call(Unknown Source:4)
    at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
    at io.reactivex.Maybe.subscribe(Maybe.java:4073)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
    at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
    at io.reactivex.Flowable.subscribe(Flowable.java:14349)
    at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
    at io.reactivex.Maybe.subscribe(Maybe.java:4073)
    at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
    at io.reactivex.Single.subscribe(Single.java:3310)
    at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
    at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:579)
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
    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)
Caused by: org.schabi.newpipe.extractor.utils.Parser$RegexException: failed to find pattern ";([A-Za-z0-9_\$]{2})\...\( inside of var K=function(a){if(a.data.getUint8(a.dataOffset)){var b=a.data;a=a.dataOffset+4;return 4294967296*b.getUint32(a)+b.getUint32(a+4)};"
    at org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:65)
    at org.schabi.newpipe.extractor.utils.Parser.matchGroup1(Parser.java:52)
    at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:713)
    ... 30 more

-------------------

Same stack trace, same error conditions, same OS/app version, happening as of recently. Using content language GB.

It's the second time in the past month a youtube change - I assume - breaks this..

Have you considered making parsing not hardcoded in the application? Then it could be fixed without an app release.

Exact same here. Most recent version. Some videos do play but most don't. Have reported via email.

Edit: I'm also Danish but phone and app is set to GB

Maybe something special in denmark?

Same here.
US.

Nope, it's not something special in Denmark. As you can see, a lot of people from different countries have this issue

When do you think the bug will be fixed?

Same problem here. DK but language set to GB.

same here, french settings. got the same error with axet/vget, looks like youtube changed the html5 js code, so you'll have to change the guessing of the name of the signature function....

Same here, Norwegian. Seems to be all videos for a few days now, I've had to go back to the (horrible) default player.

Seems like it's fixed now

Thanks for the fix, I'll close the issue now

@duergrim Why did you close this one? Nothing has been fixed, yet.

Are you sure? It works for me now, but I'll reopen it

The problem is that these errors can't be pinpointed to a specific video or location. Some videos crash the app and hours later can be played without any problems. Maybe I have a different error...

```
{
"user_action": "ui error",
"request": "App crash, UI failure",
"content_language": "US",
"service": "none",
"package": "org.schabi.newpipe",
"version": "0.14.1",
"os": "Linux Android 8.1.0 - 27",
"time": "2018-10-19 11:27",
"exceptions": [
"java.lang.NumberFormatException: For input string: \"\"\n\tat java.lang.Integer.parseInt(Integer.java:620)\n\tat java.lang.Integer.parseInt(Integer.java:643)\n\tat org.schabi.newpipe.util.ListHelper.compareVideoStreamResolution(ListHelper.java:396)\n\tat org.schabi.newpipe.util.ListHelper.computeDefaultResolution(ListHelper.java:113)\n\tat org.schabi.newpipe.util.ListHelper.getDefaultResolutionIndex(ListHelper.java:40)\n\tat org.schabi.newpipe.fragments.detail.VideoDetailFragment.setupActionBar(VideoDetailFragment.java:738)\n\tat org.schabi.newpipe.fragments.detail.VideoDetailFragment.handleResult(VideoDetailFragment.java:1204)\n\tat org.schabi.newpipe.fragments.detail.VideoDetailFragment.lambda$startLoading$6$VideoDetailFragment(VideoDetailFragment.java:866)\n\tat org.schabi.newpipe.fragments.detail.VideoDetailFragment$$Lambda$5.accept(Unknown Source:4)\n\tat io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:63)\n\tat io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81)\n\tat io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)\n\tat android.os.Handler.handleCallback(Handler.java:790)\n\tat android.os.Handler.dispatchMessage(Handler.java:99)\n\tat android.os.Looper.loop(Looper.java:164)\n\tat android.app.ActivityThread.main(ActivityThread.java:6494)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)\n"
],
"user_comment": ""
}

Yra thats not the decrypt error

The I'm sincerely sorry.

This intermittency is probably because youtube are doing A/B -testing. This may be very hard to reproduce. The error has gone away for me as well.

Gone away for me also.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

danialbehzadi picture danialbehzadi  路  3Comments

hassanseoul123 picture hassanseoul123  路  3Comments

ghost picture ghost  路  3Comments

desmonk picture desmonk  路  3Comments

cool-student picture cool-student  路  3Comments