Spaces:
Running
Running
File size: 1,235 Bytes
c6f2536 5b9992a adb03d1 c6f2536 adb03d1 28868d4 3befc55 adb03d1 c6f2536 ab498f8 3befc55 c6f2536 adb03d1 5b9992a 49c84c9 5b9992a adb03d1 5b9992a 49c84c9 5b9992a c6f2536 49c84c9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import gradio as gr
from youtube_transcript_api import YouTubeTranscriptApi
from youtube_transcript_api.proxies import WebshareProxyConfig
# Initialize the YouTubeTranscriptApi with proxy configuration
ytt_api = YouTubeTranscriptApi(
proxy_config=WebshareProxyConfig(
proxy_username="tlaukrdr", # Replace with your proxy username
proxy_password="mc1aumn9xbhb" # Replace with your proxy password
)
)
# Function to fetch and format YouTube transcript using the video ID
def fetch_transcript(video_id: str):
try:
transcript_obj = ytt_api.fetch(video_id)
# Extract and join only the text fields from FetchedTranscriptSnippet objects
full_text = " ".join([snippet.text for snippet in transcript_obj.snippets])
return full_text
except Exception as e:
return f"Error fetching transcript: {str(e)}"
# Gradio Interface for API (no UI)
iface = gr.Interface(
fn=fetch_transcript,
inputs=gr.Textbox(label="Enter YouTube Video ID"),
outputs=gr.Textbox(label="Transcript"),
live=False,
api=True # This flag turns the interface into an API
)
# Launch the Gradio app in API mode
iface.launch(share=True) # share=True allows external access to the API
|