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
---
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. ์„ค์น˜
```bash
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 ํ‚ค ์„ค์ •
```bash
cp .env.example .env
# .env ํŒŒ์ผ์„ ์—ด์–ด ์‚ฌ์šฉํ•  LLM์˜ API ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”
```
### 3. ์‹คํ–‰
```bash
# ์›น UI (์ถ”์ฒœ)
chmod +x run
./run
# ๋˜๋Š” ์ง์ ‘ ์‹คํ–‰
python3 web.py
```
๋ธŒ๋ผ์šฐ์ €์—์„œ `http://localhost:8000` ์ ‘์†
### CLI ๋ชจ๋“œ
```bash
./run "https://www.youtube.com/watch?v=VIDEO_ID"
./run "https://www.youtube.com/watch?v=VIDEO_ID" --mode local --format srt
```
## โš™๏ธ ์„ค์ •
`.env` ํŒŒ์ผ์—์„œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:
```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