Newpipe: Could not decrypt video url signature.

Created on 31 Jan 2017  路  40Comments  路  Source: TeamNewPipe/NewPipe

It looks like this error is back in force with the 0.8.8 update that was posted on F-Droid just a little bit ago.

Trying to open many YouTube links, such as https://www.youtube.com/watch?v=MyrE1hC0HiQ, results in the error "Could not decrypt video url signature." and the video never playing.

bug

Most helpful comment

Fixed it.

All 40 comments

I don't think this is a 0.8.8 issue, as it worked fine yesterday. Rather, I think that Google changed something that broke newpipe.

Error is also present on PureNexus based on 7.1.1 N6F26Q

Same here...

Getting the same error since this morning.. Yesterday it worked fine..

How do we get a stack trace, so that we can be useful instead of just complaining?

Ho boy NewPipe is broken ... Thought I could do something else today ...

I/ActivityManager( 2826): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.schabi.newpipe/.MainActivity bnds=[540,1466][750,1704] (has extras)} from uid 10030 on display 0
I/ActivityManager( 2826): Start proc 12715:org.schabi.newpipe/u0a76 for activity org.schabi.newpipe/.MainActivity
I/ActivityManager( 2826): START u0 {cmp=org.schabi.newpipe/.detail.VideoItemDetailActivity (has extras)} from uid 10076 on display 0
I/ActivityManager( 2826): START u0 {cmp=org.schabi.newpipe/.detail.VideoItemDetailActivity (has extras)} from uid 10076 on display 0
I/ActivityManager( 2826): START u0 {cmp=org.schabi.newpipe/.detail.VideoItemDetailActivity (has extras)} from uid 10076 on display 0
I/ActivityManager( 2826): Killing 12715:org.schabi.newpipe/u0a76 (adj 900): remove task
I/WindowManager( 2826): WIN DEATH: Window{c632caf u0 org.schabi.newpipe/org.schabi.newpipe.detail.VideoItemDetailActivity}
I/ActivityManager( 2826): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.schabi.newpipe/.MainActivity bnds=[540,1466][750,1704] (has extras)} from uid 10030 on display 0
I/ActivityManager( 2826): Start proc 12910:org.schabi.newpipe/u0a76 for activity org.schabi.newpipe/.MainActivity
I/ActivityManager( 2826): START u0 {cmp=org.schabi.newpipe/.detail.VideoItemDetailActivity (has extras)} from uid 10076 on display 0
I/ActivityManager( 2826): Displayed org.schabi.newpipe/.detail.VideoItemDetailActivity: +118ms
W/System.err(12910): org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor$DecryptException: Could not load decrypt function
W/System.err(12910): at org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:815)
W/System.err(12910): at org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor.<init>(YoutubeStreamExtractor.java:217)
W/System.err(12910): at org.schabi.newpipe.extractor.services.youtube.YoutubeService.getExtractorInstance(YoutubeService.java:51)
W/System.err(12910): at org.schabi.newpipe.detail.StreamInfoWorker$StreamExtractorRunnable.run(StreamInfoWorker.java:80)
W/System.err(12910): at org.schabi.newpipe.Downloader.download(Downloader.java:141)
W/System.err(12910): at org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:794)
I/ActivityManager( 2826): START u0 {cmp=org.schabi.newpipe/.detail.VideoItemDetailActivity (has extras)} from uid 10076 on display 0
I/ActivityManager( 2826): Displayed org.schabi.newpipe/.detail.VideoItemDetailActivity: +108ms
W/System.err(12910): org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor$DecryptException: Could not load decrypt function
W/System.err(12910): at org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:815)
W/System.err(12910): at org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor.<init>(YoutubeStreamExtractor.java:217)
W/System.err(12910): at org.schabi.newpipe.extractor.services.youtube.YoutubeService.getExtractorInstance(YoutubeService.java:51)
W/System.err(12910): at org.schabi.newpipe.detail.StreamInfoWorker$StreamExtractorRunnable.run(StreamInfoWorker.java:80)
W/System.err(12910): at org.schabi.newpipe.Downloader.download(Downloader.java:141)
W/System.err(12910): at org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:794)

Maybe this is helpful.

It seems the app is broken. same error for everyone.

I'm on it.

youtube-dl is broken to: https://github.com/TeamNewPipe/NewPipe/issues/430

This is the broken code.

can give me solution for Could not load decrypt function???

may be problem is here

String functionPattern = "("
                    + decryptionFuncName.replace("$", "\\$")
                    + "=function\\([a-zA-Z0-9_]+\\)\\{.+?\\})";

Well it's more than that, look at this here. This describes it, but somehow it does not yet work for me.

hello sir what i do ?

Here are my changes so far.

Does not yet work.

FYI - maybe it helps

youtube-dl is broken to: #430

youtube-dl works fine for me (NewPipe doesn't), for both versions shown below.

~ youtube-dl --version
2017.01.29
~ youtube-dlold --version        
2017.01.10
~ youtube-dlold https://www.youtube.com/watch\?v\=qYodWEKCuGg

[youtube] qYodWEKCuGg: Downloading webpage
[youtube] qYodWEKCuGg: Downloading video info webpage
[youtube] qYodWEKCuGg: Extracting video information
[youtube] qYodWEKCuGg: Downloading MPD manifest
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[download] Destination: Code Monkey-qYodWEKCuGg.f135.mp4
[download] 100% of 10.66MiB in 00:01
[download] Destination: Code Monkey-qYodWEKCuGg.f251.webm
[download] 100% of 2.82MiB in 00:00
[ffmpeg] Merging formats into "Code Monkey-qYodWEKCuGg.mkv"
Deleting original file Code Monkey-qYodWEKCuGg.f135.mp4 (pass -k to keep)
Deleting original file Code Monkey-qYodWEKCuGg.f251.webm (pass -k to keep)

Yes for youtube-dl it depends on the video you are trying to download. youtube-dl needs that signature part only for certain videos but not for all, such like NewPipe does.

Try to download this Video, with youtube-dl and it will fail to:

$ youtube-dl --version
2017.01.29
$ youtube-dl 'https://www.youtube.com/watch?v=34Na4j8AVgA'
[youtube] 34Na4j8AVgA: Downloading webpage
[youtube] 34Na4j8AVgA: Downloading video info webpage
[youtube] 34Na4j8AVgA: Extracting video information
[youtube] 34Na4j8AVgA: Downloading js player en_US-vflV3n15C
ERROR: Signature extraction failed: Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/youtube_dl/extractor/youtube.py", line 1057, in _decrypt_signature
    video_id, player_url, s
  File "/usr/local/lib/python3.5/dist-packages/youtube_dl/extractor/youtube.py", line 971, in _extract_signature_function
    errnote='Download of %s failed' % player_url)
  File "/usr/local/lib/python3.5/dist-packages/youtube_dl/extractor/common.py", line 529, in _download_webpage
    res = self._download_webpage_handle(url_or_request, video_id, note, errnote, fatal, encoding=encoding, data=data, headers=headers, query=query)
  File "/usr/local/lib/python3.5/dist-packages/youtube_dl/extractor/common.py", line 436, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query)
  File "/usr/local/lib/python3.5/dist-packages/youtube_dl/extractor/common.py", line 416, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/lib/python3.5/dist-packages/youtube_dl/YoutubeDL.py", line 2000, in urlopen
    req = sanitized_Request(req)
  File "/usr/local/lib/python3.5/dist-packages/youtube_dl/utils.py", line 525, in sanitized_Request
    return compat_urllib_request.Request(sanitize_url(url), *args, **kwargs)
  File "/usr/lib/python3.5/urllib/request.py", line 269, in __init__
    self.full_url = url
  File "/usr/lib/python3.5/urllib/request.py", line 295, in full_url
    self._parse()
  File "/usr/lib/python3.5/urllib/request.py", line 324, in _parse
    raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: '/yts/jsbin/player-en_US-vflV3n15C/base.js'
 (caused by ValueError("unknown url type: '/yts/jsbin/player-en_US-vflV3n15C/base.js'",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

I may need help.

same error

@cmv47 I don't expect it to work for anyone right now.

I think this solves the problem.

Right saw it.

is the issue resolved now??

almost, I'm strugling with regex... java (or at least the version I use) does not support named groups. So I have to experiment a bit with the fix from youtube-dl.

The problem is in this line.

helperObjectName = Parser.matchGroup1(";([A-Za-z0-9_\$]{2})\...\(", decryptionFunc);

The value of decryptionFunc

var or=function(){b(!1)};

this is what i think

Fixed it.

If it's fixed, where I can download a version of newpipe fixed ?
Your app is the best for me !

You may wait until it appears on f-droid.

F-Droid recently switched to GitLab for app submission requests, and it is now back up (6:28pm UTC). I have made an unofficial build of 0.8.9 (rename .zip to .apk since GitHub doesn't allow APKs to be uploaded) - NewPipe-0.8.9-debug-UNOFFICIAL.zip from the releases section for users who don't want to wait. Note that this is an UNOFFICIAL build in debug mode, and it is unsigned. The official (signed) version is the one that will appear on F-Droid. If you do not trust this build, I encourage you to wait until it is officially released on F-Droid.

@TGSoftware That's interesting, until now the process of going from GitHub to F-Droid was a black box to me. So will NewPipe show up on that issues list once @theScrabi submits it?

@tgp1994 I read the rest of that paragraph, and I realized there's more to this process. This process used to happen on the F-Droid forum, but now it is done through Gitlab or IRC. When an app's first version is being submitted, the issue is submitted to the list on Gitlab or as a message on their Freenode IRC channel (this is used more often), and F-Droid repository maintainers check to see if the requirements are met for publishing (e.g. non-free libraries or proprietary blobs such as Google AdMob or Google Analytics are not included in the source code). Then, the project maintainer either gets access to a folder on the F-Droid repository and is able to push the update using F-Droid tools (faster) or asks an F-Droid developer to publish their app given some details (slower). If there are updates to the app, the issue can be updated, or the project maintainer is able to publish the update themselves because they have write access to their project on the Data git repository.

I submited it, but it takes to long for fdroid to build. I wrote them a mail about that, but no responce so far.

Thanks for fixing this. You guys saved my day.

For anyone looking for a status update, it sounds like there's some difficulty getting the app to build for F-Droid (#443).

Same issue again. Since yesterday.

https://github.com/TeamNewPipe/NewPipe/releases update to 0.14.1 the update is not on fdroid yet

This was already fixed in the newest release.

Is there an apk somewhere? Or need to build it?

Is there an apk somewhere? Or need to build it?

Yes, on F-Droid: https://f-droid.org/packages/org.schabi.newpipe/

@SirPscl Maybe it wasn't approved yet?
I can still see v 0.14.0 there...

screencapture-f-droid-org-packages-org-schabi-newpipe-2018-09-13-10_27_45.zip

EDIT: I still have this version, and the F-Droid app doesn't show there is an update available (so only "run" and "uninstall" are available).
After I've uninstalled the app, and re-installed it, it got the new version.

Odd.

Same issue for me since today

{
"user_action": "requested stream",
"request": "https:\/\/www.youtube.com\/watch?v=PtMowGNfhTg",
"content_language": "GB",
"service": "YouTube",
"package": "org.schabi.newpipe",
"version": "0.14.2",
"os": "Linux Android 9 - 28",
"time": "2019-01-18 23:48",
"exceptions": [
"org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor$DecryptException: Could not parse decrypt function \n\tat org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:729)\n\tat org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:604)\n\tat org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:51)\n\tat org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:60)\n\tat org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:56)\n\tat org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:109)\n\tat org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$5fJcha6Sq5APJBLdG6osaJby-mc.call(Unknown Source:4)\n\tat io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)\n\tat io.reactivex.Single.subscribe(Single.java:3438)\n\tat io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)\n\tat io.reactivex.Single.subscribe(Single.java:3438)\n\tat io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)\n\tat io.reactivex.Maybe.subscribe(Maybe.java:4154)\n\tat io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)\n\tat io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)\n\tat io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)\n\tat io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)\n\tat io.reactivex.Flowable.subscribe(Flowable.java:14479)\n\tat io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)\n\tat io.reactivex.Maybe.subscribe(Maybe.java:4154)\n\tat io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)\n\tat io.reactivex.Single.subscribe(Single.java:3438)\n\tat io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)\n\tat io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)\n\tat io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)\n\tat io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)\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)\nCaused by: org.schabi.newpipe.extractor.utils.Parser$RegexException: failed to find pattern \"(encodeURIComponent=function\([a-zA-Z0-9_]+\)\{.+?\})\n\tat org.schabi.newpipe.extractor.utils.Parser.matchGroup(Parser.java:63)\n\tat org.schabi.newpipe.extractor.utils.Parser.matchGroup1(Parser.java:52)\n\tat org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.loadDecryptionCode(YoutubeStreamExtractor.java:713)\n\t... 30 more\n"
],
"user_comment": ""
}

@dorakas We're following the current issue here.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  路  3Comments

Aevann picture Aevann  路  3Comments

f242 picture f242  路  3Comments

android1973 picture android1973  路  3Comments

tty4242 picture tty4242  路  3Comments