YouTube JSON3를 SRT 자막으로 변환
YouTube timedtext JSON3 이벤트를 번호와 HH:MM:SS,mmm 타이밍이 포함된 기본 SRT 자막으로 바꿔 보세요.
JSON 파일을 여기로 드래그 앤 드롭
또는 클릭하여 찾아보기
최대 50MB .json, .json3, .xml, .html 파일 지원
JSON에서 SRT로 변환 안내
YouTube timedtext JSON3는 tStartMs, dDurationMs, segs 텍스트 조각이 있는 events 배열로 자막을 저장합니다. 이 도구는 해당 구조를 분석해 텍스트 조각을 합치고 종료 시간을 계산한 뒤, 번호와 시작/종료 타임스탬프가 있는 SRT 자막을 만듭니다. 처리는 모두 브라우저에서 완료됩니다.
JSON → SRT 코드 구문 및 구조 검사
헤더 정의, 타임스탬프 구문, 큐 페이로드 형식을 나란히 비교하여 코드 수준의 대응 관계를 보여줍니다
JSON vs SRT 기술 사양
JSON
JSON3는 YouTube timedtext API에서 제공하는 자막 형식입니다. 파일은 events 배열이 있는 JSON 객체이며, 각 이벤트에는 tStartMs(시작 밀리초), dDurationMs(지속 밀리초), segs(텍스트 조각 배열)가 있을 수 있습니다. segs의 각 조각은 utf8 필드로 텍스트를 담습니다. 일반적으로 youtube-dl, yt-dlp 같은 도구로 내려받습니다.
SRT
SRT(SubRip)는 순차 번호, HH:MM:SS,mmm --> HH:MM:SS,mmm 형식의 타임스탬프 줄, 한 줄 이상의 자막 텍스트로 구성되는 일반 텍스트 자막 형식입니다. 많은 영상 재생기와 편집 도구에서 널리 쓰이는 교환 형식이지만, 실제 가져오기 여부는 각 도구의 지원 범위에 따라 다릅니다.
형식 차이점
변환 문제 해결 및 주의 사항
플레이어 호환성, 문자 인코딩, 타이밍 동기화에 대한 실용적인 해결책
플레이어에서 자막 싱크가 어긋나거나 점차 느려지는 현상
비디오 프레임레이트 차이(23.976 fps와 25 fps 등)로 인해 발생할 수 있습니다. 당사의 자막 싱크 조절 도구를 통해 전체 오프셋을 손쉽게 보정할 수 있습니다.
한글 자막이 깨져서 물음표나 특수문자로 표시되는 경우
EUC-KR이나 ANSI로 저장된 과거 파일은 깨질 수 있습니다. 본 사이트는 표준 UTF-8로 정규화하여 출력합니다.
여러 인물이 동시에 말할 때 자막이 겹쳐 보이는 문제
포맷마다 다중 자막 처리 방식이 다릅니다. 온라인 자막 편집기에서 개별 라인의 타이밍을 미세 조정할 수 있습니다.
영상 편집 프로그램(프리미어, 다빈치 리졸브)에서 가져오기 오류
전문 편집 소프트웨어의 엄격한 포맷 표준을 고려하여 프리미어, 다빈치 리졸브 등에서 안정적으로 열리는 표준 결과물을 생성합니다.
기능
변환하는 이유
일반적인 활용 사례
영상 편집 가져오기
YouTube JSON3를 SRT로 변환한 뒤 SRT 가져오기를 지원하는 Premiere Pro, DaVinci Resolve 같은 편집 도구에서 사용하세요.
미디어 서버 라이브러리
Plex, Emby, Jellyfin 라이브러리에서 쓸 수 있도록 JSON3 자막을 SRT 파일로 정리하세요. 실제 인식 여부는 각 서버 설정에 따라 다릅니다.
모바일 영상 재생
JSON3를 직접 열지 못하는 모바일 재생기에서 시도해 볼 수 있도록 널리 쓰이는 SRT 형식으로 변환하세요.
인코딩 파이프라인
FFmpeg, HandBrake, MKVToolNix 같은 도구에서 SRT 자막을 입력으로 사용하는 워크플로에 맞추세요.
자막 정리
YouTube에서 내려받은 JSON3 자막을 번호와 타임스탬프가 있는 기본 SRT 형태로 정리해 보관하거나 다시 가공하세요.
관련 포맷
JSON(YouTube JSON3)
입력 형식입니다. YouTube timedtext API의 events 배열과 segs 텍스트 조각을 포함합니다.
VTT(WebVTT)
웹 영상 재생에 많이 쓰는 대안입니다. HTML5 video나 브라우저 재생이 대상이라면 워크스페이스에서 JSON3를 VTT로 변환해 보세요.
ASS(Advanced SubStation Alpha)
글꼴, 색상, 위치 같은 스타일 정보가 필요할 때 고려할 수 있는 형식입니다. 이 변환은 기본 SRT 텍스트만 만듭니다.
사용 방법
- 1
.json 또는 .json3 파일을 도구 영역에 올리거나 드래그합니다.
- 2
파서가 JSON 구조를 읽고 events 배열을 순서대로 확인합니다.
- 3
숫자형 tStartMs와 배열형 segs가 없는 이벤트는 건너뜁니다.
- 4
segs의 utf8 값을 이어 붙이고 줄바꿈은 공백으로 바꾼 뒤 앞뒤 공백을 제거합니다.
- 5
텍스트가 비어 있는 이벤트는 결과에 넣지 않습니다.
- 6
dDurationMs가 숫자이면 해당 값을 사용하고, 없으면 3000ms를 기본 지속 시간으로 사용합니다.
- 7
시작/종료 밀리초를 HH:MM:SS,mmm 형식으로 변환하고 번호, 타임스탬프, 텍스트로 SRT 블록을 만듭니다.
더 많은 자막 도구
자주 묻는 질문
JSON3는 YouTube timedtext API에서 제공하는 자막 형식입니다. events 배열이 있는 JSON 객체로 구성되며, 각 이벤트에는 tStartMs(시작 밀리초), dDurationMs(지속 밀리초), segs(텍스트 조각 배열)가 있을 수 있습니다.
각 이벤트의 utf8 조각을 순서대로 이어 붙입니다. 예를 들어 "Hello "와 "world"는 "Hello world"가 됩니다. 줄바꿈은 공백으로 바뀌고 앞뒤 공백이 제거됩니다.
dDurationMs가 숫자이면 시작 시간에 해당 지속 시간을 더해 종료 시간을 만듭니다. 값이 없으면 3000ms를 기본 지속 시간으로 사용합니다.
yt-dlp를 사용할 수 있습니다: yt-dlp --write-auto-sub --sub-format json3 <영상 URL>. 내려받은 .json3 파일을 이 도구에 바로 올려 변환하세요.
tStartMs가 숫자가 아니거나 segs가 배열이 아니면 건너뜁니다. segs가 있어도 utf8 값을 합친 뒤 텍스트가 비어 있으면 결과에 포함하지 않습니다. aAppend 같은 텍스트 없는 마커도 SRT 출력에 영향을 주지 않습니다.
유효한 텍스트 이벤트만 결과에 남으며 events 배열에 나온 순서를 따릅니다. SRT 번호는 입력 번호와 관계없이 1부터 다시 매겨집니다.