yplam's picture
add more tools
7c21d30
import os
from youtube_transcript_api import YouTubeTranscriptApi
from youtube_transcript_api.proxies import GenericProxyConfig
from langchain_core.tools import tool
@tool
def youtube_transcript(video_url: str) -> str:
"""
Extracts the transcript from a YouTube video url
Args:
video_url: The url of the YouTube video
Returns:
The transcript of the YouTube video
"""
print(f"Extracting transcript from: {video_url}")
try:
ytt_api = YouTubeTranscriptApi()
if os.getenv("PROXY_URL"):
ytt_api = YouTubeTranscriptApi(
proxy_config=GenericProxyConfig(
http_url=os.getenv("PROXY_URL"),
https_url=os.getenv("PROXY_URL"),
)
)
video_id = get_video_id(video_url)
transcript = ytt_api.fetch(video_id)
print(f"Transcript: {transcript}")
return transcript
except Exception as e:
print(f"Error extracting transcript: {e}")
return ""
def get_video_id(url: str) -> str:
"""
Extracts the video id from a YouTube url
"""
print(f"Extracting video id from: {url}")
return url.split("v=")[1]