-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
'params': {
'skip_download': True,
},
+ }, {
+ # video_type == 'video/dash'
+ 'url': 'https://www.vvvvid.it/show/683/made-in-abyss/1542/693786/nanachi',
+ 'info_dict': {
+ 'id': '693786',
+ 'ext': 'mp4',
+ 'title': 'Nanachi',
+ },
+ 'params': {
+ 'skip_download': True,
+ 'format': 'mp4',
+ },
}, {
'url': 'https://www.vvvvid.it/show/434/perche-dovrei-guardarlo-di-dario-moccia/437/489048',
'only_matching': True
}
def _real_extract(self, url):
- show_id, season_id, video_id = re.match(self._VALID_URL, url).groups()
+ show_id, season_id, video_id = self._match_valid_url(url).groups()
response = self._download_info(
show_id, 'season/%s' % season_id,
})
is_youtube = True
break
+ elif video_type == 'video/dash':
+ formats.extend(self._extract_m3u8_formats(
+ embed_code, video_id, 'mp4', m3u8_id='hls', fatal=False))
else:
formats.extend(self._extract_wowza_formats(
'http://sb.top-ix.org/videomg/_definst_/mp4:%s/playlist.m3u8' % embed_code, video_id))
metadata_from_url(embed_code)
if not is_youtube:
- self._sort_formats(formats)
info['formats'] = formats
metadata_from_url(video_data.get('thumbnail'))
return info
-class VVVVIDShowIE(VVVVIDIE):
+class VVVVIDShowIE(VVVVIDIE): # XXX: Do not subclass from concrete IE
_VALID_URL = r'(?P<base_url>%s(?P<id>\d+)(?:/(?P<show_title>[^/?&#]+))?)/?(?:[?#&]|$)' % VVVVIDIE._VALID_URL_BASE
_TESTS = [{
'url': 'https://www.vvvvid.it/show/156/psyco-pass',
}]
def _real_extract(self, url):
- base_url, show_id, show_title = re.match(self._VALID_URL, url).groups()
+ base_url, show_id, show_title = self._match_valid_url(url).groups()
seasons = self._download_info(
show_id, 'seasons/', show_title)