Moved cookie loader to its own function, made errors for cookies failing
This commit is contained in:
parent
67604ec46c
commit
42d4f59e01
|
@ -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)
|
||||||
|
|
||||||
|
@ -121,7 +124,6 @@ class YouTubeTranscriptApi():
|
||||||
:rtype [{'text': str, 'start': float, 'end': float}]:
|
:rtype [{'text': str, 'start': float, 'end': float}]:
|
||||||
"""
|
"""
|
||||||
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):
|
||||||
|
@ -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
|
||||||
|
|
|
@ -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'
|
||||||
|
|
Loading…
Reference in New Issue