added extractor for dctp.tv
[youtube-dl] / youtube_dl / extractor / dctp.py
1 # encoding: utf-8
2 from __future__ import unicode_literals
3
4 from .common import InfoExtractor
5
6 class DctpTvIE(InfoExtractor):
7     _VALID_URL = r'^http://www.dctp.tv/(#/)?filme/(?P<id>.+?)/$'
8
9     def _real_extract(self, url):
10         video_id = self._match_id(url)
11         base_url = 'http://dctp-ivms2-restapi.s3.amazonaws.com/'
12         version_json = self._download_json(base_url + 'version.json', video_id)
13         version = version_json['version_name']
14         info_json = self._download_json(
15             '{}{}/restapi/slugs/{}.json'.format(base_url, version, video_id), video_id)
16         object_id = info_json['object_id']
17         meta_json = self._download_json(
18             '{}{}/restapi/media/{}.json'.format(base_url, version, object_id), video_id)
19         uuid = meta_json['uuid']
20         title = meta_json['title']
21         wide = meta_json['is_wide']
22         if wide:
23             ratio = '16x9'
24         else:
25             ratio = '4x3'
26         play_path = 'mp4:{}_dctp_0500_{}.m4v'.format(uuid, ratio)
27
28         servers_json = self._download_json('http://www.dctp.tv/streaming_servers/', video_id)
29         url = servers_json[0]['endpoint']
30
31         return {
32             'id': video_id,
33             'title': title,
34             'format': 'rtmp',
35             'url': url,
36             'play_path': play_path,
37             'real_time': True,
38             'ext': 'flv'
39         }
40
41