X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fdrtv.py;h=8257e35a437b075461114fbaf1b4dd2d578f56d8;hb=cd5b4b0bc2876e16656d33156754ce3c05aa1619;hp=510ef04b0602290d44ebc038211b0d12a7d29824;hpb=6d2749aac407df1e039f5b61a294991c1e810cff;p=youtube-dl diff --git a/youtube_dl/extractor/drtv.py b/youtube_dl/extractor/drtv.py index 510ef04b0..8257e35a4 100644 --- a/youtube_dl/extractor/drtv.py +++ b/youtube_dl/extractor/drtv.py @@ -1,12 +1,11 @@ from __future__ import unicode_literals -from .subtitles import SubtitlesInfoExtractor -from .common import ExtractorError +from .common import InfoExtractor, ExtractorError from ..utils import parse_iso8601 -class DRTVIE(SubtitlesInfoExtractor): - _VALID_URL = r'https?://(?:www\.)?dr\.dk/tv/se/(?:[^/]+/)+(?P[\da-z-]+)(?:[/#?]|$)' +class DRTVIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?dr\.dk/tv/se/(?:[^/]+/)*(?P[\da-z-]+)(?:[/#?]|$)' _TEST = { 'url': 'http://www.dr.dk/tv/se/partiets-mand/partiets-mand-7-8', @@ -25,9 +24,15 @@ class DRTVIE(SubtitlesInfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) - programcard = self._download_json( - 'http://www.dr.dk/mu/programcard/expanded/%s' % video_id, video_id, 'Downloading video JSON') + webpage = self._download_webpage(url, video_id) + + video_id = self._search_regex( + r'data-(?:material-identifier|episode-slug)="([^"]+)"', + webpage, 'video id') + programcard = self._download_json( + 'http://www.dr.dk/mu/programcard/expanded/%s' % video_id, + video_id, 'Downloading video JSON') data = programcard['Data'][0] title = data['Title'] @@ -70,7 +75,7 @@ class DRTVIE(SubtitlesInfoExtractor): } for subs in subtitles_list: lang = subs['Language'] - subtitles[LANGS.get(lang, lang)] = subs['Uri'] + subtitles[LANGS.get(lang, lang)] = [{'url': subs['Uri'], 'ext': 'vtt'}] if not formats and restricted_to_denmark: raise ExtractorError( @@ -78,10 +83,6 @@ class DRTVIE(SubtitlesInfoExtractor): self._sort_formats(formats) - if self._downloader.params.get('listsubtitles', False): - self._list_available_subtitles(video_id, subtitles) - return - return { 'id': video_id, 'title': title, @@ -90,5 +91,5 @@ class DRTVIE(SubtitlesInfoExtractor): 'timestamp': timestamp, 'duration': duration, 'formats': formats, - 'subtitles': self.extract_subtitles(video_id, subtitles), + 'subtitles': subtitles, }