import gradio as gr from deep_translator import GoogleTranslator import re # ✅ Extract video ID from any YouTube URL format def extract_video_id(url): match = re.search(r"(?:v=|\/)([0-9A-Za-z_-]{11})", url) return match.group(1) if match else url.strip() # ✅ Agent 1: Simulated YouTube Summary def summarize_youtube(video_url): try: video_id = extract_video_id(video_url) saved_transcripts = { "dQw4w9WgXcQ": "This video explains advanced AI concepts using example 1.", "F9cTlfD7ZGM": "This video explains advanced AI concepts using example 2.", "HMcFwjWVprs": "This video explains advanced AI concepts using example 3.", "xvFZjo5PgG0": "This video explains advanced AI concepts using example 4.", "tVZxRHrhgW8": "This video explains advanced AI concepts using example 5.", ... # Total 100 entries! } 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}" steps = simulate_video_steps(summary) return summary, translation, video_embed_link, steps except Exception as e: return f"❌ Error: {str(e)}", "", "", "" # ✅ Agent 2: Simulated Key Moments / Scene Steps def simulate_video_steps(summary): if not summary or summary.startswith("❌"): return "No steps available." return "\n".join([ "📌 Step 1: Introduction of topic", "🔍 Step 2: Main discussion about agents", "✅ Step 3: Final conclusion & translation" ]) # ✅ Master Agent Workflow def run_agents(url): summary, translation, embed, steps_text = summarize_youtube(url) if embed: video_html = f'''
''' else: video_html = "" return summary, translation, video_html, steps_text # ✅ Gradio App with gr.Blocks() as demo: gr.Markdown("## 🤖 Lead With AI Agents: YouTube Video Analyzer") gr.Markdown("Paste any **YouTube video link** to get AI-powered insights.") 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() steps_output = gr.Textbox(label="🎬 AI Scene Steps / Key Moments") run_btn = gr.Button("▶️ Run Agents") run_btn.click(fn=run_agents, inputs=input_url, outputs=[summary_output, translation_output, video_output, steps_output]) demo.launch()