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)}"