awacke1's picture
Update app.py
00b7f6e
# Import required libraries
import streamlit as st
from moviepy.editor import VideoFileClip, concatenate_videoclips
import tempfile
import base64
# Streamlit app title
st.title("Video Concatenator App πŸŽ₯")
# Function to convert video file to base64
def get_video_base64(video_path):
with open(video_path, "rb") as file:
video_base64 = base64.b64encode(file.read()).decode()
return video_base64
# Textbox for user to specify output video name
output_video_name = st.text_input("Enter the name for the output video:", "Output_Video.mp4")
# Upload videos
uploaded_files = st.file_uploader("Upload Video Files πŸ“€", type=["mp4"], accept_multiple_files=True)
if uploaded_files:
video_clips = []
video_paths = []
for file in uploaded_files:
tfile = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4")
tfile.write(file.read())
video_paths.append(tfile.name)
clip = VideoFileClip(tfile.name)
video_clips.append(clip)
st.write("Uploaded video files: πŸ“‚", video_paths)
# Concatenate video clips
final_video = concatenate_videoclips(video_clips)
# Save the result
final_video_path = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4").name
final_video.write_videofile(final_video_path, codec="libx264")
# Provide download link for the video
video_base64 = get_video_base64(final_video_path)
st.markdown(f'### Download Output Video πŸ“₯')
href = f'<a href="data:video/mp4;base64,{video_base64}" download="{output_video_name}">Click here to download the video</a>'
st.markdown(href, unsafe_allow_html=True)