mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[vevo] Centralize timestamp handling
This commit is contained in:
		| @@ -4,6 +4,7 @@ | |||||||
| from __future__ import absolute_import, unicode_literals | from __future__ import absolute_import, unicode_literals | ||||||
|  |  | ||||||
| import collections | import collections | ||||||
|  | import datetime | ||||||
| import errno | import errno | ||||||
| import io | import io | ||||||
| import json | import json | ||||||
| @@ -688,6 +689,11 @@ class YoutubeDL(object): | |||||||
|         if 'display_id' not in info_dict and 'id' in info_dict: |         if 'display_id' not in info_dict and 'id' in info_dict: | ||||||
|             info_dict['display_id'] = info_dict['id'] |             info_dict['display_id'] = info_dict['id'] | ||||||
|  |  | ||||||
|  |         if info_dict.get('upload_date') is None and info_dict.get('upload_timestamp') is not None: | ||||||
|  |             upload_date = datetime.datetime.utcfromtimestamp( | ||||||
|  |                 info_dict['upload_timestamp']) | ||||||
|  |             info_dict['upload_date'] = upload_date.strftime('%Y%m%d') | ||||||
|  |  | ||||||
|         # This extractors handle format selection themselves |         # This extractors handle format selection themselves | ||||||
|         if info_dict['extractor'] in ['Youku']: |         if info_dict['extractor'] in ['Youku']: | ||||||
|             if download: |             if download: | ||||||
|   | |||||||
| @@ -97,7 +97,9 @@ class InfoExtractor(object): | |||||||
|     thumbnail:      Full URL to a video thumbnail image. |     thumbnail:      Full URL to a video thumbnail image. | ||||||
|     description:    One-line video description. |     description:    One-line video description. | ||||||
|     uploader:       Full name of the video uploader. |     uploader:       Full name of the video uploader. | ||||||
|  |     upload_timestamp:UNIX timestamp of the upload moment. | ||||||
|     upload_date:    Video upload date (YYYYMMDD). |     upload_date:    Video upload date (YYYYMMDD). | ||||||
|  |                     If not explicitly set, calculated from update_timestamp. | ||||||
|     uploader_id:    Nickname or id of the video uploader. |     uploader_id:    Nickname or id of the video uploader. | ||||||
|     location:       Physical location of the video. |     location:       Physical location of the video. | ||||||
|     subtitles:      The subtitle file contents as a dictionary in the format |     subtitles:      The subtitle file contents as a dictionary in the format | ||||||
|   | |||||||
| @@ -2,7 +2,6 @@ from __future__ import unicode_literals | |||||||
|  |  | ||||||
| import re | import re | ||||||
| import xml.etree.ElementTree | import xml.etree.ElementTree | ||||||
| import datetime |  | ||||||
|  |  | ||||||
| from .common import InfoExtractor | from .common import InfoExtractor | ||||||
| from ..utils import ( | from ..utils import ( | ||||||
| @@ -57,7 +56,8 @@ class VevoIE(InfoExtractor): | |||||||
|             'age_limit': 18, |             'age_limit': 18, | ||||||
|             'title': 'Tunnel Vision (Explicit)', |             'title': 'Tunnel Vision (Explicit)', | ||||||
|             'uploader': 'Justin Timberlake', |             'uploader': 'Justin Timberlake', | ||||||
|             'upload_date': '20130703', |             'upload_date': '20130704', | ||||||
|  |             'upload_timestamp': 1372906800, | ||||||
|         }, |         }, | ||||||
|         'params': { |         'params': { | ||||||
|             'skip_download': 'true', |             'skip_download': 'true', | ||||||
| @@ -169,13 +169,13 @@ class VevoIE(InfoExtractor): | |||||||
|  |  | ||||||
|         timestamp_ms = int(self._search_regex( |         timestamp_ms = int(self._search_regex( | ||||||
|             r'/Date\((\d+)\)/', video_info['launchDate'], 'launch date')) |             r'/Date\((\d+)\)/', video_info['launchDate'], 'launch date')) | ||||||
|         upload_date = datetime.datetime.utcfromtimestamp(timestamp_ms // 1000) |  | ||||||
|         return { |         return { | ||||||
|             'id': video_id, |             'id': video_id, | ||||||
|             'title': video_info['title'], |             'title': video_info['title'], | ||||||
|             'formats': formats, |             'formats': formats, | ||||||
|             'thumbnail': video_info['imageUrl'], |             'thumbnail': video_info['imageUrl'], | ||||||
|             'upload_date': upload_date.strftime('%Y%m%d'), |             'upload_timestamp': timestamp_ms // 1000, | ||||||
|             'uploader': video_info['mainArtists'][0]['artistName'], |             'uploader': video_info['mainArtists'][0]['artistName'], | ||||||
|             'duration': video_info['duration'], |             'duration': video_info['duration'], | ||||||
|             'age_limit': age_limit, |             'age_limit': age_limit, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister