Spaces:
Sleeping
Sleeping
# import gradio as gr | |
# from deep_translator import GoogleTranslator | |
# import re | |
# # β Extract video ID from YouTube URL | |
# def extract_video_id(url): | |
# regex = r"(?:v=|\/)([0-9A-Za-z_-]{11})" | |
# match = re.search(regex, url) | |
# return match.group(1) if match else url.strip() | |
# # β Agent 1: Summarizer (Simulated) | |
# def summarize_youtube(video_url): | |
# try: | |
# video_id = extract_video_id(video_url) | |
# saved_transcripts = { | |
# "dQw4w9WgXcQ": "We're no strangers to love. You know the rules and so do I...", | |
# "F9cTlfD7ZGM": "This is a video about AI agents and how they collaborate.", | |
# "HMcFwjWVprs": "This presentation explains the GenAI protocol and its future." | |
# } | |
# if video_id not in saved_transcripts: | |
# return "β Transcript not available for this video.", "", "" | |
# summary = saved_transcripts[video_id] | |
# translation = GoogleTranslator(source='auto', target='es').translate(summary) | |
# video_embed_link = f"https://www.youtube.com/embed/{video_id}" | |
# return summary, translation, video_embed_link | |
# except Exception as e: | |
# return f"β Error: {str(e)}", "", "" | |
# # β Master Agent Workflow with Embedded YouTube Preview | |
# def run_agents(url): | |
# summary, translation, embed = summarize_youtube(url) | |
# if embed: | |
# video_html = f''' | |
# <div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;"> | |
# <iframe src="{embed}" style="position:absolute;top:0;left:0;width:100%;height:100%;" | |
# frameborder="0" allowfullscreen></iframe> | |
# </div> | |
# ''' | |
# else: | |
# video_html = "" | |
# return summary, translation, video_html | |
# # β Gradio UI | |
# with gr.Blocks() as demo: | |
# gr.Markdown("## π₯ AI Agents: YouTube Summary + Spanish Translator") | |
# gr.Markdown("π Enter a YouTube video URL to simulate AI agent collaboration.") | |
# input_url = gr.Textbox(label="Paste YouTube Link") | |
# summary_output = gr.Textbox(label="π§ English Summary") | |
# translation_output = gr.Textbox(label="π Spanish Translation") | |
# video_output = gr.HTML() | |
# run_btn = gr.Button("π Run Agents") | |
# run_btn.click(fn=run_agents, inputs=input_url, outputs=[summary_output, translation_output, video_output]) | |
# demo.launch() | |
import gradio as gr | |
from deep_translator import GoogleTranslator | |
import re | |
from saved_transcripts import saved_transcripts # β Import 100 video transcripts | |
# β Extract video ID from YouTube URL | |
def extract_video_id(url): | |
regex = r"(?:v=|\/)([0-9A-Za-z_-]{11})" | |
match = re.search(regex, url) | |
return match.group(1) if match else url.strip() | |
# β Agent 1: Summarizer (Simulated) | |
def summarize_youtube(video_url): | |
try: | |
video_id = extract_video_id(video_url) | |
if video_id not in saved_transcripts: | |
return "β Transcript not available for this video.", "", "" | |
summary = saved_transcripts[video_id] | |
translation = GoogleTranslator(source='auto', target='es').translate(summary) | |
video_embed_link = f"https://www.youtube.com/embed/{video_id}" | |
return summary, translation, video_embed_link | |
except Exception as e: | |
return f"β Error: {str(e)}", "", "" | |
# β Master Agent Workflow with Embedded YouTube Preview | |
def run_agents(url): | |
summary, translation, embed = summarize_youtube(url) | |
if embed: | |
video_html = f''' | |
<div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;"> | |
<iframe src="{embed}" style="position:absolute;top:0;left:0;width:100%;height:100%;" | |
frameborder="0" allowfullscreen></iframe> | |
</div> | |
''' | |
else: | |
video_html = "" | |
return summary, translation, video_html | |
# β Gradio UI | |
with gr.Blocks() as demo: | |
gr.Markdown("## π₯ AI Agents: YouTube Summary + Spanish Translator") | |
gr.Markdown("π Enter a YouTube video URL to simulate AI agent collaboration.") | |
input_url = gr.Textbox(label="Paste YouTube Link") | |
summary_output = gr.Textbox(label="π§ English Summary") | |
translation_output = gr.Textbox(label="π Spanish Translation") | |
video_output = gr.HTML() | |
run_btn = gr.Button("π Run Agents") | |
run_btn.click(fn=run_agents, inputs=input_url, outputs=[summary_output, translation_output, video_output]) | |
demo.launch() | |