SRT를 JSON으로 변환
또는 자막 텍스트를 붙여넣으세요
이 변환에서 달라지는 것
이 방향에서는 아무것도 잃지 않습니다. 원본 형식의 모든 기능이 대상 형식에 갈 곳이 있습니다.
이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.
이 페이지는 SRT를 이 사이트의 JSON 스키마로 바꿉니다. version 1과 cues 배열, 큐마다 id·정수 밀리초 start·end·lines가 들어갑니다. 스크립트에서 바로 읽을 수 있는 데이터입니다.
서식이 없는 줄은 문자열로, 기울임·굵게·색이 있는 줄은 text와 tags 배열을 가진 객체로 남습니다. SRT의 번호는 id로 보존되고, 시간은 문자열이 아니라 숫자입니다.
잃는 것은 없습니다. SRT가 담는 큐·번호·시간·인라인 서식이 모두 스키마에 자리가 있고, 다시 변환하면 자막으로 돌아옵니다. 파일은 브라우저 안에서 처리되며 업로드되지 않습니다.
JSON 출력은 사람이 읽기보다 프로그램이 읽기 위한 형식입니다. 큐마다 id·start·end·lines가 있고, 시간은 정수라 더하기·빼기로 싱크를 계산할 수 있습니다. 스키마에는 version 1이 적혀 있어, 나중에 형식이 바뀌어도 읽는 쪽이 판별할 수 있습니다. 숫자 시간 덕분에 스크립트에서 구간을 더하고 빼기도 쉽습니다.
예시
전형적인 SRT 파일을 JSON으로 변환
입력
1
00:00:01,000 --> 00:00:03,500
Hello there.
2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.
3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.
결과물
{
"version": 1,
"cues": [
{
"id": "1",
"start": 1000,
"end": 3500,
"lines": [
"Hello there."
]
},
{
"id": "2",
"start": 3500,
"end": 6000,
"lines": [
{
"text": "Whispering now.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 10
}
]
},
"And a second line."
]
},
{
"id": "3",
"start": 6000,
"end": 9250,
"lines": [
{
"text": "Bold statement.",
"tags": [
{
"kind": "bold",
"start": 0,
"end": 4
}
]
}
]
}
]
}
여기서는 아무것도 빠지지 않습니다. 양쪽을 줄 단위로 비교해 보세요.
같은 변환을 지저분한 입력으로
입력
1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.
2
00:00:03,500 --> 00:00:06,000
3
00:00:08,000 --> 00:00:09,000
Last one.
결과물
{
"version": 1,
"cues": [
{
"id": "1",
"start": 1000,
"end": 3500,
"lines": [
{
"text": "Bold and italic.",
"tags": [
{
"kind": "bold",
"start": 0,
"end": 4
},
{
"kind": "italic",
"start": 9,
"end": 15
}
]
}
]
},
{
"id": "2",
"start": 3500,
"end": 6000,
"lines": []
},
{
"id": "3",
"start": 8000,
"end": 9000,
"lines": [
"Last one."
]
}
]
}
실제 파일에 흔한 손상입니다. 줄 바꿈이 섞이고, 공백이 남고, 필드가 비어 있습니다. 위의 깔끔한 예와 비교해 해석기가 무엇을 용서하는지 보세요.
자주 묻는 질문
SRT를 JSON으로 바꾸면 스키마가 무엇인가요?
이 사이트 자체 스키마로, version 1과 cues 배열입니다. 각 큐는 id, 정수 밀리초 start·end, lines 배열을 가집니다. 숨은 메타데이터도, 서드파티 형식 의존도 없습니다.
SRT를 JSON으로 바꾸면 시간 코드 대신 밀리초를 쓰는 이유는 무엇인가요?
파일을 먼저 해석하지 않고 쓸 수 있게 하기 위해서입니다. 정수는 더하고 비교하고 정렬하는 것이 그대로 숫자 연산이지만, 00:00:01,000 같은 문자열은 먼저 디코딩해야 하고 잘못 디코딩될 수 있습니다.
SRT의 서식은 JSON에서 어떻게 표현되나요?
서식이 없는 줄은 문자열로 남습니다. 기울임·굵게·색이 있는 줄은 text와 tags 배열을 가진 객체가 되고, 각 태그는 종류와 텍스트 안의 시작·끝 위치를 적습니다. JSON을 다시 변환하면 서식이 되살아납니다.
SRT 큐의 id는 JSON에 남나요?
네. SRT의 번호 1·2·3이 id 필드로 그대로 들어갑니다. 나중에 JSON을 자막으로 되돌릴 때 큐를 찾는 데 쓸 수 있습니다.
SRT에서 만든 JSON을 손으로 고쳐도 안전한가요?
됩니다. 되돌려 변환하는 것이 검사입니다. 파일이 해석되면 변환 결과는 당신이 준 시간으로 큐를 재현하므로, 왕복 변환이 오타를 빨리 찾는 방법입니다.
JSON을 스크립트에서 읽을 수 있나요?
그것이 이 형식의 용도입니다. cues 배열을 읽고 start·end를 숫자로 다루며, line은 문자열이거나 text 필드에 글자가 든 객체입니다.