File size: 899 Bytes
46fec08 34bd4c2 46fec08 34bd4c2 46fec08 3cd929c 34bd4c2 46fec08 34bd4c2 46fec08 3cd929c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | from langchain_core.tools import tool
from loguru import logger
from youtube_transcript_api import YouTubeTranscriptApi
@tool("youtube_transcript_tool", parse_docstring=True)
def youtube_transcript(video_id: str) -> str:
"""
Fetches the transcript of a YouTube video using its video ID.
Args:
video_id (str): The unique identifier of a YouTube video, e.g., '12345' from https://www.youtube.com/watch?v=12345.
Returns:
str: The transcript of the specified YouTube video as bullet points.
"""
logger.info(f"use youtube_transcript with param: {video_id}")
try:
transcript = YouTubeTranscriptApi.get_transcript(video_id)
bullet_points = '\n'.join(f"- {entry['text']}" for entry in transcript)
return bullet_points
except Exception as e:
logger.error(f"Failed to fetch transcript: {e}")
return f"Error: {str(e)}"
|