getvid / video.py
nevreal's picture
Create video.py
06e8caf verified
raw
history blame contribute delete
1.44 kB
import gradio as gr
import requests
from moviepy.editor import VideoFileClip
import tempfile
def download_video(url):
# Download the video from the URL
response = requests.get(url, stream=True)
if response.status_code == 200:
# Save the video to a temporary file
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4")
with open(temp_file.name, 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
return temp_file.name
else:
return None
def process_video(url):
video_path = download_video(url)
if video_path:
# Optional: Verify the video is playable with moviepy
try:
clip = VideoFileClip(video_path)
clip.close()
return video_path
except Exception as e:
return f"Error processing video: {str(e)}"
else:
return "Error downloading video."
# Gradio UI components
with gr.Blocks() as demo:
gr.Markdown("# Video URL Downloader")
url_input = gr.Textbox(label="Video URL", placeholder="Enter the video URL here...")
video_output = gr.Video(label="Downloaded Video")
submit_button = gr.Button("Download and Display Video")
# Action when the button is clicked
submit_button.click(process_video, inputs=url_input, outputs=video_output)
# Launch the Gradio app
demo.launch()