YoutubeScript / README.md
Heebin Moon
Claude Opus 4.6
Add Dockerfile and HF Space config for deployment
1212107
|
Raw History Blame Contribute Delete
3.36 kB
metadata
title: YouTube Script Extractor
emoji: ๐ŸŽฌ
colorFrom: red
colorTo: yellow
sdk: docker
app_port: 7860

๐ŸŽฌ YouTube Script Extractor

YouTube ์˜์ƒ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”์ถœํ•˜๊ณ , AI๋กœ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ์ž๋™ ์Šคํฌ๋ฆฝํŠธ ์ถ”์ถœ โ€” YouTube URL๋งŒ ์ž…๋ ฅํ•˜๋ฉด ์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜
  • AI ๋งˆํฌ๋‹ค์šด ์ •๋ฆฌ โ€” LLM์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌ์กฐํ™”๋œ ๋งˆํฌ๋‹ค์šด์œผ๋กœ ์ •๋ฆฌ
  • ๋‹ค๊ตญ์–ด ๋ฒˆ์—ญ โ€” 14๊ฐœ ์–ธ์–ด ์ง€์› (ํ•œ๊ตญ์–ด, ์˜์–ด, ์ผ๋ณธ์–ด ๋“ฑ)
  • ํ‚คํ”„๋ ˆ์ž„ ๋ถ„์„ (CV) โ€” ์˜์ƒ์˜ ํ•ต์‹ฌ ์žฅ๋ฉด์„ ์ถ”์ถœํ•˜๊ณ  Vision AI๋กœ ๋ถ„์„
  • Smart Mix โ€” ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„๋ณ„๋กœ ๋‹ค๋ฅธ LLM์„ ์ง€์ • ๊ฐ€๋Šฅ
  • ์›น UI + CLI โ€” ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ UI์™€ ์ปค๋งจ๋“œ๋ผ์ธ ๋ชจ๋‘ ์ง€์›

๐Ÿค– ์ง€์› LLM

๋ชจ๋ธ ๊ฐ€๊ฒฉ Vision ๋น„๊ณ 
Ollama (๋กœ์ปฌ) ๋ฌด๋ฃŒ โŒ ์ธํ„ฐ๋„ท ๋ถˆํ•„์š”
Gemini 2.5 Flash-Lite $0.10/1Mํ† ํฐ โœ… โญ ์ตœ์ €๊ฐ€
Gemini 3.1 Flash-Lite $0.25/1Mํ† ํฐ โœ… ์ตœ์‹  ๋ชจ๋ธ
GPT-4o-mini $0.15/1Mํ† ํฐ โœ… OpenAI
Claude Sonnet 4.6 $3/1Mํ† ํฐ โœ… ๊ณ ํ’ˆ์งˆ
Claude Opus 4.6 $5/1Mํ† ํฐ โœ… ์ตœ๊ณ  ํ’ˆ์งˆ

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

1. ์„ค์น˜

git clone https://huggingface.co/spaces/YOUR_USERNAME/youtube-script-extractor
cd youtube-script-extractor

# ffmpeg ์„ค์น˜ (macOS)
brew install ffmpeg

# Python ์˜์กด์„ฑ ์„ค์น˜
pip install -r requirements.txt

2. API ํ‚ค ์„ค์ •

cp .env.example .env
# .env ํŒŒ์ผ์„ ์—ด์–ด ์‚ฌ์šฉํ•  LLM์˜ API ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”

3. ์‹คํ–‰

# ์›น UI (์ถ”์ฒœ)
chmod +x run
./run

# ๋˜๋Š” ์ง์ ‘ ์‹คํ–‰
python3 web.py

๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8000 ์ ‘์†

CLI ๋ชจ๋“œ

./run "https://www.youtube.com/watch?v=VIDEO_ID"
./run "https://www.youtube.com/watch?v=VIDEO_ID" --mode local --format srt

โš™๏ธ ์„ค์ •

.env ํŒŒ์ผ์—์„œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

# ํ•„์ˆ˜: Whisper API์šฉ
OPENAI_API_KEY=sk-proj-...

# ์„ ํƒ: ์‚ฌ์šฉํ•˜๋Š” LLM๋งŒ ์„ค์ •
GOOGLE_API_KEY=...        # Gemini
ANTHROPIC_API_KEY=...     # Claude

# ๊ธฐ๋ณธ ์„ค์ •
DEFAULT_MODE=api          # api ๋˜๋Š” local
DEFAULT_MODEL=base        # Whisper ๋ชจ๋ธ (tiny/base/small/medium/large)
PORT=8000

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

โ”œโ”€โ”€ run                 # ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ (์„ค์น˜ + ์‹คํ–‰)
โ”œโ”€โ”€ web.py              # FastAPI ์›น ์„œ๋ฒ„
โ”œโ”€โ”€ cli.py              # CLI ์ธํ„ฐํŽ˜์ด์Šค
โ”œโ”€โ”€ transcriber.py      # ์Œ์„ฑ ์ถ”์ถœ + STT + ํ‚คํ”„๋ ˆ์ž„ ์ถ”์ถœ
โ”œโ”€โ”€ formatter.py        # LLM ํ˜ธ์ถœ + ๋งˆํฌ๋‹ค์šด ์ •๋ฆฌ + ๋ฒˆ์—ญ
โ”œโ”€โ”€ templates/
โ”‚   โ””โ”€โ”€ index.html      # ์›น UI
โ”œโ”€โ”€ requirements.txt    # Python ์˜์กด์„ฑ
โ”œโ”€โ”€ .env.example        # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ…œํ”Œ๋ฆฟ
โ””โ”€โ”€ output/             # ์ถ”์ถœ ๊ฒฐ๊ณผ๋ฌผ (git ์ œ์™ธ)

๐Ÿ”ง Smart Mix (๋‹จ๊ณ„๋ณ„ LLM ์„ ํƒ)

์›น UI์˜ โš™ ๋ฒ„ํŠผ์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„๋ณ„ LLM์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • MD ์ •๋ฆฌ โ€” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งˆํฌ๋‹ค์šด์œผ๋กœ ๊ตฌ์กฐํ™” (์ €๋ ดํ•œ ๋ชจ๋ธ OK)
  • ๋ฒˆ์—ญ โ€” ๋‹ค๊ตญ์–ด ๋ฒˆ์—ญ (์ €๋ ดํ•œ ๋ชจ๋ธ OK)
  • ํ‚คํ”„๋ ˆ์ž„ ๋ถ„์„ โ€” Vision AI๋กœ ํ™”๋ฉด ๋ถ„์„ (Vision ์ง€์› ๋ชจ๋ธ ํ•„์š”)

๐Ÿ“‹ ์š”๊ตฌ์‚ฌํ•ญ

  • Python 3.9+
  • ffmpeg
  • API ํ‚ค (์‚ฌ์šฉํ•˜๋ ค๋Š” LLM์— ๋”ฐ๋ผ)

๐Ÿ“„ License

MIT