diff options
Diffstat (limited to 'youtube_dl/extractor/dctp.py')
| -rw-r--r-- | youtube_dl/extractor/dctp.py | 54 | 
1 files changed, 22 insertions, 32 deletions
| diff --git a/youtube_dl/extractor/dctp.py b/youtube_dl/extractor/dctp.py index 04ff214f7..e700f8d86 100644 --- a/youtube_dl/extractor/dctp.py +++ b/youtube_dl/extractor/dctp.py @@ -16,10 +16,11 @@ class DctpTvIE(InfoExtractor):      _TESTS = [{          # 4x3          'url': 'http://www.dctp.tv/filme/videoinstallation-fuer-eine-kaufhausfassade/', +        'md5': '3ffbd1556c3fe210724d7088fad723e3',          'info_dict': {              'id': '95eaa4f33dad413aa17b4ee613cccc6c',              'display_id': 'videoinstallation-fuer-eine-kaufhausfassade', -            'ext': 'flv', +            'ext': 'm4v',              'title': 'Videoinstallation für eine Kaufhausfassade',              'description': 'Kurzfilm',              'thumbnail': r're:^https?://.*\.jpg$', @@ -27,10 +28,6 @@ class DctpTvIE(InfoExtractor):              'timestamp': 1302172322,              'upload_date': '20110407',          }, -        'params': { -            # rtmp download -            'skip_download': True, -        },      }, {          # 16x9          'url': 'http://www.dctp.tv/filme/sind-youtuber-die-besseren-lehrer/', @@ -59,33 +56,26 @@ class DctpTvIE(InfoExtractor):          uuid = media['uuid']          title = media['title'] -        ratio = '16x9' if media.get('is_wide') else '4x3' -        play_path = 'mp4:%s_dctp_0500_%s.m4v' % (uuid, ratio) - -        servers = self._download_json( -            'http://www.dctp.tv/streaming_servers/', display_id, -            note='Downloading server list JSON', fatal=False) - -        if servers: -            endpoint = next( -                server['endpoint'] -                for server in servers -                if url_or_none(server.get('endpoint')) -                and 'cloudfront' in server['endpoint']) -        else: -            endpoint = 'rtmpe://s2pqqn4u96e4j8.cloudfront.net/cfx/st/' - -        app = self._search_regex( -            r'^rtmpe?://[^/]+/(?P<app>.*)$', endpoint, 'app') - -        formats = [{ -            'url': endpoint, -            'app': app, -            'play_path': play_path, -            'page_url': url, -            'player_url': 'http://svm-prod-dctptv-static.s3.amazonaws.com/dctptv-relaunch2012-110.swf', -            'ext': 'flv', -        }] +        is_wide = media.get('is_wide') +        formats = [] + +        def add_formats(suffix): +            templ = 'https://%%s/%s_dctp_%s.m4v' % (uuid, suffix) +            formats.extend([{ +                'format_id': 'hls-' + suffix, +                'url': templ % 'cdn-segments.dctp.tv' + '/playlist.m3u8', +                'protocol': 'm3u8_native', +            }, { +                'format_id': 's3-' + suffix, +                'url': templ % 'completed-media.s3.amazonaws.com', +            }, { +                'format_id': 'http-' + suffix, +                'url': templ % 'cdn-media.dctp.tv', +            }]) + +        add_formats('0500_' + ('16x9' if is_wide else '4x3')) +        if is_wide: +            add_formats('720p')          thumbnails = []          images = media.get('images') | 
