From 9895ae88bc0e810542f72bda1f549a11532feb9a Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Fri, 20 Oct 2017 23:21:28 -0700 Subject: [PATCH] Rollback to old ytdl resolver for vimeo --- cmd/ytdl/test_ytdl.py | 8 +++++--- cmd/ytdl/ytdl.py | 9 ++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cmd/ytdl/test_ytdl.py b/cmd/ytdl/test_ytdl.py index 2090047..1de32ae 100644 --- a/cmd/ytdl/test_ytdl.py +++ b/cmd/ytdl/test_ytdl.py @@ -4,9 +4,11 @@ import unittest class TestYtdl(unittest.TestCase): def test_resolve(self): - self.assertIsNotNone(ytdl._resolve('https://youtube.com/watch?v=ygIUF678y40', {'format': 'video', 'quality': 'low'})) - self.assertIsNotNone(ytdl._resolve('https://youtube.com/watch?v=WyaEiO4hyik', {'format': 'audio', 'quality': 'high'})) + self.assertIsNotNone( + ytdl._resolve('https://youtube.com/watch?v=ygIUF678y40', {'format': 'video', 'quality': 'low', 'provider': 'youtube'})) + self.assertIsNotNone( + ytdl._resolve('https://youtube.com/watch?v=WyaEiO4hyik', {'format': 'audio', 'quality': 'high', 'provider': 'youtube'})) def test_vimeo(self): self.assertIsNotNone( - ytdl._resolve('https://vimeo.com/237715420', {'format': 'video', 'quality': 'low'})) + ytdl._resolve('https://vimeo.com/237715420', {'format': 'video', 'quality': 'low', 'provider': 'vimeo'})) diff --git a/cmd/ytdl/ytdl.py b/cmd/ytdl/ytdl.py index 19600e4..bc7c72a 100644 --- a/cmd/ytdl/ytdl.py +++ b/cmd/ytdl/ytdl.py @@ -62,9 +62,16 @@ def _resolve(url, metadata): raise InvalidUsage('Invalid URL') try: + provider = metadata['provider'] + with youtube_dl.YoutubeDL(opts) as ytdl: info = ytdl.extract_info(url, download=False) - return _choose_url(info, metadata) + if provider == 'youtube': + return _choose_url(info, metadata) + elif provider == 'vimeo': + return info['url'] + else: + raise ValueError('undefined provider') except DownloadError: raise except Exception as e: