ani-quiz / app.py
JUNGU's picture
Create app.py
24238f5 verified
raw
history blame
1.31 kB
from youtube_worksheet import YouTubeWorksheet
from dotenv import load_dotenv
import gradio as gr
import os
def process_video(url):
# ν™˜κ²½λ³€μˆ˜μ—μ„œ API ν‚€ κ°€μ Έμ˜€κΈ°
API_KEY = os.getenv('GEMINI_API_KEY')
if not API_KEY:
return "ERROR: GEMINI_API_KEYκ°€ μ„€μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.", None
worksheet = YouTubeWorksheet(API_KEY)
# μžλ§‰ μΆ”μΆœ
transcript = worksheet.get_transcript(url)
if not transcript:
return "μžλ§‰μ„ μΆ”μΆœν•  수 μ—†μŠ΅λ‹ˆλ‹€.", None
# μ›Œν¬μ‹œνŠΈ 생성
content = worksheet.create_worksheet(transcript)
# DOCX 파일둜 μ €μž₯
output_file = worksheet.save_to_docx(content)
return f"μ›Œν¬μ‹œνŠΈκ°€ μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 파일λͺ…: {output_file}", output_file
# Gradio μΈν„°νŽ˜μ΄μŠ€ 생성
load_dotenv()
iface = gr.Interface(
fn=process_video,
inputs=[gr.Textbox(label="YouTube URL을 μž…λ ₯ν•˜μ„Έμš”", placeholder="https://www.youtube.com/watch?v=...")],
outputs=[
gr.Textbox(label="처리 결과"),
gr.File(label="μƒμ„±λœ μ›Œν¬μ‹œνŠΈ")
],
title="YouTube ν•™μŠ΅ μ›Œν¬μ‹œνŠΈ 생성기",
description="YouTube μ˜μƒμ˜ μžλ§‰μ„ μ΄μš©ν•˜μ—¬ ν•™μŠ΅ μ›Œν¬μ‹œνŠΈλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€."
)
if __name__ == "__main__":
iface.launch()