|
|
|
@ -25,7 +25,6 @@ class VVVVIDIE(InfoExtractor):
|
|
|
|
|
'duration': 239,
|
|
|
|
|
'series': '"Perché dovrei guardarlo?" di Dario Moccia',
|
|
|
|
|
'season_id': '437',
|
|
|
|
|
'season_number': 1,
|
|
|
|
|
'episode': 'Ping Pong',
|
|
|
|
|
'episode_number': 1,
|
|
|
|
|
'episode_id': '3334',
|
|
|
|
@ -75,7 +74,6 @@ class VVVVIDIE(InfoExtractor):
|
|
|
|
|
def _extract_common_video_info(self, video_data):
|
|
|
|
|
return {
|
|
|
|
|
'thumbnail': video_data.get('thumbnail'),
|
|
|
|
|
'episode_number': int_or_none(video_data.get('number')),
|
|
|
|
|
'episode_id': str_or_none(video_data.get('id')),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -145,6 +143,17 @@ class VVVVIDIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
return d
|
|
|
|
|
|
|
|
|
|
info = {}
|
|
|
|
|
|
|
|
|
|
def metadata_from_url(r_url):
|
|
|
|
|
if not info and r_url:
|
|
|
|
|
mobj = re.search(r'_(?:S(\d+))?Ep(\d+)', r_url)
|
|
|
|
|
if mobj:
|
|
|
|
|
info['episode_number'] = int(mobj.group(2))
|
|
|
|
|
season_number = mobj.group(1)
|
|
|
|
|
if season_number:
|
|
|
|
|
info['season_number'] = int(season_number)
|
|
|
|
|
|
|
|
|
|
for quality in ('_sd', ''):
|
|
|
|
|
embed_code = video_data.get('embed_info' + quality)
|
|
|
|
|
if not embed_code:
|
|
|
|
@ -166,9 +175,12 @@ class VVVVIDIE(InfoExtractor):
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
self._sort_formats(formats)
|
|
|
|
|
|
|
|
|
|
info = self._extract_common_video_info(video_data)
|
|
|
|
|
metadata_from_url(video_data.get('thumbnail'))
|
|
|
|
|
info.update(self._extract_common_video_info(video_data))
|
|
|
|
|
info.update({
|
|
|
|
|
'id': video_id,
|
|
|
|
|
'title': title,
|
|
|
|
@ -176,7 +188,6 @@ class VVVVIDIE(InfoExtractor):
|
|
|
|
|
'duration': int_or_none(video_data.get('length')),
|
|
|
|
|
'series': video_data.get('show_title'),
|
|
|
|
|
'season_id': season_id,
|
|
|
|
|
'season_number': video_data.get('season_number'),
|
|
|
|
|
'episode': title,
|
|
|
|
|
'view_count': int_or_none(video_data.get('views')),
|
|
|
|
|
'like_count': int_or_none(video_data.get('video_likes')),
|
|
|
|
@ -211,7 +222,6 @@ class VVVVIDShowIE(VVVVIDIE):
|
|
|
|
|
|
|
|
|
|
entries = []
|
|
|
|
|
for season in (seasons or []):
|
|
|
|
|
season_number = int_or_none(season.get('number'))
|
|
|
|
|
episodes = season.get('episodes') or []
|
|
|
|
|
for episode in episodes:
|
|
|
|
|
if episode.get('playable') is False:
|
|
|
|
@ -227,7 +237,6 @@ class VVVVIDShowIE(VVVVIDIE):
|
|
|
|
|
'url': '/'.join([base_url, season_id, video_id]),
|
|
|
|
|
'title': episode.get('title'),
|
|
|
|
|
'description': episode.get('description'),
|
|
|
|
|
'season_number': season_number,
|
|
|
|
|
'season_id': season_id,
|
|
|
|
|
})
|
|
|
|
|
entries.append(info)
|
|
|
|
|