Delje commited on
Commit
ea99468
·
verified ·
1 Parent(s): 600b13c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -0
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from moviepy.editor import ImageClip, TextClip, concatenate_videoclips, AudioFileClip
3
+
4
+ # Set up Streamlit interface
5
+ st.title("Video Generator from Script")
6
+ st.write("Upload your script, and we'll generate a video!")
7
+
8
+ # Upload Script
9
+ script_file = st.file_uploader("Upload Script (TXT)", type=["txt"])
10
+
11
+ # Upload Background Audio (Optional)
12
+ audio_file = st.file_uploader("Upload Background Audio (MP3)", type=["mp3"])
13
+
14
+ # Process Video
15
+ if st.button("Generate Video"):
16
+ if script_file:
17
+ # Read script
18
+ script = script_file.read().decode("utf-8")
19
+
20
+ # Split script into lines
21
+ lines = script.split("\n")
22
+
23
+ # Generate video clips for each line
24
+ clips = []
25
+ for line in lines:
26
+ # Create a text clip for each line
27
+ text_clip = TextClip(line, fontsize=24, color='white', size=(1280, 720))
28
+ text_clip = text_clip.set_duration(5) # Duration of each clip (5s)
29
+ clips.append(text_clip)
30
+
31
+ # Concatenate clips
32
+ final_clip = concatenate_videoclips(clips, method="compose")
33
+
34
+ # Add audio if provided
35
+ if audio_file:
36
+ audio = AudioFileClip(audio_file.name)
37
+ final_clip = final_clip.set_audio(audio)
38
+
39
+ # Save video
40
+ output_path = "output_video.mp4"
41
+ final_clip.write_videofile(output_path, fps=24, codec="libx264")
42
+
43
+ st.success("Video Generated!")
44
+ st.video(output_path)
45
+ else:
46
+ st.error("Please upload a script file.")