File size: 3,355 Bytes
1212107
 
 
 
 
 
 
 
 
a2749f3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
---
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