projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[nrk] Extract chapters
[youtube-dl]
/
youtube_dl
/
extractor
/
radiocanada.py
diff --git
a/youtube_dl/extractor/radiocanada.py
b/youtube_dl/extractor/radiocanada.py
index 6751270ee3cc550b74fb114febbeac6952bb91b7..3b40002a8f4bf7480e15f253fc8b17d0c2d6e7ca 100644
(file)
--- a/
youtube_dl/extractor/radiocanada.py
+++ b/
youtube_dl/extractor/radiocanada.py
@@
-54,9
+54,8
@@
class RadioCanadaIE(InfoExtractor):
raise ExtractorError('This video is DRM protected.', expected=True)
device_types = ['ipad']
raise ExtractorError('This video is DRM protected.', expected=True)
device_types = ['ipad']
- if app_code != 'toutv':
- device_types.append('flash')
if not smuggled_data:
if not smuggled_data:
+ device_types.append('flash')
device_types.append('android')
formats = []
device_types.append('android')
formats = []
@@
-103,7
+102,7
@@
class RadioCanadaIE(InfoExtractor):
continue
f_url = re.sub(r'\d+\.%s' % ext, '%d.%s' % (tbr, ext), v_url)
protocol = determine_protocol({'url': f_url})
continue
f_url = re.sub(r'\d+\.%s' % ext, '%d.%s' % (tbr, ext), v_url)
protocol = determine_protocol({'url': f_url})
- f
ormats.append(
{
+ f
=
{
'format_id': '%s-%d' % (protocol, tbr),
'url': f_url,
'ext': 'flv' if protocol == 'rtmp' else ext,
'format_id': '%s-%d' % (protocol, tbr),
'url': f_url,
'ext': 'flv' if protocol == 'rtmp' else ext,
@@
-111,7
+110,14
@@
class RadioCanadaIE(InfoExtractor):
'width': int_or_none(url_e.get('width')),
'height': int_or_none(url_e.get('height')),
'tbr': tbr,
'width': int_or_none(url_e.get('width')),
'height': int_or_none(url_e.get('height')),
'tbr': tbr,
- })
+ }
+ mobj = re.match(r'(?P<url>rtmp://[^/]+/[^/]+)/(?P<playpath>[^?]+)(?P<auth>\?.+)', f_url)
+ if mobj:
+ f.update({
+ 'url': mobj.group('url') + mobj.group('auth'),
+ 'play_path': mobj.group('playpath'),
+ })
+ formats.append(f)
if protocol == 'rtsp':
base_url = self._search_regex(
r'rtsp://([^?]+)', f_url, 'base url', default=None)
if protocol == 'rtsp':
base_url = self._search_regex(
r'rtsp://([^?]+)', f_url, 'base url', default=None)
@@
-125,6
+131,14
@@
class RadioCanadaIE(InfoExtractor):
f4m_id='hds', fatal=False))
self._sort_formats(formats)
f4m_id='hds', fatal=False))
self._sort_formats(formats)
+ subtitles = {}
+ closed_caption_url = get_meta('closedCaption') or get_meta('closedCaptionHTML5')
+ if closed_caption_url:
+ subtitles['fr'] = [{
+ 'url': closed_caption_url,
+ 'ext': determine_ext(closed_caption_url, 'vtt'),
+ }]
+
return {
'id': video_id,
'title': get_meta('Title'),
return {
'id': video_id,
'title': get_meta('Title'),
@@
-135,6
+149,7
@@
class RadioCanadaIE(InfoExtractor):
'season_number': int_or_none('SrcSaison'),
'episode_number': int_or_none('SrcEpisode'),
'upload_date': unified_strdate(get_meta('Date')),
'season_number': int_or_none('SrcSaison'),
'episode_number': int_or_none('SrcEpisode'),
'upload_date': unified_strdate(get_meta('Date')),
+ 'subtitles': subtitles,
'formats': formats,
}
'formats': formats,
}