[neteasemusic] Do proper rounding conversion of millisecond timestamps/durations

This commit is contained in:
ping 2015-06-21 11:44:50 +08:00
parent af1fa6234e
commit 2da0cad6ae

View file

@ -50,6 +50,10 @@ def extract_formats(cls, info):
}) })
return formats return formats
@classmethod
def convert_milliseconds(cls, ms):
return int(round(ms/1000.0))
def query_api(self, endpoint, video_id, note): def query_api(self, endpoint, video_id, note):
req = compat_urllib_request.Request('%s%s' % (self._API_BASE, endpoint)) req = compat_urllib_request.Request('%s%s' % (self._API_BASE, endpoint))
req.add_header('Referer', self._API_BASE) req.add_header('Referer', self._API_BASE)
@ -143,9 +147,9 @@ def _real_extract(self, url):
'title': info['name'], 'title': info['name'],
'alt_title': alt_title, 'alt_title': alt_title,
'creator': ' / '.join([artist['name'] for artist in info.get('artists', [])]), 'creator': ' / '.join([artist['name'] for artist in info.get('artists', [])]),
'timestamp': int(info.get('album', {}).get('publishTime')/1000), 'timestamp': self.convert_milliseconds(info.get('album', {}).get('publishTime')),
'thumbnail': info.get('album', {}).get('picUrl'), 'thumbnail': info.get('album', {}).get('picUrl'),
'duration': int(info.get('duration', 0)/1000), 'duration': self.convert_milliseconds(info.get('duration', 0)),
'description': lyrics, 'description': lyrics,
'formats': formats, 'formats': formats,
} }
@ -255,7 +259,8 @@ def _real_extract(self, url):
desc = info.get('description') desc = info.get('description')
if info.get('specialType') == 10: # is a chart/toplist if info.get('specialType') == 10: # is a chart/toplist
datestamp = datetime.fromtimestamp(info['updateTime']/1000).strftime('%Y-%m-%d') datestamp = datetime.fromtimestamp(
self.convert_milliseconds(info['updateTime'])).strftime('%Y-%m-%d')
name = '%s %s' % (name, datestamp) name = '%s %s' % (name, datestamp)
entries = [ entries = [
@ -302,7 +307,7 @@ def _real_extract(self, url):
'upload_date': info['publishTime'].replace('-', ''), 'upload_date': info['publishTime'].replace('-', ''),
'formats': formats, 'formats': formats,
'thumbnail': info.get('cover'), 'thumbnail': info.get('cover'),
'duration': int(info.get('duration', 0)/1000), 'duration': self.convert_milliseconds(info.get('duration', 0)),
} }
@ -317,7 +322,7 @@ class NetEaseMusicProgramIE(NetEaseMusicBaseIE):
'title': '不丹足球背后的故事', 'title': '不丹足球背后的故事',
'description': '喜马拉雅人的足球梦 ...', 'description': '喜马拉雅人的足球梦 ...',
'creator': '大话西藏', 'creator': '大话西藏',
'timestamp': 1434179341, 'timestamp': 1434179342,
'upload_date': '20150613', 'upload_date': '20150613',
'duration': 900, 'duration': 900,
}, },
@ -338,7 +343,7 @@ class NetEaseMusicProgramIE(NetEaseMusicBaseIE):
'ext': 'mp3', 'ext': 'mp3',
'title': '25岁你是自在如风的少年<27°C>', 'title': '25岁你是自在如风的少年<27°C>',
'description': 'md5:8d594db46cc3e6509107ede70a4aaa3b', 'description': 'md5:8d594db46cc3e6509107ede70a4aaa3b',
'timestamp': 1434450840, 'timestamp': 1434450841,
'upload_date': '20150616', 'upload_date': '20150616',
}, },
'params': { 'params': {
@ -370,9 +375,9 @@ def _real_extract(self, url):
'title': name, 'title': name,
'description': description, 'description': description,
'creator': info['dj']['brand'], 'creator': info['dj']['brand'],
'timestamp': int(info['createTime']/1000), 'timestamp': self.convert_milliseconds(info['createTime']),
'thumbnail': info['coverUrl'], 'thumbnail': info['coverUrl'],
'duration': int(info.get('duration', 0)/1000), 'duration': self.convert_milliseconds(info.get('duration', 0)),
'formats': formats, 'formats': formats,
} }