Spaces:
Sleeping
Sleeping
| import os | |
| from youtube_transcript_api import YouTubeTranscriptApi | |
| from youtube_transcript_api.proxies import GenericProxyConfig | |
| from langchain_core.tools import 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] | |