본문으로 바로 가기
SubtitleMatrix

SBV를 JSON으로 변환

형식 변환YouTube SBV
또는 자막 텍스트를 붙여넣으세요

이 변환에서 달라지는 것

이 방향에서는 아무것도 잃지 않습니다. 원본 형식의 모든 기능이 대상 형식에 갈 곳이 있습니다.

이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.

SBV를 JSON으로 바꾸는 페이지입니다. 자막 하나가 객체 하나가 되고, 시작과 끝은 밀리초 정수로, 텍스트는 줄 배열로 들어갑니다. 프로그램에서 읽거나 가공할 목적이라면 가장 다루기 쉬운 형태입니다.

SBV는 `0:00:04.126`, JSON은 같은 순간을 `4126`이라는 정수로 적습니다. 문자열 시간을 다시 해석할 필요가 없고, 밀리초 값이 그대로 보존됩니다. 두 줄짜리 자막은 `lines` 배열의 두 원소가 됩니다.

SBV가 표현하는 두 시각과 텍스트, 줄 구분은 JSON에 모두 자리가 있어 이 방향은 무손실입니다. 자막 순서는 시작 시각 기준으로 정렬되고, 출력은 UTF-8이며 BOM이 없습니다.

파일은 업로드되지 않습니다. 브라우저 안에서 처리되고, 여러 파일을 한 번에 넣으면 각각 변환되어 ZIP 하나로 내려옵니다. 변환이 도는 동안 탭을 닫으면 작업이 중단되므로 끝날 때까지 창을 열어 두세요. ZIP은 파일별 하위 폴더 없이 한 번에 풀리고, 각 파일 이름은 원본 그대로 유지됩니다.

예시

전형적인 SBV 파일을 JSON으로 변환

입력

0:00:01.000,0:00:03.500
The quick brown fox.

0:00:04.000,0:00:06.250
Jumps over the lazy dog.

0:00:07.000,0:00:09.000
Two lines here.
And a second one.

결과물

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 3500,
      "lines": [
        "The quick brown fox."
      ]
    },
    {
      "start": 4000,
      "end": 6250,
      "lines": [
        "Jumps over the lazy dog."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Two lines here.",
        "And a second one."
      ]
    }
  ]
}

버려지는 것이 없습니다. cue 배열의 순서와 줄 배열의 원소 수를 왼쪽과 비교해 보세요.

지저분한 SBV를 JSON으로 바꿀 때

입력

0:00:02.000,0:00:04.000
Carriage-return line endings.

	0:00:06.000,0:00:08.000
Indented timecode, no final newline.

결과물

{
  "version": 1,
  "cues": [
    {
      "start": 2000,
      "end": 4000,
      "lines": [
        "Carriage-return line endings."
      ]
    },
    {
      "start": 6000,
      "end": 8000,
      "lines": [
        "Indented timecode, no final newline."
      ]
    }
  ]
}

실제 파일에 흔한 손상입니다. 섞인 줄바꿈 문자와 앞뒤 공백이 있어도 읽을 수 있는 자막은 모두 객체가 됩니다.

자주 묻는 질문

SBV를 JSON으로 바꾸면 파일은 어떤 모습인가요?

`version`과 `cues` 배열을 가진 객체입니다. 각 cue에는 `start`와 `end`(밀리초 정수), `lines`(문자열 배열)가 들어가고, 자막 순서가 배열 순서가 됩니다.

SBV의 시각이 JSON에서 밀리초 정수로 남나요?

네. `0:00:04.126`은 `4126`이 되어 문자열 변환 없이 바로 계산에 쓸 수 있습니다. 반올림이 없어 원본과 정확히 같은 값입니다.

SBV의 두 줄 자막은 JSON에서 어떻게 표현되나요?

`lines` 배열의 원소 두 개가 됩니다. 두 줄이 같은 cue에 속한다는 정보가 배열 구조로 유지되므로, 다시 SBV로 만들면 한 자막의 두 줄로 돌아갑니다.

SBV를 JSON으로 바꾸면 cue의 순서는 어떻게 되나요?

시작 시각이 이른 순서로 배열에 들어갑니다. 원본이 뒤섞여 있었다면 정렬되어 나오고, JSON을 읽는 쪽도 이 순서를 전제로 다루면 됩니다.

JSON을 다시 SBV로 바꾸면 무엇이 사라지나요?

JSON에 스타일이나 위치, 가라오케 정보가 들어 있으면 SBV에 자리가 없어 사라집니다. 지금 방향인 SBV→JSON은 무손실이며, 손실은 되돌릴 때만 생깁니다.

SBV를 JSON으로 저장하면 인코딩은 무엇인가요?

출력은 UTF-8, 유닉스 줄바꿈, BOM 없음입니다. 원본 SBV가 어떤 인코딩이었든 읽을 때 해독하며, 그 사실을 결과 패널에 표시합니다.

관련 도구