mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-25 11:41:52 +00:00
[vvvvid] fix season metadata extraction(#18130)
This commit is contained in:
parent
d0d838638c
commit
75972e200d
1 changed files with 15 additions and 6 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue