# 대본

> 자막이 있을 때와 없을 때는 완전히 다른 길입니다. 그리고 나가는 건 영상이 아니라 오디오뿐입니다.

- 수치: 두 경로
- 상태: wip
- 사람이 보는 화면: https://aitryed.com/ko/built/watch/transcript/
- 반대 언어: https://aitryed.com/en/built/watch/transcript/index.md
- 이 사이트 안내(AI용): https://aitryed.com/ko/llms.txt

---

**말을 글로 옮기는 부분입니다. 자막이 있을 때와 없을 때는 «완전히 다른 길»입니다.**

## 왜 대본을 최대한 쓰나

앞에서 본 것처럼 **화면 캡처는 비싸고 대본은 쌉니다.** 10분짜리 영상의 대본이 몇천 단위입니다.

그래서 원칙이 이렇습니다 — **가능한 한 대본으로 채우고, 캡처를 아낍니다.**

문제는 **대본을 어디서 얻느냐**입니다. 길이 둘이고 **성격이 완전히 다릅니다.**

## 첫 번째 길 — 플랫폼 자막

영상 사이트가 이미 만들어 둔 자막을 가져옵니다.

| 장점 | |
|---|---|
| **공짜** | 돈이 안 나감 |
| **시간이 이미 붙어 있음** | 「3분 20초에 이 말」이 그대로 있음 |

두 번째가 생각보다 큽니다. **몇 분에 무슨 말을 했는지**를 알아야 **그 시점의 화면과 맞춰 볼 수** 있습니다. 시간이 없으면 대본과 화면이 따로 놉니다.

## 두 번째 길 — 직접 받아쓰기

자막이 없거나, 제 컴퓨터에 있는 파일이면 **소리만 뽑아서 받아쓰기 서비스로** 보냅니다.

여기서 중요한 게 하나 있습니다. **나가는 건 영상이 아니라 소리뿐**입니다. 그리고 그것도 **음질을 낮춰서 다시 만든 것**입니다.

「영상을 통째로 어딘가에 올린다」가 아닙니다. **필요한 최소한만 나갑니다.**

## 둘의 성격이 왜 다른가

| | 자막 | 받아쓰기 |
|---|---|---|
| 돈 | **공짜** | **나감** |
| 시간 정보 | **있음** | 대략 |
| 정확도 | **보통 사람이 손본 것** | 기계가 들은 것 |
| 항상 되나 | **없을 때가 많음** | **거의 항상 됨** |

그래서 **자막을 먼저 시도하고, 없으면 받아쓰기로** 갑니다. 순서가 중요합니다 — 반대로 하면 **공짜로 얻을 수 있는 걸 돈 내고** 삽니다.

## 둘 다 안 되면 — 「없다고 말합니다」

자막도 없고 받아쓰기도 실패하면 **화면만 가지고** 갑니다.

그리고 **그 사실을 결과에 적습니다.**

이게 중요합니다. 대본 없이 나온 분석은 **말로 설명된 부분이 통째로 빠져** 있습니다. 그걸 안 적으면, 읽는 사람이 <strong>「이게 전부인가 보다」</strong>로 읽습니다.

> **빠진 게 있으면, 빠졌다고 결과에 적혀 있어야 합니다.** 안 적으면 완전한 것으로 읽힙니다.

## 그리고 벽이 하나 있습니다 — 업로드 상한

받아쓰기 서비스에 **한 번에 올릴 수 있는 크기 제한**이 있습니다.

아주 긴 영상은 **소리만 뽑아도 그 제한을 넘습니다.**

이건 제가 못 고치는 제약입니다. 그래서 **긴 영상은 잘라서 올리거나, 아니면 그 구간만** 처리합니다.

**남의 서비스가 정한 벽은 제 코드로 못 넘습니다.** 그럴 때 할 수 있는 건 **우회하거나, 안 된다고 말하거나** 둘 중 하나입니다.

## 여기부터는 자세한 기록입니다

프레임이 비싼 만큼 대본은 싸다. 10분짜리 영상의 대본이 몇천 토큰이다. 그래서 **가능하면 대본으로 채우고 프레임을 아낀다.**

문제는 대본을 어디서 얻느냐다. 길이 둘이고, 둘의 성격이 완전히 다르다.

## 첫 번째 길 — 플랫폼 자막

먼저 원본 플랫폼의 자막을 시도한다. **공짜고, 시간축이 이미 붙어 있다.**

시간축이 붙어 있다는 게 핵심이다. 프레임에는 각각 시각이 있으니까, 대본에도 시각이 있으면 **둘을 맞춰 읽을 수 있다.** "3분 12초 화면에서 이 말을 하고 있었다"가 성립하고, 그게 스펙을 뽑을 때 필요한 형태다.

자동 생성 자막이라도 충분하다. 단어가 몇 개 틀려도 시각이 맞으면 쓸 수 있고, **틀린 단어는 프레임이 고쳐 준다.**

## 두 번째 길 — 직접 받아쓰기

자막이 없거나 로컬 파일이면 음성을 뽑아 받아쓰기 API로 보낸다.

여기서 나가는 건 **영상이 아니라 오디오**다. 화면은 어디에도 안 올라간다. 그리고 오디오도 원본이 아니라 **모노 16kHz로 다시 인코딩한 것** — 분당 0.5MB 정도다. 사람 말을 알아듣는 데는 그 정도면 충분하고, 그 이상은 올릴 이유가 없다.

제공자는 키가 설정된 쪽을 쓴다. 한쪽이 실패하면 다른 쪽으로 강제할 수 있고, **아예 끄는 스위치**도 있다. 받아쓰기를 끄면 프레임만으로 진행하고, 대본이 없다는 사실을 결과에 적는다.

## 없으면 없다고 말한다

자막도 없고 받아쓰기도 못 하면 **프레임만으로 간다.** 그리고 그 사실을 결과에 명시한다.

이게 규칙으로 있어야 하는 이유는, 대본 없는 결과물이 겉보기에는 멀쩡하기 때문이다. 프레임 80장으로도 그럴듯한 요약이 나온다. 그런데 **발표자가 말로만 설명한 부분은 통째로 빠져 있고**, 읽는 사람은 그걸 모른다.

"대본 없음"이라고 한 줄 적히면 읽는 쪽이 그 결과를 다르게 취급한다. 그 한 줄이 없으면 없다는 걸 아무도 모른다.

## 25MB 벽

받아쓰기 API에 업로드 상한이 있다. 아주 긴 영상은 오디오만으로도 그 상한을 넘는다.

모노 16kHz로 줄여 놓은 게 여기서도 값을 한다 — 분당 0.5MB면 **50분까지는 한 번에 들어간다.** 그보다 길면 애초에 구간을 지정해서 볼 영상이지, 통째로 받아쓸 영상이 아니다.

실패하면 에러를 그대로 보여준다. 상한 초과인지, 키가 틀렸는지, 호출 한도인지가 메시지에 나오고, **원인을 안 숨기는 게 재시도 판단에 필요하다.**
