diff options
Diffstat (limited to 'youtube_dl/extractor/dfb.py')
| -rw-r--r-- | youtube_dl/extractor/dfb.py | 27 | 
1 files changed, 16 insertions, 11 deletions
| diff --git a/youtube_dl/extractor/dfb.py b/youtube_dl/extractor/dfb.py index 8049779b0..263532cc6 100644 --- a/youtube_dl/extractor/dfb.py +++ b/youtube_dl/extractor/dfb.py @@ -3,42 +3,47 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor +from ..utils import unified_strdate  class DFBIE(InfoExtractor):      IE_NAME = 'tv.dfb.de' -    _VALID_URL = r'https?://tv\.dfb\.de/video/[^/]+/(?P<id>\d+)' +    _VALID_URL = r'https?://tv\.dfb\.de/video/(?P<display_id>[^/]+)/(?P<id>\d+)'      _TEST = { -        'url': 'http://tv.dfb.de/video/highlights-des-empfangs-in-berlin/9070/', +        'url': 'http://tv.dfb.de/video/u-19-em-stimmen-zum-spiel-gegen-russland/11633/',          # The md5 is different each time          'info_dict': { -            'id': '9070', +            'id': '11633', +            'display_id': 'u-19-em-stimmen-zum-spiel-gegen-russland',              'ext': 'flv', -            'title': 'Highlights des Empfangs in Berlin', -            'upload_date': '20140716', +            'title': 'U 19-EM: Stimmen zum Spiel gegen Russland', +            'upload_date': '20150714',          },      }      def _real_extract(self, url):          mobj = re.match(self._VALID_URL, url)          video_id = mobj.group('id') +        display_id = mobj.group('display_id') -        webpage = self._download_webpage(url, video_id) +        webpage = self._download_webpage(url, display_id)          player_info = self._download_xml(              'http://tv.dfb.de/server/hd_video.php?play=%s' % video_id, -            video_id) +            display_id)          video_info = player_info.find('video') -        f4m_info = self._download_xml(self._proto_relative_url(video_info.find('url').text.strip()), video_id) +        f4m_info = self._download_xml( +            self._proto_relative_url(video_info.find('url').text.strip()), display_id)          token_el = f4m_info.find('token')          manifest_url = token_el.attrib['url'] + '?' + 'hdnea=' + token_el.attrib['auth'] + '&hdcore=3.2.0' +        formats = self._extract_f4m_formats(manifest_url, display_id)          return {              'id': video_id, +            'display_id': display_id,              'title': video_info.find('title').text, -            'url': manifest_url, -            'ext': 'flv',              'thumbnail': self._og_search_thumbnail(webpage), -            'upload_date': ''.join(video_info.find('time_date').text.split('.')[::-1]), +            'upload_date': unified_strdate(video_info.find('time_date').text), +            'formats': formats,          } | 
