mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +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