Fix bug with youtube class and children

This commit is contained in:
Serene-Arc
2021-11-21 11:48:29 +10:00
parent 53562f4873
commit 17939fe47c
3 changed files with 22 additions and 8 deletions

View File

@@ -6,6 +6,7 @@ from typing import Optional
from praw.models import Submission
from bdfr.exceptions import NotADownloadableLinkError
from bdfr.resource import Resource
from bdfr.site_authenticator import SiteAuthenticator
from bdfr.site_downloaders.fallback_downloaders.fallback_downloader import BaseFallbackDownloader
@@ -29,8 +30,9 @@ class YoutubeDlFallback(BaseFallbackDownloader, Youtube):
@staticmethod
def can_handle_link(url: str) -> bool:
attributes = YoutubeDlFallback.get_video_attributes(url)
try:
attributes = YoutubeDlFallback.get_video_attributes(url)
except NotADownloadableLinkError:
return False
if attributes:
return True
else:
return False

View File

@@ -27,10 +27,7 @@ class Youtube(BaseDownloader):
'nooverwrites': True,
}
download_function = self._download_video(ytdl_options)
try:
extension = self.get_video_attributes(self.post.url)['ext']
except KeyError:
raise NotADownloadableLinkError(f'Youtube-DL cannot download URL {self.post.url}')
extension = self.get_video_attributes(self.post.url)['ext']
res = Resource(self.post, self.post.url, download_function, extension)
return [res]
@@ -67,6 +64,10 @@ class Youtube(BaseDownloader):
with yt_dlp.YoutubeDL({'logger': yt_logger, }) as ydl:
try:
result = ydl.extract_info(url, download=False)
return result
except Exception as e:
logger.exception(e)
raise NotADownloadableLinkError(f'Video info extraction failed for {url}')
if 'ext' in result:
return result
else:
raise NotADownloadableLinkError(f'Video info extraction failed for {url}')