Hev832's picture
Update run.py
db6d4d7 verified
raw
history blame
No virus
1.02 kB
import gradio as gr
import subprocess
import os
def download_media(url):
# Determine if the URL is for audio or video
ydl_opts = {
'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best', # Prefer mp4 format
'outtmpl': 'downloaded_media.%(ext)s', # Output file name
}
# Download using yt-dlp
subprocess.run(['yt-dlp', url, '--merge-output-format', 'mp4', '--recode-video', 'mp4'])
# Check if downloaded file exists
if os.path.exists('downloaded_media.mp4'):
return gr.outputs.Video("downloaded_media.mp4")
elif os.path.exists('downloaded_media.m4a'):
return gr.outputs.Audio("downloaded_media.m4a")
else:
return "Media could not be downloaded or unsupported format."
# Create Gradio interface
iface = gr.Interface(
fn=download_media,
inputs="text",
outputs="auto",
title="YouTube Downloader",
description="Enter a YouTube video URL to download its audio or video."
)
# Launch the interface
iface.launch()