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

View File

@ -55,6 +55,14 @@ class TranslationLanguageNotAvailable(CouldNotRetrieveTranscript):
CAUSE_MESSAGE = 'The requested translation language is not available' 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): class NoTranscriptFound(CouldNotRetrieveTranscript):
CAUSE_MESSAGE = ( CAUSE_MESSAGE = (
'No transcripts were found for any of the requested language codes: {requested_language_codes}\n\n' 'No transcripts were found for any of the requested language codes: {requested_language_codes}\n\n'