aboutsummaryrefslogtreecommitdiffstats
path: root/youtube_dl/extractor/dctp.py
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl/extractor/dctp.py')
-rw-r--r--youtube_dl/extractor/dctp.py54
1 files changed, 32 insertions, 22 deletions
diff --git a/youtube_dl/extractor/dctp.py b/youtube_dl/extractor/dctp.py
index e700f8d86..04ff214f7 100644
--- a/youtube_dl/extractor/dctp.py
+++ b/youtube_dl/extractor/dctp.py
@@ -16,11 +16,10 @@ 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': 'm4v',
+ 'ext': 'flv',
'title': 'Videoinstallation für eine Kaufhausfassade',
'description': 'Kurzfilm',
'thumbnail': r're:^https?://.*\.jpg$',
@@ -28,6 +27,10 @@ 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/',
@@ -56,26 +59,33 @@ class DctpTvIE(InfoExtractor):
uuid = media['uuid']
title = media['title']
- 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')
+ 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',
+ }]
thumbnails = []
images = media.get('images')