Spaces:
Runtime error
Runtime error
# 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) | |