yt-dl / app.py
soiz1's picture
Create app.py
bde6277 verified
import os
import subprocess
import gradio as gr
from datetime import datetime
def download_video(url):
if not url.strip():
return "URLを入力してください。"
# 保存ファイル名の先頭に日時を追加して重複を防ぐ
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
output_template = f"{timestamp}_動画.%(ext)s"
# yt-dlp コマンドの構築
command = [
"yt-dlp",
"-o", output_template,
"--write-thumbnail",
"-f", "mp4",
url
]
try:
result = subprocess.run(command, capture_output=True, text=True)
if result.returncode != 0:
return f"エラーが発生しました:\n{result.stderr}"
else:
return f"ダウンロード完了:{output_template.replace('%(ext)s', 'mp4')}(サムネイルも保存されました)"
except Exception as e:
return f"例外が発生しました:{str(e)}"
# Gradio インターフェース作成
with gr.Blocks() as demo:
gr.Markdown("## 🎥 動画ダウンローダー(yt-dlp + Gradio)")
url_input = gr.Textbox(label="動画のURLを入力してください")
output_text = gr.Textbox(label="結果")
download_button = gr.Button("ダウンロード開始")
download_button.click(fn=download_video, inputs=[url_input], outputs=[output_text])
# アプリ起動
demo.launch()