Fix Vimeo integration

This commit is contained in:
Thomas Perl 2015-11-13 22:25:37 +01:00
parent bf31b911b6
commit d597500004
2 changed files with 8 additions and 14 deletions

View File

@ -195,7 +195,7 @@ defaults = {
},
'vimeo': {
'fileformat': 'hd', # preferred file format (hd, sd, mobile)
'fileformat': '720p', # preferred file format (see vimeo.py)
},
'extensions': {

View File

@ -48,14 +48,9 @@ SIGNATURE_RE = re.compile(r'"timestamp":(\d+),"signature":"([^"]+)"')
DATA_CONFIG_RE = re.compile(r'data-config-url="([^"]+)"')
# List of qualities, from lowest to highest
FILEFORMAT_RANKING = ['mobile', 'sd', 'hd']
FORMATS = (
('mobile', _('Mobile')),
('sd', _('SD')),
('hd', _('HD')),
)
FILEFORMAT_RANKING = ['270p', '360p', '720p', '1080p']
FORMATS = tuple((x, x) for x in FILEFORMAT_RANKING)
class VimeoError(BaseException): pass
@ -78,14 +73,11 @@ def get_real_download_url(url, preferred_fileformat=None):
data_config_data = util.urlopen(data_config_url).read().decode('utf-8')
data_config = json.loads(data_config_data)
for fileinfo in data_config['request']['files'].values():
if not isinstance(fileinfo, dict):
if not isinstance(fileinfo, list):
continue
for fileformat, keys in fileinfo.items():
if not isinstance(keys, dict):
continue
yield (fileformat, keys['url'])
for item in fileinfo:
yield (item['quality'], item['url'])
fileformat_to_url = dict(get_urls(data_config_url))
@ -103,6 +95,8 @@ def get_real_download_url(url, preferred_fileformat=None):
logger.debug('Picking best format: %s', fileformat)
return fileformat_to_url[fileformat]
return url
def get_vimeo_id(url):
result = MOOGALOOP_RE.match(url)
if result is not None: