diff options
author | Sergey M․ <dstftw@gmail.com> | 2018-07-05 02:14:06 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2018-07-05 02:14:06 +0700 |
commit | 94fef94d9c8571db255b0f3694617f5cd56825b8 (patch) | |
tree | 49784756d3bb809a694bb74f81bdf2db95340fa2 /youtube_dl | |
parent | 9a6628aaf918afdcdf4c661f474e318207155780 (diff) |
[dplayit] Fix extraction (closes #16901)
Diffstat (limited to 'youtube_dl')
-rw-r--r-- | youtube_dl/extractor/dplay.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/youtube_dl/extractor/dplay.py b/youtube_dl/extractor/dplay.py index fe47f6dce..a95e3213c 100644 --- a/youtube_dl/extractor/dplay.py +++ b/youtube_dl/extractor/dplay.py @@ -21,6 +21,7 @@ from ..utils import ( unified_strdate, unified_timestamp, update_url_query, + urljoin, USER_AGENTS, ) @@ -310,9 +311,11 @@ class DPlayItIE(InfoExtractor): if not info: info_url = self._search_regex( - r'url\s*[:=]\s*["\']((?:https?:)?//[^/]+/playback/videoPlaybackInfo/\d+)', - webpage, 'info url') + (r'playback_json_url\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1', + r'url\s*[:=]\s*["\'](?P<url>(?:https?:)?//[^/]+/playback/videoPlaybackInfo/\d+)'), + webpage, 'info url', group='url') + info_url = urljoin(url, info_url) video_id = info_url.rpartition('/')[-1] try: @@ -322,6 +325,8 @@ class DPlayItIE(InfoExtractor): 'dplayit_token').value, 'Referer': url, }) + if isinstance(info, compat_str): + info = self._parse_json(info, display_id) except ExtractorError as e: if isinstance(e.cause, compat_HTTPError) and e.cause.code in (400, 403): info = self._parse_json(e.cause.read().decode('utf-8'), display_id) |