]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/rtvnh.py
2 from __future__
import unicode_literals
4 from .common
import InfoExtractor
5 from ..utils
import ExtractorError
8 class RTVNHIE(InfoExtractor
):
9 _VALID_URL
= r
'https?://(?:www\.)?rtvnh\.nl/video/(?P<id>[0-9]+)'
11 'url': 'http://www.rtvnh.nl/video/131946',
12 'md5': 'cdbec9f44550763c8afc96050fa747dc',
16 'title': 'Grote zoektocht in zee bij Zandvoort naar vermiste vrouw',
17 'thumbnail': 're:^https?:.*\.jpg$'
21 def _real_extract(self
, url
):
22 video_id
= self
._match
_id
(url
)
24 meta
= self
._parse
_json
(self
._download
_webpage
(
25 'http://www.rtvnh.nl/video/json?m=' + video_id
, video_id
), video_id
)
27 status
= meta
.get('status')
30 '%s returned error code %d' % (self
.IE_NAME
, status
), expected
=True)
33 rtmp_formats
= self
._extract
_smil
_formats
(
34 'http://www.rtvnh.nl/video/smil?m=' + video_id
, video_id
)
35 formats
.extend(rtmp_formats
)
37 for rtmp_format
in rtmp_formats
:
38 rtmp_url
= '%s/%s' % (rtmp_format
['url'], rtmp_format
['play_path'])
39 rtsp_format
= rtmp_format
.copy()
40 del rtsp_format
['play_path']
41 del rtsp_format
['ext']
43 'format_id': rtmp_format
['format_id'].replace('rtmp', 'rtsp'),
44 'url': rtmp_url
.replace('rtmp://', 'rtsp://'),
47 formats
.append(rtsp_format
)
48 http_base_url
= rtmp_url
.replace('rtmp://', 'http://')
49 formats
.extend(self
._extract
_m
3u8_formats
(
50 http_base_url
+ '/playlist.m3u8', video_id
, 'mp4',
51 'm3u8_native', m3u8_id
='hls', fatal
=False))
52 formats
.extend(self
._extract
_f
4m
_formats
(
53 http_base_url
+ '/manifest.f4m',
54 video_id
, f4m_id
='hds', fatal
=False))
55 self
._sort
_formats
(formats
)
59 'title': meta
['title'].strip(),
60 'thumbnail': meta
.get('image'),