Browse Source

Merge remote-tracking branch 'bastik/dev-dctp'

master
Philipp Hagemeister 10 years ago
parent
commit
cf8d6ec865
3 changed files with 54 additions and 0 deletions
  1. 3
      youtube_dl/downloader/rtmp.py
  2. 1
      youtube_dl/extractor/__init__.py
  3. 50
      youtube_dl/extractor/dctp.py

3
youtube_dl/downloader/rtmp.py

@ -104,6 +104,7 @@ class RtmpFD(FileDownloader):
live = info_dict.get('rtmp_live', False) live = info_dict.get('rtmp_live', False)
conn = info_dict.get('rtmp_conn', None) conn = info_dict.get('rtmp_conn', None)
protocol = info_dict.get('rtmp_protocol', None) protocol = info_dict.get('rtmp_protocol', None)
real_time = info_dict.get('rtmp_real_time', False)
no_resume = info_dict.get('no_resume', False) no_resume = info_dict.get('no_resume', False)
continue_dl = info_dict.get('continuedl', False) continue_dl = info_dict.get('continuedl', False)
@ -143,6 +144,8 @@ class RtmpFD(FileDownloader):
basic_args += ['--conn', conn] basic_args += ['--conn', conn]
if protocol is not None: if protocol is not None:
basic_args += ['--protocol', protocol] basic_args += ['--protocol', protocol]
if real_time:
basic_args += ['--realtime']
args = basic_args args = basic_args
if not no_resume and continue_dl and not live: if not no_resume and continue_dl and not live:

1
youtube_dl/extractor/__init__.py

@ -90,6 +90,7 @@ from .dailymotion import (
) )
from .daum import DaumIE from .daum import DaumIE
from .dbtv import DBTVIE from .dbtv import DBTVIE
from .dctp import DctpTvIE
from .deezer import DeezerPlaylistIE from .deezer import DeezerPlaylistIE
from .dfb import DFBIE from .dfb import DFBIE
from .dotsub import DotsubIE from .dotsub import DotsubIE

50
youtube_dl/extractor/dctp.py

@ -0,0 +1,50 @@
# encoding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
class DctpTvIE(InfoExtractor):
_VALID_URL = r'^http://www.dctp.tv/(#/)?filme/(?P<id>.+?)/$'
_TEST = {
'url': 'http://www.dctp.tv/filme/videoinstallation-fuer-eine-kaufhausfassade/',
'info_dict': {
'id': '1324',
'display_id': 'videoinstallation-fuer-eine-kaufhausfassade',
'ext': 'flv',
'title': 'Videoinstallation für eine Kaufhausfassade'}
}
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)
version = version_json['version_name']
info_json = self._download_json(
'{0}{1}/restapi/slugs/{2}.json'.format(base_url, version, video_id), video_id)
object_id = str(info_json['object_id'])
meta_json = self._download_json(
'{0}{1}/restapi/media/{2}.json'.format(base_url, version, object_id), video_id)
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)
servers_json = self._download_json('http://www.dctp.tv/streaming_servers/', video_id)
url = servers_json[0]['endpoint']
return {
'id': object_id,
'title': title,
'format': 'rtmp',
'url': url,
'play_path': play_path,
'rtmp_real_time': True,
'ext': 'flv',
'display_id': video_id
}
Loading…
Cancel
Save