[vevo] Centralize timestamp handling

This commit is contained in:
Philipp Hagemeister 2014-03-13 15:30:25 +01:00
parent 9b69af5342
commit 9d2ecdbc71
3 changed files with 12 additions and 4 deletions

View File

@ -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 @@ def process_video_result(self, info_dict, download=True):
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:

View File

@ -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

View File

@ -2,7 +2,6 @@
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 @@ def _real_extract(self, url):
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,