ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
131.19k stars 9.93k forks source link

Cannot download Viki Pass Plus Video #22298

Open eronfin opened 5 years ago

eronfin commented 5 years ago

Checklist

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--username', 'PRIVATE', '--password', 'PRIVATE', '-
v', 'https://www.viki.com/videos/1155532v-issue-makers-episode-3']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2019.09.01
[debug] Python version 3.4.4 (CPython) - Windows-2012ServerR2-6.3.9600
[debug] exe versions: ffmpeg N-72900-g178ba1f, ffprobe N-72900-g178ba1f, phantom
js 2.1.1
[debug] Proxy map: {}
[viki] Logging in
[viki] 1155532v: Downloading video JSON
[viki] 1155532v: Downloading video streams JSON
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug
 . Make sure you are using the latest version; type  youtube-dl -U  to update. B
e sure to call youtube-dl with the --verbose flag and include its complete outpu
t.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpbzyg5d
3a\build\youtube_dl\YoutubeDL.py", line 796, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpbzyg5d
3a\build\youtube_dl\extractor\common.py", line 530, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpbzyg5d
3a\build\youtube_dl\extractor\viki.py", line 319, in _real_extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpbzyg5d
3a\build\youtube_dl\extractor\common.py", line 1327, in _sort_formats
youtube_dl.utils.ExtractorError: No video formats found; please report this issu
e on https://yt-dl.org/bug . Make sure you are using the latest version; type  y
outube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and
include its complete output.

Description

My Viki account subscription is already Viki Pass Plus but still cannot download video that is available for Viki Pass Plus subscribers. Example video: https://www.viki.com/videos/1155532v-issue-makers-episode-3

After investigated, i see this API function responds "{}" (there is not stream info/url) GET /v4/videos/VIDEO_ID/streams.json

I don't have any idea to solve this issue, hope you guys can help me to find another way to download these videos.

Thank you so much!

SeanGilroy commented 4 years ago

Have you had any luck? I am having similar issues and starting to investigate now. It looks like it is the most recent Viki Pass Plus episodes... some of the 'older' new episodes will still download...

Agaronin commented 4 years ago

I've been having the same problem as eronfin for the past couple of months. Viki Pass Plus videos won't download with my Viki Pass Plus account login. Even older ones won't download. Is this on the radar at all for being fixed? I didn't see mention of it anywhere other than this post.

SeanGilroy commented 4 years ago

Yeah, same here. I have fiddled around but have not been able to figure out why its not working.

@remitamine, how does the account-needed thing work? I am willing to help out.

Agaronin commented 4 years ago

@icebadger Someone in another post said something about having to change something in viki.py to https login instead of http, and that's why it's not working. They got it working by modifying that auth line to the https URL, but we can't do that with the windows .exe file, so it'd have to be fixed in a release...if that's actually the problem. I'm not a programmer, so... shrug

SeanGilroy commented 4 years ago

If I remember correctly, that was earlier this year. The https issue has been fixed and is updated in the current verisons. No files would be downloaded when that was an issue. This seams limited to videos from Viki Pass Plus / Kocowa only?

Looking at the .json files from the site, when unlogged in it states it is blocked because pass plus is needed. When I use my login, it is blocked because of geo restiction. But I can play logged-in from browser fine. It is odd. Maybe it needs a refferer url?

Basicly I know enough to know I don't know what to look for.

Agaronin commented 4 years ago

@icebadger Dunno. Seems odd that it would give you a geo restriction if you're able to watch it just fine on the site. Not sure what would be causing something like that. Again, not a programmer, so I can only make uneducated guesses.

SeanGilroy commented 4 years ago

Did some more poking around and looked at the following. Just as a note, I am in the US and am not geo-restricted and it plays fine in my browser. This is for Extra-ordinary You, a current show under Kocawa/ Viki Pass Plus.

As an non-logged in user, I loaded https://api.viki.io/v4/containers/1157519v.json?app=100000a It seams app=100005a produces the same output.

At the end of the file: "blocked":false,"blocking":{"geo":false,"paywall":false,"upcoming":false}}

When app=100107a however: "blocked":true,"blocking":{"geo":true,"paywall":false,"upcoming":false}}

Digging in a little more to episode's page, and using the network inspector, there are files that include requests from urls like this:

https://colvk.viki.io/production?app_id=100107a&app_type=normal&app_ver=3.1.237-a27b31d***Continues***

Looking at this file in the Params window, it shows a drm_url field and a drm_type=dt3.

I am going to look at a non viki plus show to see if it is using the same drm... but i think this is new and what is causing these issues. I don't know if there is a way around this... i am by no means an expert.

SeanGilroy commented 4 years ago

I just checked the first episode of Hotel De Luna, and the same network files that load above (https://colvk.viki.io/production?app_id=100107a&app_type=normal&app_ver=3.1.237-a27b31d***Continues***) do not include the drm_url field and a drm_type=dt3 in the Params window.

Also, https://api.viki.io/v4/containers/1154058v.json?app=100000a shows the same output for app=100005a AND app=100107a, which is:

"blocked":false,"blocking":{"geo":false,"paywall":false,"upcoming":false}}

It is looking like the issue is a DRM scheme?

Agaronin commented 4 years ago

@remitamine I'd be willing to help with a Viki account as well. Whatever it takes to get this fixed so we can download from Viki again.

HermanFassett commented 4 years ago

I just checked the first episode of Hotel De Luna, and the same network files that load above (https://colvk.viki.io/production?app_id=100107a&app_type=normal&app_ver=3.1.237-a27b31d***Continues***) do not include the drm_url field and a drm_type=dt3 in the Params window.

Also, https://api.viki.io/v4/containers/1154058v.json?app=100000a shows the same output for app=100005a AND app=100107a, which is:

"blocked":false,"blocking":{"geo":false,"paywall":false,"upcoming":false}}

It is looking like the issue is a DRM scheme?

Looks like a DRM issue to me. Looking at the source while it's loading it has a decryptStreamUrls function which essentially appears to decrypt various keys including a long drm string into a Fairplay certificate for Viki Pass Plus videos.

manselmi commented 4 years ago

I'm also running into the GET request to streams.json returning an empty JSON payload {}:

AlecHex commented 4 years ago

Have you found any fix with this?

kytrinyx commented 3 years ago

I'm dropping a note to confirm that this still appears to be an issue in version 2021.03.14.

I am able to watch Pinocchio in the browser (with Viki Pass Plus), but am unable to download the videos, even when providing account credentials.

Verbose output ``` [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['--verbose', '--username=PRIVATE', '--password=PRIVATE', 'https://www.viki.com/tv/23066c-pinocchio'] [debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8 [debug] youtube-dl version 2021.03.14 [debug] Python version 3.9.2 (CPython) - macOS-10.15.7-x86_64-i386-64bit [debug] exe versions: ffmpeg 4.3.2, ffprobe 4.3.2, rtmpdump 2.4 [debug] Proxy map: {} [viki:channel] Logging in [viki:channel] 23066c: Downloading channel JSON [viki:channel] 23066c: Downloading episodes JSON page #1 [viki:channel] 23066c: Downloading clips JSON page #1 [viki:channel] 23066c: Downloading movies JSON page #1 [download] Downloading playlist: Pinocchio [viki:channel] playlist Pinocchio: Collected 37 video ids (downloading 37 of them) [download] Downloading video 1 of 37 [viki] Logging in [viki] 1055371v: Downloading video JSON ERROR: Sorry, this content is only available to Viki Pass Plus subscribers. Use --username and --password or --netrc to provide account credentials. ```