Moved cookie loader to its own function, made errors for cookies failing

This commit is contained in:
danielcliu 2020-01-27 21:46:37 -08:00
parent 67604ec46c
commit 42d4f59e01
2 changed files with 15 additions and 5 deletions

View File

@ -6,6 +6,10 @@ except ImportError:
from ._transcripts import TranscriptListFetcher
from ._errors import (
CookiePathInvalid,
CookiesInvalid
)
class YouTubeTranscriptApi():
@classmethod
@ -60,7 +64,6 @@ class YouTubeTranscriptApi():
with requests.Session() as http_client:
if cookies:
http_client.cookies = cls.load_cookies(cookies)
http_client.proxies = proxies if proxies else {}
return TranscriptListFetcher(http_client).fetch(video_id)
@ -122,7 +125,6 @@ class YouTubeTranscriptApi():
"""
return cls.list_transcripts(video_id, proxies, cookies).find_transcript(languages).fetch()
@classmethod
def load_cookies(cls, cookies):
cj = {}
@ -130,9 +132,9 @@ class YouTubeTranscriptApi():
cj = cookiejar.MozillaCookieJar()
cj.load(cookies)
except IOError as e:
print("Warning: Path for cookies file was not valid. Did not load any cookies")
raise CookiePathInvalid
except FileNotFoundError as e:
print("Warning: Path for cookies file was not valid. Did not load any cookies")
raise CookiePathInvalid
if not cj:
raise IOError
raise CookiesInvalid
return cj

View File

@ -55,6 +55,14 @@ class TranslationLanguageNotAvailable(CouldNotRetrieveTranscript):
CAUSE_MESSAGE = 'The requested translation language is not available'
class CookiePathInvalid(CouldNotRetrieveTranscript):
CAUSE_MESSAGE = 'Path to cookie file was not valid'
class CookiesInvalid(CouldNotRetrieveTranscript):
CAUSE_MESSAGE = 'The cookies provided are not valid (may have expired)'
class NoTranscriptFound(CouldNotRetrieveTranscript):
CAUSE_MESSAGE = (
'No transcripts were found for any of the requested language codes: {requested_language_codes}\n\n'