[youtube] Parse player_url if format URLs are encrypted or DASH MPDs are requested

Fixes #13211
This commit is contained in:
Yen Chi Hsuan 2017-05-28 00:47:41 +08:00
parent a846173d93
commit a49eccdfa7
No known key found for this signature in database
GPG key ID: 7F902A182457CA23
2 changed files with 8 additions and 5 deletions

View file

@ -1,6 +1,8 @@
version <unreleased> version <unreleased>
Extractors Extractors
* [youtube] Fix DASH MPD extraction for videos with non-encrypted format URLs
(#13211)
+ [youku] Extract more metadata (#10433) + [youku] Extract more metadata (#10433)

View file

@ -1715,12 +1715,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
format_id = url_data['itag'][0] format_id = url_data['itag'][0]
url = url_data['url'][0] url = url_data['url'][0]
if 'sig' in url_data: if 's' in url_data or self._downloader.params.get('youtube_include_dash_manifest', True):
url += '&signature=' + url_data['sig'][0]
elif 's' in url_data:
encrypted_sig = url_data['s'][0]
ASSETS_RE = r'"assets":.+?"js":\s*("[^"]+")' ASSETS_RE = r'"assets":.+?"js":\s*("[^"]+")'
jsplayer_url_json = self._search_regex( jsplayer_url_json = self._search_regex(
ASSETS_RE, ASSETS_RE,
embed_webpage if age_gate else video_webpage, embed_webpage if age_gate else video_webpage,
@ -1741,6 +1737,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
video_webpage, 'age gate player URL') video_webpage, 'age gate player URL')
player_url = json.loads(player_url_json) player_url = json.loads(player_url_json)
if 'sig' in url_data:
url += '&signature=' + url_data['sig'][0]
elif 's' in url_data:
encrypted_sig = url_data['s'][0]
if self._downloader.params.get('verbose'): if self._downloader.params.get('verbose'):
if player_url is None: if player_url is None:
player_version = 'unknown' player_version = 'unknown'