YouTube JSON3 자막을 SRT, VTT, LRC로 변환하기
YouTube 자막을 JSON3로 다운로드하고 SRT, VTT, LRC로 변환하세요. yt-dlp 사용법, JSON3 구조, 무료 온라인 변환까지 단계별로 안내합니다.
JSON3는 YouTube가 내부적으로 사용하는 구조화된 timedtext 자막 형식입니다. 밀리초 타이밍, 단어 단위 오프셋, 모든 텍스트 세그먼트를 보존하지만 YouTube 밖에서는 거의 읽히지 않습니다. 이 가이드는 YouTube 자막을 JSON3로 가져온 뒤 도구가 실제로 필요로 하는 SRT, VTT, LRC로 몇 초 만에 변환하는 방법을 설명합니다.
JSON3 형식이란?
JSON3는 YouTube timedtext 데이터를 JSON으로 표현한 형식입니다. 자막 하나는 이벤트 객체로 저장되며, 밀리초 시작 시간(tStartMs), 지속 시간(dDurationMs), 하나 이상의 텍스트 세그먼트(segs)를 포함합니다. 세그먼트에는 노래방 스타일 타이밍에 쓰이는 단어 단위 오프셋(tOffsetMs)이 들어갈 수도 있습니다.
일반 자막 형식보다 많은 타이밍 정보를 남기기 때문에 원본 보존용으로는 최적이지만, 플레이어에 바로 전달하기에는 최악입니다. JSON3로 저장한 뒤 목적에 맞게 변환하세요.
YouTube 자막을 JSON3로 다운로드하는 방법
방법 1: yt-dlp(권장)
가장 안정적인 방법은 yt-dlp입니다. 영어 자동 자막만 JSON3로 받고 비디오는 건너뛰려면:
yt-dlp --write-auto-subs --sub-lang en --sub-format json3 --skip-download "https://www.youtube.com/watch?v=VIDEO_ID"
현재 폴더에 .json3 파일이 생깁니다. 사람이 검수한 자막 트랙이 있다면 --write-auto-subs 대신 --write-subs를 쓰는 것이 정확도에 유리합니다.
방법 2: YouTube timedtext API
timedtext 엔드포인트는 JSON3를 직접 반환할 수 있습니다. 동영상 ID와 언어 코드를 지정하세요:
https://www.youtube.com/api/timedtext?v=VIDEO_ID&lang=en&fmt=json3
자동 생성 자막은 추가 매개변수가 필요할 수 있고, YouTube는 이 접근을 주기적으로 제한합니다.
방법 3: 브라우저 확장 프로그램
여러 확장 프로그램이 YouTube 페이지에 다운로드 버튼을 추가하고 JSON3 또는 VTT로 내보냅니다. 간단한 작업에는 편하지만 언어 트랙과 출력 형식 제어는 yt-dlp보다 약합니다.
JSON3를 변환해야 하는 이유
표준 미디어 플레이어, 영상 편집기, 가사 앱 어디도 JSON3를 읽지 않습니다. 각 대상 형식은 이유가 있습니다:
- SRT는 데스크톱 플레이어, 스마트 TV, 폰, 편집 도구 대부분이 읽는 호환성 우선 선택입니다.
- VTT는 HTML5 웹 자막 표준이므로 웹 플레이어에 적합합니다.
- LRC는 음악 재생기와 노래방 소프트웨어가 기대하는 동기화 가사 형식입니다.
변환 워크플로
- JSON3 파일을 다운로드합니다. yt-dlp 또는 timedtext API를 사용하세요.
- 대상 변환기를 고릅니다. 용도에 따라 JSON to SRT, JSON to VTT, JSON to LRC를 여세요.
- 업로드하고 변환합니다. 변환은 브라우저 안에서 실행되어 파일이 기기를 떠나지 않습니다.
- 다운로드하고 확인합니다. 텍스트 편집기에서 열거나 영상과 함께 재생해 타이밍을 점검하세요.
변환 중 타이밍은 어떻게 되나요?
- 단어 단위 오프셋은 cue 시작과 끝 시간으로 합쳐집니다. SRT, VTT, LRC는 cue마다 하나의 타임스탬프 모델만 제공합니다.
- 밀리초 정밀도는 SRT와 VTT에서 유지되며, LRC는 1/100초로 반올림됩니다.
- 종료 시간은 SRT와 VTT에는 남고 시작 시간만 쓰는 LRC에서는 제거됩니다.
실제로는 가독성에 문제가 되지 않습니다. 각 자막 줄의 시작과 끝은 여전히 정확하게 맞춰집니다.
자주 발생하는 문제와 해결
- JSON3 파일이 비었거나 너무 작음: 요청한 언어 자막이 없거나 자동 자막이 꺼져 있을 수 있습니다. 다른
--sub-lang코드를 시도하고 CC 버튼을 확인하세요. - 자동 자막 타이밍 흔들림: 기계 생성 자막은 특히 긴 영상에서 근사치입니다. 사람이 만든 트랙이 있다면 더 정렬이 좋습니다.
- 특수 문자 깨짐: JSON3는 UTF-8입니다. 변환된 파일도 UTF-8으로 여세요.
- 여러 언어 트랙 다운로드:
--sub-lang으로 필요한 트랙만 받으세요.
개인정보와 파일 안전성
자막 파일에는 민감한 내용이 담길 수 있습니다. yt-dlp처럼 로컬 도구로 다운로드하고 브라우저에서 변환하면 전체 과정이 내 기기 안에서 끝납니다. 업로드도 외부 서버도 남을 파일도 없습니다.
변환 준비 완료
JSON3는 YouTube 자막을 가장 충실하게 담아냅니다. SRT, VTT, LRC로 바꾸면 그 원본을 실제 환경에서 바로 쓸 수 있습니다.
YouTube JSON3 자막을 바로 쓸 수 있는 자막 파일로 바꿔 보세요.
지금 JSON3를 SRT로 변환