diff options
Diffstat (limited to 'youtube_dl/extractor/dctp.py')
| -rw-r--r-- | youtube_dl/extractor/dctp.py | 67 | 
1 files changed, 30 insertions, 37 deletions
| diff --git a/youtube_dl/extractor/dctp.py b/youtube_dl/extractor/dctp.py index a47e04993..14ba88715 100644 --- a/youtube_dl/extractor/dctp.py +++ b/youtube_dl/extractor/dctp.py @@ -1,61 +1,54 @@ -# encoding: utf-8 +# coding: utf-8  from __future__ import unicode_literals  from .common import InfoExtractor -from ..compat import compat_str +from ..utils import unified_strdate  class DctpTvIE(InfoExtractor):      _VALID_URL = r'https?://(?:www\.)?dctp\.tv/(#/)?filme/(?P<id>.+?)/$'      _TEST = {          'url': 'http://www.dctp.tv/filme/videoinstallation-fuer-eine-kaufhausfassade/', +        'md5': '174dd4a8a6225cf5655952f969cfbe24',          'info_dict': { -            'id': '1324', +            'id': '95eaa4f33dad413aa17b4ee613cccc6c',              'display_id': 'videoinstallation-fuer-eine-kaufhausfassade', -            'ext': 'flv', -            'title': 'Videoinstallation für eine Kaufhausfassade' +            'ext': 'mp4', +            'title': 'Videoinstallation für eine Kaufhausfassade', +            'description': 'Kurzfilm', +            'upload_date': '20110407', +            'thumbnail': 're:^https?://.*\.jpg$',          }, -        'params': { -            # rtmp download -            'skip_download': True, -        }      }      def _real_extract(self, url):          video_id = self._match_id(url) -        base_url = 'http://dctp-ivms2-restapi.s3.amazonaws.com/' -        version_json = self._download_json( -            base_url + 'version.json', -            video_id, note='Determining file version') -        version = version_json['version_name'] -        info_json = self._download_json( -            '{0}{1}/restapi/slugs/{2}.json'.format(base_url, version, video_id), -            video_id, note='Fetching object ID') -        object_id = compat_str(info_json['object_id']) -        meta_json = self._download_json( -            '{0}{1}/restapi/media/{2}.json'.format(base_url, version, object_id), -            video_id, note='Downloading metadata') -        uuid = meta_json['uuid'] -        title = meta_json['title'] -        wide = meta_json['is_wide'] -        if wide: -            ratio = '16x9' -        else: -            ratio = '4x3' -        play_path = 'mp4:{0}_dctp_0500_{1}.m4v'.format(uuid, ratio) +        webpage = self._download_webpage(url, video_id) + +        object_id = self._html_search_meta('DC.identifier', webpage)          servers_json = self._download_json( -            'http://www.dctp.tv/streaming_servers/', +            'http://www.dctp.tv/elastic_streaming_client/get_streaming_server/',              video_id, note='Downloading server list') -        url = servers_json[0]['endpoint'] +        server = servers_json[0]['server'] +        m3u8_path = self._search_regex( +            r'\'([^\'"]+/playlist\.m3u8)"', webpage, 'm3u8 path') +        formats = self._extract_m3u8_formats( +            'http://%s%s' % (server, m3u8_path), video_id, ext='mp4', +            entry_protocol='m3u8_native') + +        title = self._og_search_title(webpage) +        description = self._html_search_meta('DC.description', webpage) +        upload_date = unified_strdate( +            self._html_search_meta('DC.date.created', webpage)) +        thumbnail = self._og_search_thumbnail(webpage)          return {              'id': object_id,              'title': title, -            'format': 'rtmp', -            'url': url, -            'play_path': play_path, -            'rtmp_real_time': True, -            'ext': 'flv', -            'display_id': video_id +            'formats': formats, +            'display_id': video_id, +            'description': description, +            'upload_date': upload_date, +            'thumbnail': thumbnail,          } | 
