[youtube] Add fallback for duration extraction (closes #11841)
This commit is contained in:
		| @@ -40,6 +40,7 @@ from ..utils import ( | ||||
|     sanitized_Request, | ||||
|     smuggle_url, | ||||
|     str_to_int, | ||||
|     try_get, | ||||
|     unescapeHTML, | ||||
|     unified_strdate, | ||||
|     unsmuggle_url, | ||||
| @@ -383,6 +384,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'description': 'test chars:  "\'/\\ä↭𝕐\ntest URL: https://github.com/rg3/youtube-dl/issues/1892\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de .', | ||||
|                 'categories': ['Science & Technology'], | ||||
|                 'tags': ['youtube-dl'], | ||||
|                 'duration': 10, | ||||
|                 'like_count': int, | ||||
|                 'dislike_count': int, | ||||
|                 'start_time': 1, | ||||
| @@ -402,6 +404,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'tags': ['Icona Pop i love it', 'sweden', 'pop music', 'big beat records', 'big beat', 'charli', | ||||
|                          'xcx', 'charli xcx', 'girls', 'hbo', 'i love it', "i don't care", 'icona', 'pop', | ||||
|                          'iconic ep', 'iconic', 'love', 'it'], | ||||
|                 'duration': 180, | ||||
|                 'uploader': 'Icona Pop', | ||||
|                 'uploader_id': 'IconaPop', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/IconaPop', | ||||
| @@ -419,6 +422,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'title': 'Justin Timberlake - Tunnel Vision (Explicit)', | ||||
|                 'alt_title': 'Tunnel Vision', | ||||
|                 'description': 'md5:64249768eec3bc4276236606ea996373', | ||||
|                 'duration': 419, | ||||
|                 'uploader': 'justintimberlakeVEVO', | ||||
|                 'uploader_id': 'justintimberlakeVEVO', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/justintimberlakeVEVO', | ||||
| @@ -458,6 +462,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'description': 'test chars:  "\'/\\ä↭𝕐\ntest URL: https://github.com/rg3/youtube-dl/issues/1892\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de .', | ||||
|                 'categories': ['Science & Technology'], | ||||
|                 'tags': ['youtube-dl'], | ||||
|                 'duration': 10, | ||||
|                 'like_count': int, | ||||
|                 'dislike_count': int, | ||||
|             }, | ||||
| @@ -493,6 +498,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'ext': 'm4a', | ||||
|                 'title': 'Afrojack, Spree Wilson - The Spark ft. Spree Wilson', | ||||
|                 'description': 'md5:12e7067fa6735a77bdcbb58cb1187d2d', | ||||
|                 'duration': 244, | ||||
|                 'uploader': 'AfrojackVEVO', | ||||
|                 'uploader_id': 'AfrojackVEVO', | ||||
|                 'upload_date': '20131011', | ||||
| @@ -512,6 +518,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'title': 'Taylor Swift - Shake It Off', | ||||
|                 'alt_title': 'Shake It Off', | ||||
|                 'description': 'md5:95f66187cd7c8b2c13eb78e1223b63c3', | ||||
|                 'duration': 242, | ||||
|                 'uploader': 'TaylorSwiftVEVO', | ||||
|                 'uploader_id': 'TaylorSwiftVEVO', | ||||
|                 'upload_date': '20140818', | ||||
| @@ -529,6 +536,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|             'info_dict': { | ||||
|                 'id': 'T4XJQO3qol8', | ||||
|                 'ext': 'mp4', | ||||
|                 'duration': 219, | ||||
|                 'upload_date': '20100909', | ||||
|                 'uploader': 'The Amazing Atheist', | ||||
|                 'uploader_id': 'TheAmazingAtheist', | ||||
| @@ -546,6 +554,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'ext': 'mp4', | ||||
|                 'title': 'The Witcher 3: Wild Hunt - The Sword Of Destiny Trailer', | ||||
|                 'description': r're:(?s).{100,}About the Game\n.*?The Witcher 3: Wild Hunt.{100,}', | ||||
|                 'duration': 142, | ||||
|                 'uploader': 'The Witcher', | ||||
|                 'uploader_id': 'WitcherGame', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/WitcherGame', | ||||
| @@ -562,6 +571,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'ext': 'mp4', | ||||
|                 'title': 'Dedication To My Ex (Miss That) (Lyric Video)', | ||||
|                 'description': 'md5:33765bb339e1b47e7e72b5490139bb41', | ||||
|                 'duration': 247, | ||||
|                 'uploader': 'LloydVEVO', | ||||
|                 'uploader_id': 'LloydVEVO', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/LloydVEVO', | ||||
| @@ -576,6 +586,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|             'info_dict': { | ||||
|                 'id': '__2ABJjxzNo', | ||||
|                 'ext': 'mp4', | ||||
|                 'duration': 266, | ||||
|                 'upload_date': '20100430', | ||||
|                 'uploader_id': 'deadmau5', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/deadmau5', | ||||
| @@ -596,6 +607,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|             'info_dict': { | ||||
|                 'id': 'lqQg6PlCWgI', | ||||
|                 'ext': 'mp4', | ||||
|                 'duration': 6085, | ||||
|                 'upload_date': '20150827', | ||||
|                 'uploader_id': 'olympic', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/olympic', | ||||
| @@ -615,6 +627,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'id': '_b-2C3KPAM0', | ||||
|                 'ext': 'mp4', | ||||
|                 'stretched_ratio': 16 / 9., | ||||
|                 'duration': 85, | ||||
|                 'upload_date': '20110310', | ||||
|                 'uploader_id': 'AllenMeow', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/AllenMeow', | ||||
| @@ -649,6 +662,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'ext': 'mp4', | ||||
|                 'title': 'md5:7b81415841e02ecd4313668cde88737a', | ||||
|                 'description': 'md5:116377fd2963b81ec4ce64b542173306', | ||||
|                 'duration': 220, | ||||
|                 'upload_date': '20150625', | ||||
|                 'uploader_id': 'dorappi2000', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/dorappi2000', | ||||
| @@ -691,6 +705,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                     'ext': 'mp4', | ||||
|                     'title': 'teamPGP: Rocket League Noob Stream (Main Camera)', | ||||
|                     'description': 'md5:dc7872fb300e143831327f1bae3af010', | ||||
|                     'duration': 7335, | ||||
|                     'upload_date': '20150721', | ||||
|                     'uploader': 'Beer Games Beer', | ||||
|                     'uploader_id': 'beergamesbeer', | ||||
| @@ -703,6 +718,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                     'ext': 'mp4', | ||||
|                     'title': 'teamPGP: Rocket League Noob Stream (kreestuh)', | ||||
|                     'description': 'md5:dc7872fb300e143831327f1bae3af010', | ||||
|                     'duration': 7337, | ||||
|                     'upload_date': '20150721', | ||||
|                     'uploader': 'Beer Games Beer', | ||||
|                     'uploader_id': 'beergamesbeer', | ||||
| @@ -715,6 +731,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                     'ext': 'mp4', | ||||
|                     'title': 'teamPGP: Rocket League Noob Stream (grizzle)', | ||||
|                     'description': 'md5:dc7872fb300e143831327f1bae3af010', | ||||
|                     'duration': 7337, | ||||
|                     'upload_date': '20150721', | ||||
|                     'uploader': 'Beer Games Beer', | ||||
|                     'uploader_id': 'beergamesbeer', | ||||
| @@ -727,6 +744,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                     'ext': 'mp4', | ||||
|                     'title': 'teamPGP: Rocket League Noob Stream (zim)', | ||||
|                     'description': 'md5:dc7872fb300e143831327f1bae3af010', | ||||
|                     'duration': 7334, | ||||
|                     'upload_date': '20150721', | ||||
|                     'uploader': 'Beer Games Beer', | ||||
|                     'uploader_id': 'beergamesbeer', | ||||
| @@ -768,6 +786,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'title': '{dark walk}; Loki/AC/Dishonored; collab w/Elflover21', | ||||
|                 'alt_title': 'Dark Walk', | ||||
|                 'description': 'md5:8085699c11dc3f597ce0410b0dcbb34a', | ||||
|                 'duration': 133, | ||||
|                 'upload_date': '20151119', | ||||
|                 'uploader_id': 'IronSoulElf', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/IronSoulElf', | ||||
| @@ -809,10 +828,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'ext': 'mp4', | ||||
|                 'title': 'md5:e41008789470fc2533a3252216f1c1d1', | ||||
|                 'description': 'md5:a677553cf0840649b731a3024aeff4cc', | ||||
|                 'duration': 721, | ||||
|                 'upload_date': '20150127', | ||||
|                 'uploader_id': 'BerkmanCenter', | ||||
|                 'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/BerkmanCenter', | ||||
|                 'uploader': 'BerkmanCenter', | ||||
|                 'uploader': 'The Berkman Klein Center for Internet & Society', | ||||
|                 'license': 'Creative Commons Attribution license (reuse allowed)', | ||||
|             }, | ||||
|             'params': { | ||||
| @@ -827,6 +847,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'ext': 'mp4', | ||||
|                 'title': 'Democratic Socialism and Foreign Policy | Bernie Sanders', | ||||
|                 'description': 'md5:dda0d780d5a6e120758d1711d062a867', | ||||
|                 'duration': 4060, | ||||
|                 'upload_date': '20151119', | ||||
|                 'uploader': 'Bernie 2016', | ||||
|                 'uploader_id': 'UCH1dpzjCEiGAt8CXkryhkZg', | ||||
| @@ -871,7 +892,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                 'id': 'iqKdEhx-dD4', | ||||
|                 'ext': 'mp4', | ||||
|                 'title': 'Isolation - Mind Field (Ep 1)', | ||||
|                 'description': 'md5:3a72f23c086a1496c9e2c54a25fa0822', | ||||
|                 'description': 'md5:8013b7ddea787342608f63a13ddc9492', | ||||
|                 'duration': 2085, | ||||
|                 'upload_date': '20170118', | ||||
|                 'uploader': 'Vsauce', | ||||
|                 'uploader_id': 'Vsauce', | ||||
| @@ -1516,11 +1538,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|         video_subtitles = self.extract_subtitles(video_id, video_webpage) | ||||
|         automatic_captions = self.extract_automatic_captions(video_id, video_webpage) | ||||
|  | ||||
|         if 'length_seconds' not in video_info: | ||||
|             self._downloader.report_warning('unable to extract video duration') | ||||
|             video_duration = None | ||||
|         else: | ||||
|             video_duration = int(compat_urllib_parse_unquote_plus(video_info['length_seconds'][0])) | ||||
|         video_duration = try_get( | ||||
|             video_info, lambda x: int_or_none(x['length_seconds'][0])) | ||||
|         if not video_duration: | ||||
|             video_duration = parse_duration(self._html_search_meta( | ||||
|                 'duration', video_webpage, 'video duration')) | ||||
|  | ||||
|         # annotations | ||||
|         video_annotations = None | ||||
|   | ||||
		Reference in New Issue
	
	Block a user