Spaces:
Build error
Build error
| import os | |
| import moviepy.editor as mp | |
| from pytube import YouTube | |
| import gradio as gr | |
| def download_video(url, quality, crop_start, crop_end): | |
| yt = YouTube(url) | |
| stream = yt.streams.filter(only_audio=False).first() | |
| stream.download(output_path="downloads") | |
| video_path = os.path.join("downloads", yt.title + ".mp4") | |
| clip = mp.VideoFileClip(video_path) | |
| if crop_start and crop_end: | |
| clip = clip.subclip(crop_start, crop_end) | |
| audio_path = os.path.join("downloads", yt.title + ".mp3") | |
| clip.audio.write_audiofile(audio_path) | |
| return {"video": video_path, "audio": audio_path} | |
| iface = gr.Interface( | |
| fn=download_video, | |
| inputs=[ | |
| gr.Textbox(label="YouTube URL"), | |
| gr.Radio(label="Quality", choices=["144p", "240p", "360p", "480p", "720p", "1080p"]), | |
| gr.Number(label="Crop start (seconds)"), | |
| gr.Number(label="Crop end (seconds)"), | |
| ], | |
| outputs=[ | |
| gr.File(label="Video"), | |
| gr.File(label="Audio"), | |
| ], | |
| title="YouTube Audio and Video Downloader with Cropping", | |
| description="Enter a YouTube URL, select a quality, and optionally enter crop start and end times to download the video and audio with cropping.", | |
| ) | |
| iface.launch() | |