Codex에 영상 넣고 "자막 따줘" 한마디|AI로 영상 자막 자동 생성하는 방법

영상 파일을 넣고 Codex에게 “자막 따줘”라고 했더니 SRT 파일이 만들어졌습니다.
영상 파일을 public 폴더에 넣고 한마디만 요청하면 됩니다. AI가 음성을 전사해 읽기 좋은 자막으로 나누고, 브라우저 프리뷰까지 준비합니다.
한 번 설정해두면 다음 영상부터는 영상 넣기 → 한마디 요청 → 결과 확인으로 끝납니다.
이 작업은 Codex뿐 아니라 Claude Code처럼 프로젝트 폴더를 열고 명령을 실행할 수 있는 AI 에이전트에서도 사용할 수 있습니다. 이 글에서는 화면과 설정 방법을 Codex 기준으로 설명합니다.
실제로 얼마나 걸렸나?
실제로 27분 8초짜리 강의 영상을 처리했습니다.
| 결과 | 기록 |
|---|---|
| 처리 시간 | 7분 11초 |
| 전사 결과 | 2,306개 어절 |
| 생성된 자막 | 251개 |
| 사람이 확인한 오류 후보 | 70여 건 |
타이밍을 처음부터 손으로 찍지는 않았습니다. AI가 만든 결과에서 고유명사와 전문용어를 확인하고, 마지막에 자막과 영상의 싱크를 검수했습니다.
이게 어떻게 가능한가?
Codex가 음성을 직접 듣고 자막을 만드는 것은 아닙니다. 프로젝트가 영상에서 전사용 오디오를 준비하고, OpenAI 서버의 Whisper API에 요청한 뒤, AI 에이전트가 반환된 텍스트와 시간 정보를 SRT와 프리뷰로 연결합니다.
원본 영상 전체를 OpenAI 서버로 보내는 것은 아닙니다. 사용자 컴퓨터에서 만든 전사용 임시 오디오만 OpenAI Whisper API로 직접 전송하고, 데이터팝콘이나 Codex 서버로 보내는 과정은 없습니다.
그래서 뭐가 필요한가?
| 필요한 것 | 역할 |
|---|---|
| Codex | 프로젝트를 열고 AI 에이전트에게 작업을 요청하는 도구 |
| subtitle-studio.zip | 자막 작업을 시작할 수 있도록 데이터팝콘이 준비한 프로젝트 |
| OpenAI API 키와 크레딧 | Whisper API를 사용하기 위한 인증과 비용 |
| ffmpeg | 영상에서 전사용 오디오를 준비하는 프로그램 (미리 설치되어 있지 않아도 됩니다. 같이 설치합니다) |
데이터팝콘이 준비한 zip 파일을 설치한 뒤 API 키를 설정합니다. 프로젝트 패키지와 ffmpeg 설치는 AI 에이전트에게 요청하고, 필요한 권한만 승인하면 됩니다.
처음 한 번만 설정하기
Codex 앱에서 프로젝트 열기
- subtitle-studio.zip을 내려받아 압축을 풉니다.
- Codex 앱을 실행합니다.
- 왼쪽 사이드바의
프로젝트옆+를 클릭합니다.

프로젝트 만들기창에서Codex가 읽고 편집할 수 있는 폴더 추가를 클릭합니다.

- 파일 선택 창에서 압축을 푼
subtitle-studio폴더 전체를 선택하고열기를 누릅니다.

- 프로젝트가 열리면 AI 에이전트에게 다음처럼 요청합니다.
이 폴더를 영상 자막 작업용으로 준비해줘.
- 필요한 프로젝트 패키지가 설치되어 있는지 확인해줘.
- ffmpeg가 설치되어 있고 실행되는지 확인해줘.
- 부족한 것만 설치하고, 실패하면 다음에 내가 할 일을 초보자용으로 설명해줘.
- 영상 파일을 넣을 폴더와 자막 결과물이 저장될 위치를 알려줘.
ffmpeg 설치에 실패하면 화면에 나온 안내에 따라 한 번 설치한 뒤 다시 확인합니다.
OpenAI API 키와 크레딧 설정
Whisper API를 사용하려면 OpenAI API 키와 별도 API 크레딧이 필요합니다. API 키는 채팅창에 보내지 않고 프로젝트의 .env 파일에 직접 입력합니다.
API 키 발급 방법

- OpenAI API 키 페이지에 로그인합니다.
Create new secret key를 클릭하고 키 이름을 입력합니다.- 키를 즉시 복사해 안전한 곳에 보관합니다. 창을 닫으면 전체 키를 다시 볼 수 없습니다.
OpenAI API 크레딧 충전 방법
OpenAI API Billing에서 결제 정보를 등록하고 API 크레딧을 충전합니다. 자동 충전을 원하지 않으면 끕니다.

API 크레딧이 없으면 키가 있어도 전사가 실행되지 않습니다. 크레딧은 ChatGPT 구독과 별도입니다.
이제 AI 에이전트에게 API 키 설정을 요청합니다.
이 프로젝트에서 OpenAI API 키를 안전하게 설정해줘.
- .env.example을 바탕으로 .env 파일을 준비해줘.
- API 키를 붙여넣을 위치를 알려줘.
- .env가 Git에 올라가지 않도록 설정되어 있는지 확인해줘.
- 키 값 자체를 채팅 내용이나 코드에 출력하지 마.
첫 전사 때 업로드 승인하기
처음 자막 따줘를 요청하면 AI 에이전트가 OpenAI Whisper API로 파일을 보내도 되는지 물을 수 있습니다. 정상적인 보안 확인입니다.
영상에 개인정보나 공개하면 안 되는 대화가 있다면 승인하지 마세요. 승인한다면 다음처럼 요청할 수 있습니다.
허용해. 원본 영상 전체가 아니라 ffmpeg로 추출한 임시 오디오만 Whisper API로 업로드하고,
전사가 끝나면 임시 오디오 파일을 삭제해. 전사 결과와 SRT는 로컬에 저장해.
이제 영상 하나 넣어보기
압축을 푼 프로젝트의 public 폴더에 영상 파일을 넣습니다. 파일명은 자막 결과에 영향을 주지 않지만, 처음에는 공백·특수문자가 없는 lecture-01.mp4처럼 짧은 이름을 쓰면 경로 관련 오류를 줄일 수 있습니다. 폴더를 찾기 어렵다면 AI 에이전트에게 영상 파일을 넣을 public 폴더를 열어줘라고 요청하세요.
public 폴더에 영상이 여러 개 있으면 가장 최근에 추가된 영상 하나를 대상으로 처리합니다. 원하는 영상을 확실히 지정하려면 파일명을 함께 적습니다.
지원되는 확장자는 다음과 같습니다.
.mp4 .mov .mkv .webm .m4v
프로젝트 폴더를 열어둔 AI 에이전트에게 다음처럼 요청합니다.
public/lecture-01.mp4 자막 따줘.
Codex 화면 왼쪽의 웹 미리보기를 클릭하면 영상과 자막을 함께 볼 수 있습니다. 최종 SRT는 다음 위치에 저장됩니다.

src/data/<영상이름>/subtitles.srt
경로를 찾기 어렵다면 AI 에이전트에게 최종 SRT 파일을 찾아서 열어줘라고 요청해도 됩니다.
긴 영상에서는 전사용 오디오 파일 자체가 API의 파일 크기 제한을 넘을 수 있습니다. 오류가 나면 다음처럼 요청합니다.
전사 요청이 파일 크기 제한 때문에 실패했는지 확인해줘.
필요하면 오디오를 여러 구간으로 나누어 처리하고, 자막 타임코드가 원본 영상 기준으로 이어지는지 확인해줘.
AI가 실제로 하는 일
| 단계 | 하는 일 |
|---|---|
| 전사 | 음성을 Whisper API에 보내 시간 정보가 있는 텍스트를 받습니다. |
| 청크 분할 | 무음 간격을 기준으로 자막 덩어리를 만듭니다. |
| 의미 분할 | 한 자막이 너무 길면 읽기 좋은 지점에서 나눕니다. |
| 오탈자 교정 | 고유명사·제품명·숫자처럼 잘못 인식되기 쉬운 부분을 고칩니다. |
| SRT 생성 | 분할과 교정 결과를 반영해 최종 자막 파일을 만듭니다. |
| 프리뷰 | 영상 원음과 자막을 함께 재생해 싱크를 확인합니다. |
결과를 확인하고 다듬기
Whisper는 일반적인 문장을 잘 받아쓰지만, 고유명사와 외래어에서는 틀릴 수 있습니다. 실제 영상에서는 다음과 같은 오류 후보가 나왔습니다.
| Whisper가 들은 말 | 실제 표기 |
|---|---|
| M8N / M8n / m8n | n8n |
| 링크도니 / 링크딘 / 링크인 | 링크드인 계열 |
| APA / 오스 / APK키 / 갑방식 | API · Auth · API Key · GET 방식 |
| 객관심만 | 객관식만 |
| 자동한 영향 | 자동화 역량 |
| 웹핑 | 매핑 |
| 광자 | 강좌 |
| 끝맞췄다 | 끝마쳤다 |
이미지 맨 위를 보면 Whisper가 n8n을 M8N, M8n, m8n 등으로 잘못 인식했지만, Codex가 이를 n8n으로 자동 통일했습니다.

왼쪽은 AI 에이전트가 Whisper 오인식 후보를 찾아 자동으로 수정한 결과이고, 오른쪽은 Remotion에서 영상과 자막의 싱크를 확인하는 프리뷰입니다.
프리뷰를 보면서 다음처럼 구체적으로 수정 요청할 수 있습니다.
"n8n"으로 통일해줘.
00:02:13 자막의 "엔딩"을 "랜딩"으로 고쳐줘.
세 번째 자막은 문장이 너무 길어. 의미가 끊기지 않는 지점에서 두 개로 나눠줘.
00:04:20 자막이 음성보다 늦게 나와. 타이밍을 확인해줘.
자막 수정에서 끝나지 않고 음성을 기준으로 편집을 이어갈 수도 있습니다. 예를 들어 무음 구간은 지워줘, "다시"라고 말한 부분을 기준으로 NG 컷을 삭제해줘라고 요청하면 음성 타이밍에 맞춰 컷을 조정할 수 있습니다. 컷을 바꾼 뒤에는 프리뷰에서 결과를 확인합니다.
명백한 오인식과 읽기 어려운 분할은 고치되, 말하지 않은 내용을 임의로 보완하지 않는 것이 안전합니다.
SRT 저장 전 영상과 맞춰보기
자동으로 만든 자막은 가끔 영상보다 먼저 나오거나 늦게 나오고, 자막이 겹치거나 고유명사가 틀릴 수 있습니다. SRT를 저장하기 전에 프리뷰에서 영상의 앞·중간·뒤를 재생하며 자막과 음성이 맞는지 확인합니다. 제품명·사람 이름·숫자처럼 중요한 표기만 함께 살펴보면 됩니다.
편집툴로 생성된 자막(SRT) 가져가기
AI 에이전트가 만든 SRT는 영상 파일과 별도로 저장됩니다. 자막 문구와 표시 시간이 들어 있어 CapCut, Premiere Pro, DaVinci Resolve 같은 편집툴로 가져온 뒤 글자·위치·스타일을 바꿀 수 있습니다.
- 영상 프로젝트를 엽니다.
자막,캡션,Subtitles또는Captions메뉴를 찾습니다.SRT 가져오기또는Import subtitles를 선택합니다.subtitles.srt파일을 선택합니다.- 영상의 처음·중간·끝을 재생하며 싱크를 확인합니다.
| 도구 | 가져오기 위치의 예 |
|---|---|
| CapCut | 자막·캡션 메뉴에서 자막 파일 가져오기 |
| Premiere Pro | Text 패널의 캡션 트랙에서 SRT 가져오기 |
| DaVinci Resolve | 타임라인 메뉴에서 자막 트랙을 만든 뒤 SRT 가져오기 |
비용과 개인정보
이 방식은 무료 로컬 모델 방식이 아닙니다. whisper-1은 현재 분당 $0.006이므로 사용량 기준 1달러로 약 166분(2시간 46분)을 전사할 수 있습니다. 이번 작업의 사용량 화면에는 1,632초가 기록됐고, 전사 비용은 $0.1632, 약 $0.16(약 220원)이었습니다. 환율과 재시도 여부에 따라 실제 금액은 달라질 수 있습니다. 최신 단가는 Whisper-1 공식 요금에서 확인하세요.
원본 영상 전체가 아니라 사용자 컴퓨터에서 추출한 임시 오디오가 OpenAI Whisper API로 전송됩니다. 정상적으로 전사가 끝나면 임시 오디오는 사용자 컴퓨터에서 삭제되고, 전사 결과와 SRT만 프로젝트 폴더에 남습니다. 개인정보, 고객 대화, 공개하면 안 되는 강의 내용이 들어 있다면 API로 보내도 되는 자료인지 먼저 확인해야 합니다.
마무리
처음에는 zip 압축 해제, ffmpeg 확인, API 키 설정이 조금 번거로울 수 있습니다. 하지만 한 번만 설정하면 다음부터는 영상 파일을 public/ 폴더에 넣고 자막 따줘라고 요청한 뒤 프리뷰를 확인하면 됩니다.
결국 반복 작업은 영상 넣기 → 한마디 요청 → 결과 확인으로 줄어듭니다. 사람은 고유명사와 싱크를 마지막에 확인한 뒤, 완성한 SRT를 편집툴로 가져가거나 AI 에이전트와 편집을 이어가면 됩니다.