|
|
@ -864,6 +864,30 @@ class YoutubeIE(YoutubeBaseInfoExtractor): |
|
|
|
'skip_download': True, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
# YouTube Red video with episode data |
|
|
|
'url': 'https://www.youtube.com/watch?v=iqKdEhx-dD4', |
|
|
|
'info_dict': { |
|
|
|
'id': 'iqKdEhx-dD4', |
|
|
|
'ext': 'mp4', |
|
|
|
'title': 'Isolation - Mind Field (Ep 1)', |
|
|
|
'description': 'md5:3a72f23c086a1496c9e2c54a25fa0822', |
|
|
|
'upload_date': '20170118', |
|
|
|
'uploader': 'Vsauce', |
|
|
|
'uploader_id': 'Vsauce', |
|
|
|
'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/Vsauce', |
|
|
|
'license': 'Standard YouTube License', |
|
|
|
'series': 'Mind Field', |
|
|
|
'season_number': 1, |
|
|
|
'episode_number': 1, |
|
|
|
}, |
|
|
|
'params': { |
|
|
|
'skip_download': True, |
|
|
|
}, |
|
|
|
'expected_warnings': [ |
|
|
|
'Skipping DASH manifest', |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
# itag 212 |
|
|
|
'url': '1t24XAntNCY', |
|
|
@ -1454,6 +1478,16 @@ class YoutubeIE(YoutubeBaseInfoExtractor): |
|
|
|
else: |
|
|
|
video_alt_title = video_creator = None |
|
|
|
|
|
|
|
m_episode = re.search( |
|
|
|
r'<div[^>]+id="watch7-headline"[^>]*>\s*<span[^>]*>.*?>(?P<series>[^<]+)</a></b>\s*S(?P<season>\d+)\s*•\s*E(?P<episode>\d+)</span>', |
|
|
|
video_webpage) |
|
|
|
if m_episode: |
|
|
|
series = m_episode.group('series') |
|
|
|
season_number = int(m_episode.group('season')) |
|
|
|
episode_number = int(m_episode.group('episode')) |
|
|
|
else: |
|
|
|
series = season_number = episode_number = None |
|
|
|
|
|
|
|
m_cat_container = self._search_regex( |
|
|
|
r'(?s)<h4[^>]*>\s*Category\s*</h4>\s*<ul[^>]*>(.*?)</ul>', |
|
|
|
video_webpage, 'categories', default=None) |
|
|
@ -1743,6 +1777,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor): |
|
|
|
'is_live': is_live, |
|
|
|
'start_time': start_time, |
|
|
|
'end_time': end_time, |
|
|
|
'series': series, |
|
|
|
'season_number': season_number, |
|
|
|
'episode_number': episode_number, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|