]>
Commit | Line | Data |
---|---|---|
1 | # encoding: utf-8 | |
2 | from __future__ import unicode_literals | |
3 | ||
4 | from .common import InfoExtractor | |
5 | from ..compat import compat_str | |
6 | ||
7 | ||
8 | class DctpTvIE(InfoExtractor): | |
9 | _VALID_URL = r'http://www.dctp.tv/(#/)?filme/(?P<id>.+?)/$' | |
10 | _TEST = { | |
11 | 'url': 'http://www.dctp.tv/filme/videoinstallation-fuer-eine-kaufhausfassade/', | |
12 | 'info_dict': { | |
13 | 'id': '1324', | |
14 | 'display_id': 'videoinstallation-fuer-eine-kaufhausfassade', | |
15 | 'ext': 'flv', | |
16 | 'title': 'Videoinstallation für eine Kaufhausfassade' | |
17 | }, | |
18 | 'params': { | |
19 | # rtmp download | |
20 | 'skip_download': True, | |
21 | } | |
22 | } | |
23 | ||
24 | def _real_extract(self, url): | |
25 | video_id = self._match_id(url) | |
26 | base_url = 'http://dctp-ivms2-restapi.s3.amazonaws.com/' | |
27 | version_json = self._download_json( | |
28 | base_url + 'version.json', | |
29 | video_id, note='Determining file version') | |
30 | version = version_json['version_name'] | |
31 | info_json = self._download_json( | |
32 | '{0}{1}/restapi/slugs/{2}.json'.format(base_url, version, video_id), | |
33 | video_id, note='Fetching object ID') | |
34 | object_id = compat_str(info_json['object_id']) | |
35 | meta_json = self._download_json( | |
36 | '{0}{1}/restapi/media/{2}.json'.format(base_url, version, object_id), | |
37 | video_id, note='Downloading metadata') | |
38 | uuid = meta_json['uuid'] | |
39 | title = meta_json['title'] | |
40 | wide = meta_json['is_wide'] | |
41 | if wide: | |
42 | ratio = '16x9' | |
43 | else: | |
44 | ratio = '4x3' | |
45 | play_path = 'mp4:{0}_dctp_0500_{1}.m4v'.format(uuid, ratio) | |
46 | ||
47 | servers_json = self._download_json( | |
48 | 'http://www.dctp.tv/streaming_servers/', | |
49 | video_id, note='Downloading server list') | |
50 | url = servers_json[0]['endpoint'] | |
51 | ||
52 | return { | |
53 | 'id': object_id, | |
54 | 'title': title, | |
55 | 'format': 'rtmp', | |
56 | 'url': url, | |
57 | 'play_path': play_path, | |
58 | 'rtmp_real_time': True, | |
59 | 'ext': 'flv', | |
60 | 'display_id': video_id | |
61 | } |