upload-test / app.py
Neon-AI's picture
Update app.py
e2d0f6c verified
# app.py
import gradio as gr
import yt_dlp
import os
def download_anime(url, ep_start=1, ep_end=None):
ydl_opts = {
'format': 'best',
'outtmpl': '%(title)s - Episode %(episode_num)02d.%(ext)s',
'quiet': False,
'no_warnings': False,
}
if ep_end:
ydl_opts['playliststart'] = ep_start
ydl_opts['playlistend'] = ep_end
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
try:
info = ydl.extract_info(url, download=True)
title = info.get('title', 'Unknown')
return f"Downloaded: {title}"
except Exception as e:
return f"Error: {str(e)}"
with gr.Blocks() as demo:
gr.Markdown("# Anime Downloader (yt-dlp)")
url = gr.Textbox(label="Anime Page URL (e.g., animewave episode or series)")
start = gr.Number(label="Start Episode", value=1, precision=0)
end = gr.Number(label="End Episode (optional)", value=None)
btn = gr.Button("Download")
output = gr.Textbox(label="Status")
btn.click(download_anime, inputs=[url, start, end], outputs=output)
demo.launch()