DeeeeeeM commited on
Commit
b1818a4
·
1 Parent(s): f85a311

added srt downloader for yt videos

Browse files
Files changed (1) hide show
  1. app.py +43 -0
app.py CHANGED
@@ -10,6 +10,9 @@ import time
10
  from yt_dlp import YoutubeDL
11
  import csv
12
  import os
 
 
 
13
 
14
  def process_media(
15
  model_size, source_lang, upload, model_type,
@@ -197,6 +200,35 @@ def extract_playlist_to_csv(playlist_url):
197
  except Exception as e:
198
  return None
199
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  WHISPER_LANGUAGES = [
201
  ("Afrikaans", "af"),
202
  ("Albanian", "sq"),
@@ -479,5 +511,16 @@ with gr.Blocks() as interface:
479
  outputs=csv_output
480
  )
481
 
 
 
 
 
 
 
 
 
 
 
 
482
 
483
  interface.launch(share=True)
 
10
  from yt_dlp import YoutubeDL
11
  import csv
12
  import os
13
+ import subprocess
14
+ import glob
15
+ import shutil
16
 
17
  def process_media(
18
  model_size, source_lang, upload, model_type,
 
200
  except Exception as e:
201
  return None
202
 
203
+ def download_srt(video_url):
204
+ try:
205
+ temp_dir = tempfile.mkdtemp()
206
+ output_template = os.path.join(temp_dir, "%(id)s.%(ext)s")
207
+ cmd = [
208
+ "yt-dlp",
209
+ "--write-subs",
210
+ "--write-auto-subs",
211
+ "--sub-lang", "en-US",
212
+ "--skip-download",
213
+ "--convert-subs", "srt",
214
+ "-o", output_template,
215
+ video_url
216
+ ]
217
+ result = subprocess.run(cmd, check=True, capture_output=True, text=True)
218
+ print(result.stdout)
219
+ print(result.stderr)
220
+ srt_files = glob.glob(os.path.join(temp_dir, "*.srt"))
221
+ if srt_files:
222
+ return srt_files[0]
223
+ else:
224
+ vtt_files = glob.glob(os.path.join(temp_dir, "*.vtt"))
225
+ if vtt_files:
226
+ return vtt_files[0]
227
+ return None
228
+ except Exception as e:
229
+ print("SRT download error:", e)
230
+ return None
231
+
232
  WHISPER_LANGUAGES = [
233
  ("Afrikaans", "af"),
234
  ("Albanian", "sq"),
 
511
  outputs=csv_output
512
  )
513
 
514
+ with gr.TabItem(".srt Downloader"):
515
+ gr.Markdown("### Download English subtitles (.srt) from a YouTube video.")
516
+ srt_url = gr.Textbox(label="YouTube Video URL", placeholder="Paste video URL here")
517
+ srt_btn = gr.Button("Process")
518
+ srt_file = gr.File(label="Download SRT")
519
+ srt_btn.click(
520
+ download_srt,
521
+ inputs=srt_url,
522
+ outputs=srt_file
523
+ )
524
+
525
 
526
  interface.launch(share=True)