diff options
Diffstat (limited to 'youtube_dl/extractor/rai.py')
| -rw-r--r-- | youtube_dl/extractor/rai.py | 49 | 
1 files changed, 43 insertions, 6 deletions
| diff --git a/youtube_dl/extractor/rai.py b/youtube_dl/extractor/rai.py index 81eb9db85..5bf64a56b 100644 --- a/youtube_dl/extractor/rai.py +++ b/youtube_dl/extractor/rai.py @@ -191,11 +191,12 @@ class RaiPlayIE(RaiBaseIE):          info = {              'id': video_id, -            'title': title, +            'title': self._live_title(title) if relinker_info.get( +                'is_live') else title,              'alt_title': media.get('subtitle'),              'description': media.get('description'), -            'uploader': media.get('channel'), -            'creator': media.get('editor'), +            'uploader': strip_or_none(media.get('channel')), +            'creator': strip_or_none(media.get('editor')),              'duration': parse_duration(video.get('duration')),              'timestamp': timestamp,              'thumbnails': thumbnails, @@ -208,10 +209,46 @@ class RaiPlayIE(RaiBaseIE):          }          info.update(relinker_info) -          return info +class RaiPlayLiveIE(RaiBaseIE): +    _VALID_URL = r'https?://(?:www\.)?raiplay\.it/dirette/(?P<id>[^/?#&]+)' +    _TEST = { +        'url': 'http://www.raiplay.it/dirette/rainews24', +        'info_dict': { +            'id': 'd784ad40-e0ae-4a69-aa76-37519d238a9c', +            'display_id': 'rainews24', +            'ext': 'mp4', +            'title': 're:^Diretta di Rai News 24 [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$', +            'description': 'md5:6eca31500550f9376819f174e5644754', +            'uploader': 'Rai News 24', +            'creator': 'Rai News 24', +            'is_live': True, +        }, +        'params': { +            'skip_download': True, +        }, +    } + +    def _real_extract(self, url): +        display_id = self._match_id(url) + +        webpage = self._download_webpage(url, display_id) + +        video_id = self._search_regex( +            r'data-uniquename=["\']ContentItem-(%s)' % RaiBaseIE._UUID_RE, +            webpage, 'content id') + +        return { +            '_type': 'url_transparent', +            'ie_key': RaiPlayIE.ie_key(), +            'url': 'http://www.raiplay.it/dirette/ContentItem-%s.html' % video_id, +            'id': video_id, +            'display_id': display_id, +        } + +  class RaiIE(RaiBaseIE):      _VALID_URL = r'https?://[^/]+\.(?:rai\.(?:it|tv)|rainews\.it)/dl/.+?-(?P<id>%s)(?:-.+?)?\.html' % RaiBaseIE._UUID_RE      _TESTS = [{ @@ -308,11 +345,11 @@ class RaiIE(RaiBaseIE):          media_type = media['type']          if 'Audio' in media_type:              relinker_info = { -                'formats': { +                'formats': [{                      'format_id': media.get('formatoAudio'),                      'url': media['audioUrl'],                      'ext': media.get('formatoAudio'), -                } +                }]              }          elif 'Video' in media_type:              relinker_info = self._extract_relinker_info(media['mediaUri'], content_id) | 
