Nishur commited on
Commit
45046c0
·
verified ·
1 Parent(s): 8b21a17

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -16
app.py CHANGED
@@ -2,16 +2,13 @@ import gradio as gr
2
  import os
3
  import tempfile
4
  import moviepy.editor as mp
5
- from moviepy.config import change_settings
6
  import assemblyai as aai
7
  from deep_translator import GoogleTranslator
8
  import pysrt
9
  from gtts import gTTS
10
  from pydub import AudioSegment
11
 
12
- # Configure ImageMagick policy
13
- change_settings({"IMAGEMAGICK_BINARY": "/usr/bin/convert"})
14
-
15
  # Configuration
16
  aai.settings.api_key = os.getenv("ASSEMBLYAI_API_KEY")
17
  LANGUAGES = {
@@ -25,7 +22,7 @@ LANGUAGES = {
25
 
26
  def extract_audio(video_path, output_dir):
27
  try:
28
- video = mp.VideoFileClip(video_path)
29
  audio_path = os.path.join(output_dir, "audio.wav")
30
  video.audio.write_audiofile(audio_path)
31
  return audio_path
@@ -65,26 +62,32 @@ def translate_subtitles(srt_path, target_langs, output_dir):
65
 
66
  def merge_video_subtitles(video_path, srt_path, output_path):
67
  try:
68
- video = mp.VideoFileClip(video_path)
69
- txt_clips = []
70
 
71
- for sub in pysrt.open(srt_path):
72
- txt_clip = (mp.TextClip(
 
 
 
 
 
73
  sub.text,
74
  fontsize=24,
75
  color='white',
 
 
76
  font='Arial',
77
- bg_color='black',
78
  size=(video.w*0.9, None),
79
- method='caption'
80
  )
81
- .set_position(('center', 'bottom'))
82
- .set_duration((sub.end.ordinal - sub.start.ordinal)/1000.0)
83
- .set_start(sub.start.ordinal/1000.0))
84
 
85
- txt_clips.append(txt_clip)
 
 
 
86
 
87
- final = mp.CompositeVideoClip([video] + txt_clips)
88
  final.write_videofile(
89
  output_path,
90
  codec='libx264',
 
2
  import os
3
  import tempfile
4
  import moviepy.editor as mp
5
+ from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
6
  import assemblyai as aai
7
  from deep_translator import GoogleTranslator
8
  import pysrt
9
  from gtts import gTTS
10
  from pydub import AudioSegment
11
 
 
 
 
12
  # Configuration
13
  aai.settings.api_key = os.getenv("ASSEMBLYAI_API_KEY")
14
  LANGUAGES = {
 
22
 
23
  def extract_audio(video_path, output_dir):
24
  try:
25
+ video = VideoFileClip(video_path)
26
  audio_path = os.path.join(output_dir, "audio.wav")
27
  video.audio.write_audiofile(audio_path)
28
  return audio_path
 
62
 
63
  def merge_video_subtitles(video_path, srt_path, output_path):
64
  try:
65
+ video = VideoFileClip(video_path)
66
+ subs = pysrt.open(srt_path)
67
 
68
+ subtitles = []
69
+ for sub in subs:
70
+ start_time = sub.start.ordinal / 1000.0
71
+ end_time = sub.end.ordinal / 1000.0
72
+ duration = end_time - start_time
73
+
74
+ text_clip = TextClip(
75
  sub.text,
76
  fontsize=24,
77
  color='white',
78
+ stroke_color='black',
79
+ stroke_width=1,
80
  font='Arial',
 
81
  size=(video.w*0.9, None),
82
+ method='label' # Changed from 'caption' to 'label'
83
  )
 
 
 
84
 
85
+ text_clip = text_clip.set_position(('center', 'bottom'))
86
+ text_clip = text_clip.set_start(start_time)
87
+ text_clip = text_clip.set_duration(duration)
88
+ subtitles.append(text_clip)
89
 
90
+ final = CompositeVideoClip([video] + subtitles)
91
  final.write_videofile(
92
  output_path,
93
  codec='libx264',