mirror of
https://github.com/internetarchive/brozzler.git
synced 2025-02-23 16:19:49 -05:00
monkey-patch youtube-dl to short-circuit
video extraction using generic extractor in case of very large url (more than 20 mb) that youtube-dl interprets as html, to avoid spinning forever here: Traceback (most recent call first): File "/opt/brozzler-ve3/lib/python3.5/re.py", line 213, in findall return _compile(pattern, flags).findall(string) File "/opt/brozzler-ve3/lib/python3.5/site-packages/youtube_dl/extractor/generic.py", line 2878, in _real_extract 'uploader': video_uploader, File "/opt/brozzler-ve3/lib/python3.5/site-packages/youtube_dl/extractor/common.py", line 503, in extract ie_result = self._real_extract(url) File "/opt/brozzler-ve3/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 792, in extract_info ie_result = ie.extract(url) File "/opt/brozzler-ve3/lib/python3.5/site-packages/brozzler/worker.py", line 302, in _try_youtube_dl info = ydl.extract_info(str(urlcanon.whatwg(page.url))) File "/opt/brozzler-ve3/lib/python3.5/site-packages/brozzler/worker.py", line 361, in brozzle_page self._try_youtube_dl(ydl, site, page)
This commit is contained in:
parent
b41ccd7e6b
commit
27bdfb65d2
@ -39,6 +39,17 @@ import rethinkdb as r
|
||||
import datetime
|
||||
import urllib.parse
|
||||
|
||||
_orig_webpage_read_content = youtube_dl.extractor.generic.GenericIE._webpage_read_content
|
||||
def _webpage_read_content(self, *args, **kwargs):
|
||||
content = _orig_webpage_read_content(self, *args, **kwargs)
|
||||
if len(content) > 20000000:
|
||||
logging.warn(
|
||||
'bypassing youtube-dl extraction because content is '
|
||||
'too large (%s characters)', len(content))
|
||||
return ''
|
||||
return content
|
||||
youtube_dl.extractor.generic.GenericIE._webpage_read_content = _webpage_read_content
|
||||
|
||||
class ExtraHeaderAdder(urllib.request.BaseHandler):
|
||||
def __init__(self, extra_headers):
|
||||
self.extra_headers = extra_headers
|
||||
|
Loading…
x
Reference in New Issue
Block a user