JSON을 CSV로 변환
또는 자막 텍스트를 붙여넣으세요
이 변환에서 달라지는 것
3가지가 버려지거나 결정이 필요합니다
- 스타일
모든 스타일(굵게, 기울임, 색, 외곽선, 그림자)
- 위치
화면 위치 지정(모든 자막 블록이 기본 위치로 돌아갑니다)
- 가라오케
가라오케 타이밍(음절 단위 강조)
이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.
JSON 자막을 CSV로 바꾸면 시간과 글자는 표의 행으로 옮겨지지만, 스타일과 화면 위치, 노래방 표시는 남지 않습니다. 결과는 start,end,text 머리글을 가진 스프레드시트 파일이라 엑셀이나 Google Sheets에서 바로 편집할 수 있습니다.
JSON은 start와 end를 4126 같은 밀리초 정수로 적고, CSV는 같은 순간을 00:00:04.126으로 적습니다. 값은 정확히 같고 반올림이 없습니다. cue가 짧든 길든 표시 시간은 그대로 유지됩니다.
잃는 것은 스타일, 위치, 노래방입니다. tags 배열의 서식은 텍스트 안의 태그로 남지만, styles 객체에 있던 이름 있는 스타일과 글꼴·크기·외곽선 정보는 CSV에 열이 없습니다. cue의 위치도 버려지고, 음절이 켜지는 순간을 적던 노래방 구간은 표시가 사라진 채 글자만 남습니다. 두 줄 자막은 한 셀 안에 두 줄로 들어갑니다.
여러 파일을 한 번에 넣으면 대기열이 차례로 변환하고 결과를 ZIP 하나로 묶습니다. 변환은 브라우저 안에서 실행되며 원본 JSON은 업로드되지 않습니다.
예시
일반적인 JSON 파일을 CSV로 변환
입력
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
결과물
start,end,text
00:00:00.000,00:00:02.000,"Hello world.
Second line."
00:00:02.500,00:00:04.000,"Plain line.
<i>Styled</i> line."
00:00:04.500,00:00:06.000,Roger: I am here.
이 결과에서 사라지는 것: 스타일, 위치, 노래방. 나머지는 줄 단위로 같습니다.
까다로운 입력에 같은 변환 적용
입력
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
결과물
start,end,text
00:00:00.000,00:00:01.000,First.
00:00:01.000,00:00:02.000,Second.
00:00:02.000,00:00:03.000,Third.
실제 파일에서 흔한 손상입니다. 줄 바꿈이 섞이고, 공백이 남고, 빈 필드가 있습니다. 위의 깔끔한 예시와 비교해 파서가 무엇을 넘겨주는지 보세요.
자주 묻는 질문
JSON의 굵기와 기울임은 CSV에서 살아남나요?
줄에 붙은 강조는 살아남고 스타일 표는 그렇지 않습니다. tags 배열의 굵기·기울임·밑줄·색은 CSV 텍스트 안에 <i>, <b>, <u>, <font color=…> 태그로 적힙니다. 반면 JSON이 문서 전체에 선언한 글꼴, 크기, 외곽선, 그림자, 여백은 CSV에 담을 곳이 없습니다.
JSON의 화면 위치는 CSV로 넘어가나요?
넘어가지 않습니다. CSV에는 자막을 어디에 그릴지 적는 열이 없어 cue에 저장된 위치가 버려지고, 모든 자막이 재생기의 기본 위치로 돌아갑니다. 대부분 화면 아래쪽 가운데입니다.
JSON의 노래방 타이밍은 CSV에서 어떻게 되나요?
타이밍은 사라지고 글자는 남습니다. 노래방 정보는 cue가 가진 구간으로 표현되어 음절이 언제 켜지는지를 적는데, CSV에는 줄 안의 순간을 기록할 방법이 없습니다. 그래서 표시가 빠지고 음절은 평범한 CSV 텍스트로 들어갑니다.
JSON을 CSV로 바꾸면 결과가 어떻게 생겼나요?
첫 줄이 start,end,text 머리글이고, 그다음부터 자막 하나에 행 하나가 붙습니다. JSON의 cue가 같은 순서와 같은 글자로 CSV의 행 하나가 되며, 여러 줄은 한 text 셀 안에 들어갑니다.
JSON 시간값은 CSV에서 정확한가요?
밀리초까지 정확합니다. JSON의 4126은 CSV의 00:00:04.126이 되고, 두 형식 모두 그보다 잘게 나누지 않습니다. 반올림이나 이동이 없어 2.9초짜리 자막은 CSV에서도 2.9초입니다.
두 줄짜리 JSON 자막은 CSV에서 어떻게 되나요?
하나의 text 셀 안에 두 줄로 들어가고 CSV 규칙에 따라 큰따옴표로 감싸집니다. 두 줄이 같은 자막이라는 사실은 유지되어 표를 다시 자막으로 바꿔도 한 cue로 읽힙니다.