Skip to content

Commit 2c78c27

Browse files
fix(youtube): use YouTubeTranscriptApi().list() for v1+ compatibility (#335)
### Summary This fixes an AttributeError caused by `YouTubeTranscriptApi.list_transcripts()` being removed in recent versions of `youtube-transcript-api`. The loader now instantiates `YouTubeTranscriptApi()` and calls the instance method `.list(video_id)`. ### Problem Reproduction: ```python from langchain_community.document_loaders import YoutubeLoader loader = YoutubeLoader.from_youtube_url("https://www.youtube.com/watch?v=QsYGlZkevEg", add_video_info=False) loader.load() # => AttributeError: type object 'YouTubeTranscriptApi' has no attribute 'list_transcripts' Co-authored-by: Mason Daugherty <[email protected]>
1 parent 54d478e commit 2c78c27

File tree

1 file changed

+4
-2
lines changed
  • libs/community/langchain_community/document_loaders

1 file changed

+4
-2
lines changed

libs/community/langchain_community/document_loaders/youtube.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,8 @@ def load(self) -> List[Document]:
259259
self._metadata.update(video_info)
260260

261261
try:
262-
transcript_list = YouTubeTranscriptApi.list_transcripts(self.video_id)
262+
ytt_api = YouTubeTranscriptApi()
263+
transcript_list = ytt_api.list(self.video_id)
263264
except TranscriptsDisabled:
264265
return []
265266

@@ -412,7 +413,8 @@ def validate_channel_or_videoIds_is_set(cls, values: Any) -> Any:
412413
def _get_transcripe_for_video_id(self, video_id: str) -> str:
413414
from youtube_transcript_api import NoTranscriptFound, YouTubeTranscriptApi
414415

415-
transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
416+
ytt_api = YouTubeTranscriptApi()
417+
transcript_list = ytt_api.list(video_id)
416418
try:
417419
transcript = transcript_list.find_transcript([self.captions_language])
418420
except NoTranscriptFound:

0 commit comments

Comments
 (0)