Added cookies parameter to api class methods
This commit is contained in:
		
							parent
							
								
									edefeeaf1d
								
							
						
					
					
						commit
						02b1978217
					
				|  | @ -1,11 +1,15 @@ | ||||||
| import requests | import requests | ||||||
|  | try: | ||||||
|  |     import http.cookiejar as cookiejar | ||||||
|  | except ImportError: | ||||||
|  |     import cookielib as cookiejar | ||||||
| 
 | 
 | ||||||
| from ._transcripts import TranscriptListFetcher | from ._transcripts import TranscriptListFetcher | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class YouTubeTranscriptApi(): | class YouTubeTranscriptApi(): | ||||||
|     @classmethod |     @classmethod | ||||||
|     def list_transcripts(cls, video_id, proxies=None): |     def list_transcripts(cls, video_id, proxies=None, cookies=None): | ||||||
|         """ |         """ | ||||||
|         Retrieves the list of transcripts which are available for a given video. It returns a `TranscriptList` object |         Retrieves the list of transcripts which are available for a given video. It returns a `TranscriptList` object | ||||||
|         which is iterable and provides methods to filter the list of transcripts for specific languages. While iterating |         which is iterable and provides methods to filter the list of transcripts for specific languages. While iterating | ||||||
|  | @ -51,12 +55,17 @@ class YouTubeTranscriptApi(): | ||||||
|         :return: the list of available transcripts |         :return: the list of available transcripts | ||||||
|         :rtype TranscriptList: |         :rtype TranscriptList: | ||||||
|         """ |         """ | ||||||
|  |         print(cookies) | ||||||
|         with requests.Session() as http_client: |         with requests.Session() as http_client: | ||||||
|  |             if cookies: | ||||||
|  |                 cj = cookiejar.MozillaCookieJar() | ||||||
|  |                 cj.load(cookies) | ||||||
|  |                 http_client.cookies = cj | ||||||
|             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) | ||||||
| 
 | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
|     def get_transcripts(cls, video_ids, languages=('en',), continue_after_error=False, proxies=None): |     def get_transcripts(cls, video_ids, languages=('en',), continue_after_error=False, proxies=None, cookies=None): | ||||||
|         """ |         """ | ||||||
|         Retrieves the transcripts for a list of videos. |         Retrieves the transcripts for a list of videos. | ||||||
| 
 | 
 | ||||||
|  | @ -80,7 +89,7 @@ class YouTubeTranscriptApi(): | ||||||
| 
 | 
 | ||||||
|         for video_id in video_ids: |         for video_id in video_ids: | ||||||
|             try: |             try: | ||||||
|                 data[video_id] = cls.get_transcript(video_id, languages, proxies) |                 data[video_id] = cls.get_transcript(video_id, languages, proxies, cookies) | ||||||
|             except Exception as exception: |             except Exception as exception: | ||||||
|                 if not continue_after_error: |                 if not continue_after_error: | ||||||
|                     raise exception |                     raise exception | ||||||
|  | @ -90,7 +99,7 @@ class YouTubeTranscriptApi(): | ||||||
|         return data, unretrievable_videos |         return data, unretrievable_videos | ||||||
| 
 | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
|     def get_transcript(cls, video_id, languages=('en',), proxies=None): |     def get_transcript(cls, video_id, languages=('en',), proxies=None, cookies=None): | ||||||
|         """ |         """ | ||||||
|         Retrieves the transcript for a single video. This is just a shortcut for calling:: |         Retrieves the transcript for a single video. This is just a shortcut for calling:: | ||||||
| 
 | 
 | ||||||
|  | @ -107,4 +116,4 @@ class YouTubeTranscriptApi(): | ||||||
|         :return: a list of dictionaries containing the 'text', 'start' and 'duration' keys |         :return: a list of dictionaries containing the 'text', 'start' and 'duration' keys | ||||||
|         :rtype [{'text': str, 'start': float, 'end': float}]: |         :rtype [{'text': str, 'start': float, 'end': float}]: | ||||||
|         """ |         """ | ||||||
|         return cls.list_transcripts(video_id, proxies).find_transcript(languages).fetch() |         return cls.list_transcripts(video_id, proxies, cookies).find_transcript(languages).fetch() | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue