[vine] Remove duplicate metadata, make more robust and modernize (Closes #7215)

This commit is contained in:
Sergey M․ 2015-10-18 09:32:08 +06:00
parent 10c38c7ca2
commit 91816e8f16

View file

@ -1,10 +1,14 @@
# coding: utf-8
from __future__ import unicode_literals from __future__ import unicode_literals
import re import re
import itertools import itertools
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import unified_strdate from ..utils import (
int_or_none,
unified_strdate,
)
class VineIE(InfoExtractor): class VineIE(InfoExtractor):
@ -17,7 +21,6 @@ class VineIE(InfoExtractor):
'ext': 'mp4', 'ext': 'mp4',
'title': 'Chicken.', 'title': 'Chicken.',
'alt_title': 'Vine by Jack Dorsey', 'alt_title': 'Vine by Jack Dorsey',
'description': 'Chicken.',
'upload_date': '20130519', 'upload_date': '20130519',
'uploader': 'Jack Dorsey', 'uploader': 'Jack Dorsey',
'uploader_id': '76', 'uploader_id': '76',
@ -30,7 +33,6 @@ class VineIE(InfoExtractor):
'ext': 'mp4', 'ext': 'mp4',
'title': 'Fuck Da Police #Mikebrown #justice #ferguson #prayforferguson #protesting #NMOS14', 'title': 'Fuck Da Police #Mikebrown #justice #ferguson #prayforferguson #protesting #NMOS14',
'alt_title': 'Vine by Mars Ruiz', 'alt_title': 'Vine by Mars Ruiz',
'description': 'Fuck Da Police #Mikebrown #justice #ferguson #prayforferguson #protesting #NMOS14',
'upload_date': '20140815', 'upload_date': '20140815',
'uploader': 'Mars Ruiz', 'uploader': 'Mars Ruiz',
'uploader_id': '1102363502380728320', 'uploader_id': '1102363502380728320',
@ -43,7 +45,6 @@ class VineIE(InfoExtractor):
'ext': 'mp4', 'ext': 'mp4',
'title': '#mw3 #ac130 #killcam #angelofdeath', 'title': '#mw3 #ac130 #killcam #angelofdeath',
'alt_title': 'Vine by Z3k3', 'alt_title': 'Vine by Z3k3',
'description': '#mw3 #ac130 #killcam #angelofdeath',
'upload_date': '20130430', 'upload_date': '20130430',
'uploader': 'Z3k3', 'uploader': 'Z3k3',
'uploader_id': '936470460173008896', 'uploader_id': '936470460173008896',
@ -56,9 +57,8 @@ class VineIE(InfoExtractor):
'info_dict': { 'info_dict': {
'id': 'e192BnZnZ9V', 'id': 'e192BnZnZ9V',
'ext': 'mp4', 'ext': 'mp4',
'title': u'\u0e22\u0e34\u0e49\u0e21~ \u0e40\u0e02\u0e34\u0e19~ \u0e2d\u0e32\u0e22~ \u0e19\u0e48\u0e32\u0e23\u0e49\u0e32\u0e01\u0e2d\u0e49\u0e30 >//< @n_whitewo @orlameena #lovesicktheseries #lovesickseason2', 'title': 'ยิ้ม~ เขิน~ อาย~ น่าร้ากอ้ะ >//< @n_whitewo @orlameena #lovesicktheseries #lovesickseason2',
'alt_title': 'Vine by Pimry_zaa', 'alt_title': 'Vine by Pimry_zaa',
'description': u'\u0e22\u0e34\u0e49\u0e21~ \u0e40\u0e02\u0e34\u0e19~ \u0e2d\u0e32\u0e22~ \u0e19\u0e48\u0e32\u0e23\u0e49\u0e32\u0e01\u0e2d\u0e49\u0e30 >//< @n_whitewo @orlameena #lovesicktheseries #lovesickseason2',
'upload_date': '20150705', 'upload_date': '20150705',
'uploader': 'Pimry_zaa', 'uploader': 'Pimry_zaa',
'uploader_id': '1135760698325307392', 'uploader_id': '1135760698325307392',
@ -80,25 +80,26 @@ def _real_extract(self, url):
formats = [{ formats = [{
'format_id': '%(format)s-%(rate)s' % f, 'format_id': '%(format)s-%(rate)s' % f,
'vcodec': f['format'], 'vcodec': f.get('format'),
'quality': f['rate'], 'quality': f.get('rate'),
'url': f['videoUrl'], 'url': f['videoUrl'],
} for f in data['videoUrls']] } for f in data['videoUrls'] if f.get('videoUrl')]
self._sort_formats(formats) self._sort_formats(formats)
username = data.get('username')
return { return {
'id': video_id, 'id': video_id,
'title': data['description'], 'title': data.get('description') or self._og_search_title(webpage),
'alt_title': 'Vine by %s' % data['username'], 'alt_title': 'Vine by %s' % username if username else self._og_search_description(webpage, default=None),
'description': data['description'], 'thumbnail': data.get('thumbnailUrl'),
'thumbnail': data['thumbnailUrl'], 'upload_date': unified_strdate(data.get('created')),
'upload_date': unified_strdate(data['created']), 'uploader': username,
'uploader': data['username'], 'uploader_id': data.get('userIdStr'),
'uploader_id': data['userIdStr'], 'like_count': int_or_none(data.get('likes', {}).get('count')),
'like_count': data['likes']['count'], 'comment_count': int_or_none(data.get('comments', {}).get('count')),
'comment_count': data['comments']['count'], 'repost_count': int_or_none(data.get('reposts', {}).get('count')),
'repost_count': data['reposts']['count'],
'formats': formats, 'formats': formats,
} }