obs base and handle extract error

This commit is contained in:
simon 2022-05-24 10:00:40 +07:00
parent 37e6f8656a
commit 4e699621a0
No known key found for this signature in database
GPG Key ID: 2C15AA5E89985DD4
1 changed files with 20 additions and 3 deletions

View File

@ -12,8 +12,21 @@ import yt_dlp
class YtWrap:
"""wrap calls to yt"""
def __init__(self, obs):
self.obs = obs
OBS_BASE = {
"default_search": "ytsearch",
"quiet": True,
"check_formats": "selected",
"socket_timeout": 2,
}
def __init__(self, obs_request):
self.obs_request = obs_request
self.build_obs()
def build_obs(self):
"""build yt-dlp obs"""
self.obs = self.OBS_BASE.copy()
self.obs.update(self.obs_request)
def download(self, url):
"""make download request"""
@ -28,6 +41,10 @@ class YtWrap:
def extract(self, url):
"""make extract request"""
response = yt_dlp.YoutubeDL(self.obs).extract_info(url)
try:
response = yt_dlp.YoutubeDL(self.obs).extract_info(url)
except (yt_dlp.utils.ExtractorError, yt_dlp.utils.DownloadError):
print(f"{url}: failed to get info from youtube")
response = False
return response