asad231 commited on
Commit
c1701a5
Β·
verified Β·
1 Parent(s): e7a056d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -50
app.py CHANGED
@@ -2,78 +2,52 @@ import gradio as gr
2
  from deep_translator import GoogleTranslator
3
  import re
4
 
5
- # βœ… Extract video ID from any YouTube URL format
6
  def extract_video_id(url):
7
- match = re.search(r"(?:v=|\/)([0-9A-Za-z_-]{11})", url)
 
8
  return match.group(1) if match else url.strip()
9
 
10
- # βœ… Agent 1: Simulated YouTube Summary
11
  def summarize_youtube(video_url):
12
  try:
13
  video_id = extract_video_id(video_url)
14
 
15
  saved_transcripts = {
16
- "dQw4w9WgXcQ": "This video explains advanced AI concepts using example 1.",
17
- "F9cTlfD7ZGM": "This video explains advanced AI concepts using example 2.",
18
- "HMcFwjWVprs": "This video explains advanced AI concepts using example 3.",
19
- "xvFZjo5PgG0": "This video explains advanced AI concepts using example 4.",
20
- "tVZxRHrhgW8": "This video explains advanced AI concepts using example 5.",
21
- ...
22
- # Total 100 entries!
23
- }
24
 
25
  if video_id not in saved_transcripts:
26
- return "❌ Transcript not available for this video.", "", "", ""
27
 
28
  summary = saved_transcripts[video_id]
29
  translation = GoogleTranslator(source='auto', target='es').translate(summary)
30
  video_embed_link = f"https://www.youtube.com/embed/{video_id}"
31
- steps = simulate_video_steps(summary)
32
-
33
- return summary, translation, video_embed_link, steps
34
  except Exception as e:
35
- return f"❌ Error: {str(e)}", "", "", ""
36
-
37
- # βœ… Agent 2: Simulated Key Moments / Scene Steps
38
- def simulate_video_steps(summary):
39
- if not summary or summary.startswith("❌"):
40
- return "No steps available."
41
-
42
- return "\n".join([
43
- "πŸ“Œ Step 1: Introduction of topic",
44
- "πŸ” Step 2: Main discussion about agents",
45
- "βœ… Step 3: Final conclusion & translation"
46
- ])
47
-
48
- # βœ… Master Agent Workflow
49
- def run_agents(url):
50
- summary, translation, embed, steps_text = summarize_youtube(url)
51
-
52
- if embed:
53
- video_html = f'''
54
- <div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;">
55
- <iframe src="{embed}" style="position:absolute;top:0;left:0;width:100%;height:100%;"
56
- frameborder="0" allowfullscreen></iframe>
57
- </div>
58
- '''
59
- else:
60
- video_html = ""
61
-
62
- return summary, translation, video_html, steps_text
63
 
64
  # βœ… Gradio App
65
  with gr.Blocks() as demo:
66
- gr.Markdown("## πŸ€– Lead With AI Agents: YouTube Video Analyzer")
67
- gr.Markdown("Paste any **YouTube video link** to get AI-powered insights.")
68
 
69
- input_url = gr.Textbox(label="πŸ”— Paste YouTube Link")
70
  summary_output = gr.Textbox(label="🧠 English Summary")
71
  translation_output = gr.Textbox(label="🌍 Spanish Translation")
72
  video_output = gr.HTML()
73
- steps_output = gr.Textbox(label="🎬 AI Scene Steps / Key Moments")
74
 
75
- run_btn = gr.Button("▢️ Run Agents")
76
- run_btn.click(fn=run_agents, inputs=input_url,
77
- outputs=[summary_output, translation_output, video_output, steps_output])
 
 
 
 
 
 
 
78
 
79
  demo.launch()
 
2
  from deep_translator import GoogleTranslator
3
  import re
4
 
5
+ # βœ… Extract video ID from URL
6
  def extract_video_id(url):
7
+ regex = r"(?:v=|\/)([0-9A-Za-z_-]{11})"
8
+ match = re.search(regex, url)
9
  return match.group(1) if match else url.strip()
10
 
11
+ # βœ… Agent 1: Simulated Summarizer
12
  def summarize_youtube(video_url):
13
  try:
14
  video_id = extract_video_id(video_url)
15
 
16
  saved_transcripts = {
17
+ "dQw4w9WgXcQ": "We're no strangers to love. You know the rules and so do I...",
18
+ "F9cTlfD7ZGM": "This is a video about AI agents and how they collaborate.",
19
+ "HMcFwjWVprs": "This presentation explains the GenAI protocol and its future."
20
+ }
 
 
 
 
21
 
22
  if video_id not in saved_transcripts:
23
+ return "❌ Transcript not available for this video.", "", ""
24
 
25
  summary = saved_transcripts[video_id]
26
  translation = GoogleTranslator(source='auto', target='es').translate(summary)
27
  video_embed_link = f"https://www.youtube.com/embed/{video_id}"
28
+ return summary, translation, video_embed_link
 
 
29
  except Exception as e:
30
+ return f"❌ Error: {str(e)}", "", ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
 
32
  # βœ… Gradio App
33
  with gr.Blocks() as demo:
34
+ gr.Markdown("## πŸŽ₯ AI Agents: YouTube Summary + Spanish Translator")
35
+ gr.Markdown("Enter a YouTube video URL to simulate agent behavior.")
36
 
37
+ input_url = gr.Textbox(label="Paste YouTube Link")
38
  summary_output = gr.Textbox(label="🧠 English Summary")
39
  translation_output = gr.Textbox(label="🌍 Spanish Translation")
40
  video_output = gr.HTML()
 
41
 
42
+ def run_agents(url):
43
+ summary, translation, embed = summarize_youtube(url)
44
+ if embed:
45
+ video_html = f'<iframe width="100%" height="315" src="{embed}" frameborder="0" allowfullscreen></iframe>'
46
+ else:
47
+ video_html = ""
48
+ return summary, translation, video_html
49
+
50
+ run_btn = gr.Button("πŸ” Run Agents")
51
+ run_btn.click(fn=run_agents, inputs=input_url, outputs=[summary_output, translation_output, video_output])
52
 
53
  demo.launch()