diff --git a/pywb/webapp/live_rewrite_handler.py b/pywb/webapp/live_rewrite_handler.py index 797c6d24..505f8a0b 100644 --- a/pywb/webapp/live_rewrite_handler.py +++ b/pywb/webapp/live_rewrite_handler.py @@ -229,7 +229,7 @@ class RewriteHandler(SearchPageWbUrlHandler): msg = ('youtube-dl is not installed, pip install youtube-dl to ' + 'enable improved video proxy') - return WbResponse.text_response(msg=msg, status='404 Not Found') + return WbResponse.text_response(text=msg, status='404 Not Found') #if info and info.formats and len(info.formats) == 1: @@ -256,14 +256,14 @@ class RewriteHandler(SearchPageWbUrlHandler): #================================================================= class YoutubeDLWrapper(object): - """ YoutubeDL wrapper, inits youtubee-dil if it is available + """ YoutubeDL wrapper, inits youtubee-dl if it is available """ def __init__(self): try: from youtube_dl import YoutubeDL as YoutubeDL except ImportError: #pragma: no cover self.ydl = None - pass + return self.ydl = YoutubeDL(dict(simulate=True, youtube_include_dash_manifest=False)) diff --git a/tests/test_live_proxy.py b/tests/test_live_proxy.py index e5cfc106..6e6b7161 100644 --- a/tests/test_live_proxy.py +++ b/tests/test_live_proxy.py @@ -9,7 +9,6 @@ from pywb.webapp.pywb_init import create_wb_router from pywb.framework.wsgi_wrappers import init_app import webtest import shutil -import pytest import pywb.webapp.live_rewrite_handler @@ -48,6 +47,14 @@ class ProxyRequest(BaseHTTPRequestHandler): self.do_GET() +#================================================================= +class MockYTDWrapper(object): + def extract_info(self, url): + return {'mock': 'youtube_dl_data'} + + +pywb.webapp.live_rewrite_handler.YoutubeDLWrapper = MockYTDWrapper + #================================================================= class TestProxyLiveRewriter: def setup(self): @@ -163,8 +170,6 @@ class TestProxyLiveRewriter: assert len(self.cache) == 1 def test_echo_proxy_video_info(self): - yt = pytest.importorskip('youtube_dl') - resp = self.testapp.get('/rewrite/vi_/https://www.youtube.com/watch?v=DjFZyFWSt1M') assert resp.status_int == 200 assert resp.content_type == RewriteHandler.YT_DL_TYPE, resp.content_type @@ -181,8 +186,6 @@ class TestProxyLiveRewriter: assert RewriteHandler.create_cache_key('v:', 'https://www.youtube.com/watch?v=DjFZyFWSt1M') in self.cache def test_echo_proxy_video_with_referrer(self): - yt = pytest.importorskip('youtube_dl') - headers = [('Range', 'bytes=1000-2000'), ('Referer', 'http://localhost:80/rewrite/https://example.com/')] resp = self.testapp.get('/rewrite/http://www.youtube.com/watch?v=DjFZyFWSt1M', headers=headers) diff --git a/tests/test_live_rewriter.py b/tests/test_live_rewriter.py index 741d527f..f07e1cbb 100644 --- a/tests/test_live_rewriter.py +++ b/tests/test_live_rewriter.py @@ -2,9 +2,19 @@ from pywb.webapp.live_rewrite_handler import RewriteHandler from pywb.apps.cli import LiveCli from pywb.framework.wsgi_wrappers import init_app import webtest -import pytest +import pywb.webapp.live_rewrite_handler +#================================================================= +class MockYTDWrapper(object): + def extract_info(self, url): + return {'mock': 'youtube_dl_data'} + + +pywb.webapp.live_rewrite_handler.YoutubeDLWrapper = MockYTDWrapper + + +#================================================================= class TestLiveRewriter: def setup(self): self.app = LiveCli(['-f']).application @@ -41,7 +51,6 @@ class TestLiveRewriter: assert resp.status_int == 400 def test_live_video_info(self): - yt = pytest.importorskip('youtube_dl') resp = self.testapp.get('/live/vi_/https://www.youtube.com/watch?v=DjFZyFWSt1M') assert resp.status_int == 200 assert resp.content_type == RewriteHandler.YT_DL_TYPE, resp.content_type