Spaces:
Runtime error
Runtime error
Resolve Download Video 3
Browse files
app.py
CHANGED
@@ -8,6 +8,8 @@ import docx # To create Word documents
|
|
8 |
from moviepy.video.tools.subtitles import SubtitlesClip
|
9 |
from moviepy.editor import TextClip
|
10 |
from pytube import YouTube # For downloading YouTube videos
|
|
|
|
|
11 |
|
12 |
# Load Whisper model for speech-to-text (using smaller 'tiny' model for faster performance)
|
13 |
asr = pipeline("automatic-speech-recognition", model="openai/whisper-tiny")
|
@@ -136,20 +138,20 @@ def download_video():
|
|
136 |
video_path = subtitle_storage.get("video_path")
|
137 |
video = mp.VideoFileClip(video_path)
|
138 |
|
139 |
-
#
|
140 |
-
generator = lambda txt: TextClip(txt, font="Arial
|
141 |
|
142 |
subs = []
|
143 |
-
subtitle_length = 5 # seconds each subtitle
|
144 |
for i in range(0, len(translated_subtitle), 50):
|
145 |
start_time = (i // 50) * subtitle_length
|
146 |
-
end_time = start_time + subtitle_length
|
147 |
subtitle_text = translated_subtitle[i:i + 50]
|
148 |
subs.append(((start_time, end_time), subtitle_text))
|
149 |
|
150 |
subtitles = SubtitlesClip(subs, generator)
|
151 |
|
152 |
-
subtitled_video =
|
153 |
|
154 |
output_video_path = "subtitled_video.mp4"
|
155 |
subtitled_video.write_videofile(output_video_path)
|
|
|
8 |
from moviepy.video.tools.subtitles import SubtitlesClip
|
9 |
from moviepy.editor import TextClip
|
10 |
from pytube import YouTube # For downloading YouTube videos
|
11 |
+
from moviepy.editor import TextClip, CompositeVideoClip
|
12 |
+
from moviepy.video.tools.subtitles import SubtitlesClip
|
13 |
|
14 |
# Load Whisper model for speech-to-text (using smaller 'tiny' model for faster performance)
|
15 |
asr = pipeline("automatic-speech-recognition", model="openai/whisper-tiny")
|
|
|
138 |
video_path = subtitle_storage.get("video_path")
|
139 |
video = mp.VideoFileClip(video_path)
|
140 |
|
141 |
+
# Use TextClip with a basic method to avoid ImageMagick
|
142 |
+
generator = lambda txt: TextClip(txt, font="Arial", fontsize=24, color="white", method="caption", size=(video.w - 20, None), align="center")
|
143 |
|
144 |
subs = []
|
145 |
+
subtitle_length = 5 # seconds for each subtitle
|
146 |
for i in range(0, len(translated_subtitle), 50):
|
147 |
start_time = (i // 50) * subtitle_length
|
148 |
+
end_time = start_time + subtitle_length
|
149 |
subtitle_text = translated_subtitle[i:i + 50]
|
150 |
subs.append(((start_time, end_time), subtitle_text))
|
151 |
|
152 |
subtitles = SubtitlesClip(subs, generator)
|
153 |
|
154 |
+
subtitled_video = CompositeVideoClip([video, subtitles.set_position(('center', 'bottom'))])
|
155 |
|
156 |
output_video_path = "subtitled_video.mp4"
|
157 |
subtitled_video.write_videofile(output_video_path)
|