mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[instagram] Improve title extraction and extract duration (#28469)
Co-authored-by: Sergey M. <dstftw@gmail.com>
This commit is contained in:
		| @@ -12,6 +12,7 @@ from ..compat import ( | |||||||
| ) | ) | ||||||
| from ..utils import ( | from ..utils import ( | ||||||
|     ExtractorError, |     ExtractorError, | ||||||
|  |     float_or_none, | ||||||
|     get_element_by_attribute, |     get_element_by_attribute, | ||||||
|     int_or_none, |     int_or_none, | ||||||
|     lowercase_escape, |     lowercase_escape, | ||||||
| @@ -32,6 +33,7 @@ class InstagramIE(InfoExtractor): | |||||||
|             'title': 'Video by naomipq', |             'title': 'Video by naomipq', | ||||||
|             'description': 'md5:1f17f0ab29bd6fe2bfad705f58de3cb8', |             'description': 'md5:1f17f0ab29bd6fe2bfad705f58de3cb8', | ||||||
|             'thumbnail': r're:^https?://.*\.jpg', |             'thumbnail': r're:^https?://.*\.jpg', | ||||||
|  |             'duration': 0, | ||||||
|             'timestamp': 1371748545, |             'timestamp': 1371748545, | ||||||
|             'upload_date': '20130620', |             'upload_date': '20130620', | ||||||
|             'uploader_id': 'naomipq', |             'uploader_id': 'naomipq', | ||||||
| @@ -48,6 +50,7 @@ class InstagramIE(InfoExtractor): | |||||||
|             'ext': 'mp4', |             'ext': 'mp4', | ||||||
|             'title': 'Video by britneyspears', |             'title': 'Video by britneyspears', | ||||||
|             'thumbnail': r're:^https?://.*\.jpg', |             'thumbnail': r're:^https?://.*\.jpg', | ||||||
|  |             'duration': 0, | ||||||
|             'timestamp': 1453760977, |             'timestamp': 1453760977, | ||||||
|             'upload_date': '20160125', |             'upload_date': '20160125', | ||||||
|             'uploader_id': 'britneyspears', |             'uploader_id': 'britneyspears', | ||||||
| @@ -86,6 +89,24 @@ class InstagramIE(InfoExtractor): | |||||||
|             'title': 'Post by instagram', |             'title': 'Post by instagram', | ||||||
|             'description': 'md5:0f9203fc6a2ce4d228da5754bcf54957', |             'description': 'md5:0f9203fc6a2ce4d228da5754bcf54957', | ||||||
|         }, |         }, | ||||||
|  |     }, { | ||||||
|  |         # IGTV | ||||||
|  |         'url': 'https://www.instagram.com/tv/BkfuX9UB-eK/', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': 'BkfuX9UB-eK', | ||||||
|  |             'ext': 'mp4', | ||||||
|  |             'title': 'Fingerboarding Tricks with @cass.fb', | ||||||
|  |             'thumbnail': r're:^https?://.*\.jpg', | ||||||
|  |             'duration': 53.83, | ||||||
|  |             'timestamp': 1530032919, | ||||||
|  |             'upload_date': '20180626', | ||||||
|  |             'uploader_id': 'instagram', | ||||||
|  |             'uploader': 'Instagram', | ||||||
|  |             'like_count': int, | ||||||
|  |             'comment_count': int, | ||||||
|  |             'comments': list, | ||||||
|  |             'description': 'Meet Cass Hirst (@cass.fb), a fingerboarding pro who can perform tiny ollies and kickflips while blindfolded.', | ||||||
|  |         } | ||||||
|     }, { |     }, { | ||||||
|         'url': 'https://instagram.com/p/-Cmh1cukG2/', |         'url': 'https://instagram.com/p/-Cmh1cukG2/', | ||||||
|         'only_matching': True, |         'only_matching': True, | ||||||
| @@ -159,7 +180,9 @@ class InstagramIE(InfoExtractor): | |||||||
|             description = try_get( |             description = try_get( | ||||||
|                 media, lambda x: x['edge_media_to_caption']['edges'][0]['node']['text'], |                 media, lambda x: x['edge_media_to_caption']['edges'][0]['node']['text'], | ||||||
|                 compat_str) or media.get('caption') |                 compat_str) or media.get('caption') | ||||||
|  |             title = media.get('title') | ||||||
|             thumbnail = media.get('display_src') or media.get('display_url') |             thumbnail = media.get('display_src') or media.get('display_url') | ||||||
|  |             duration = float_or_none(media.get('video_duration')) | ||||||
|             timestamp = int_or_none(media.get('taken_at_timestamp') or media.get('date')) |             timestamp = int_or_none(media.get('taken_at_timestamp') or media.get('date')) | ||||||
|             uploader = media.get('owner', {}).get('full_name') |             uploader = media.get('owner', {}).get('full_name') | ||||||
|             uploader_id = media.get('owner', {}).get('username') |             uploader_id = media.get('owner', {}).get('username') | ||||||
| @@ -200,9 +223,10 @@ class InstagramIE(InfoExtractor): | |||||||
|                             continue |                             continue | ||||||
|                         entries.append({ |                         entries.append({ | ||||||
|                             'id': node.get('shortcode') or node['id'], |                             'id': node.get('shortcode') or node['id'], | ||||||
|                             'title': 'Video %d' % edge_num, |                             'title': node.get('title') or 'Video %d' % edge_num, | ||||||
|                             'url': node_video_url, |                             'url': node_video_url, | ||||||
|                             'thumbnail': node.get('display_url'), |                             'thumbnail': node.get('display_url'), | ||||||
|  |                             'duration': float_or_none(node.get('video_duration')), | ||||||
|                             'width': int_or_none(try_get(node, lambda x: x['dimensions']['width'])), |                             'width': int_or_none(try_get(node, lambda x: x['dimensions']['width'])), | ||||||
|                             'height': int_or_none(try_get(node, lambda x: x['dimensions']['height'])), |                             'height': int_or_none(try_get(node, lambda x: x['dimensions']['height'])), | ||||||
|                             'view_count': int_or_none(node.get('video_view_count')), |                             'view_count': int_or_none(node.get('video_view_count')), | ||||||
| @@ -239,8 +263,9 @@ class InstagramIE(InfoExtractor): | |||||||
|             'id': video_id, |             'id': video_id, | ||||||
|             'formats': formats, |             'formats': formats, | ||||||
|             'ext': 'mp4', |             'ext': 'mp4', | ||||||
|             'title': 'Video by %s' % uploader_id, |             'title': title or 'Video by %s' % uploader_id, | ||||||
|             'description': description, |             'description': description, | ||||||
|  |             'duration': duration, | ||||||
|             'thumbnail': thumbnail, |             'thumbnail': thumbnail, | ||||||
|             'timestamp': timestamp, |             'timestamp': timestamp, | ||||||
|             'uploader_id': uploader_id, |             'uploader_id': uploader_id, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user