Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,15 +1,25 @@
|
|
| 1 |
import gradio as gr
|
| 2 |
from pytube import YouTube
|
|
|
|
| 3 |
|
| 4 |
def get_youtube_transcript(video_url):
|
| 5 |
try:
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
else:
|
| 12 |
-
return "
|
| 13 |
except Exception as e:
|
| 14 |
return f"An error occurred: {e}"
|
| 15 |
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
from pytube import YouTube
|
| 3 |
+
from urllib.parse import urlparse, parse_qs
|
| 4 |
|
| 5 |
def get_youtube_transcript(video_url):
|
| 6 |
try:
|
| 7 |
+
parsed_url = urlparse(video_url)
|
| 8 |
+
if parsed_url.netloc == "www.youtube.com" and parsed_url.path == "/watch":
|
| 9 |
+
query_params = parse_qs(parsed_url.query)
|
| 10 |
+
if "v" in query_params:
|
| 11 |
+
video_id = query_params["v"][0]
|
| 12 |
+
yt = YouTube(f"https://www.youtube.com/watch?v={video_id}")
|
| 13 |
+
caption = yt.captions.get_by_language_code('en')
|
| 14 |
+
if caption:
|
| 15 |
+
transcript = caption.generate_srt_captions()
|
| 16 |
+
return transcript
|
| 17 |
+
else:
|
| 18 |
+
return "No English transcript found for this video."
|
| 19 |
+
else:
|
| 20 |
+
return "Invalid YouTube video URL."
|
| 21 |
else:
|
| 22 |
+
return "Invalid YouTube video URL."
|
| 23 |
except Exception as e:
|
| 24 |
return f"An error occurred: {e}"
|
| 25 |
|