본문으로 바로 가기
SubtitleMatrix

ASS를 CSV로 변환

형식 변환Advanced SubStation Alpha (ASS)
또는 자막 텍스트를 붙여넣으세요

이 변환에서 달라지는 것

4가지가 버려지거나 결정이 필요합니다

  • 스타일

    모든 스타일(굵게, 기울임, 색, 외곽선, 그림자)

  • 위치

    화면 위치 지정(모든 자막 블록이 기본 위치로 돌아갑니다)

  • 가라오케

    가라오케 타이밍(음절 단위 강조)

  • 형식 고유 내용

    원본 형식이 자막 블록 밖에 두는 내용(자막 블록이 아닌 구획, 머리말 텍스트, 자막 블록별 설정, 주석 처리된 이벤트) — 대상 형식에는 들어갈 자리가 없습니다

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

이 페이지는 ASS 자막을 스프레드시트용 표로 바꿉니다. start,end,text 세 열과 머리글 한 줄, 큐당 한 행이며, 시간 코드는 CSV 구분자와 충돌하지 않도록 점을 씁니다.

ASS의 0:00:01.00은 00:00:01.000이 되고, 본문에 붙은 {\i1}·{\b1}·{\u1}·색은 <i>·<b>·<u>·<font color> 태그로 텍스트에 남습니다. 두 줄짜리 큐는 따옴표로 감싼 한 칸 안에 줄 바꿈이 들어갑니다.

사라지는 것은 스타일 표, 화면 위치, 카라오케 타이밍, cue 모델 밖의 구성입니다. 시작과 끝 시간은 밀리초까지 보존되므로 표를 다시 자막으로 되돌릴 수 있습니다.

여러 파일을 넣으면 순서대로 처리되고 중간에 취소할 수 있으며 ZIP 하나로 내려옵니다. 변환은 브라우저 안에서 실행됩니다.

스프레드시트에서 시간을 고친 뒤 다시 자막으로 돌아올 계획이라면, text 칸의 인라인 태그를 지우지 마세요. 태그가 남아 있어야 원래 강조가 복원됩니다. 행 순서는 시작 시간을 따르므로 정렬은 건드리지 않아도 됩니다.

예시

전형적인 ASS 파일을 CSV로 변환

입력

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

결과물

start,end,text
00:00:01.000,00:00:04.000,Hello there.
00:00:05.000,00:00:08.500,<i>Italic</i> and <b>bold</b> text.
00:00:09.000,00:00:12.000,Positioned
00:00:13.000,00:00:16.000,<c>ka</c><c>ra</c><c>o</c><c>ke</c>
00:00:17.000,00:00:20.000,"Line one
Line two"
00:00:21.000,00:00:24.000,Top left

이 출력에서 빠진 것: 스타일, 위치, 카라오케, 형식 고유 구성. 나머지는 줄 단위로 일치합니다.

같은 변환을 지저분한 입력으로

입력

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

결과물

start,end,text
00:00:01.000,00:00:04.000,"Hello, world"
00:00:05.000,00:00:08.000,"{\fad(300,300)}Unmodelled override"
00:00:09.000,00:00:12.000,"Both, wrong order"
00:00:13.000,00:00:16.500,One decimal centisecond
00:00:17.000,00:00:20.000,"Soft
break"

실제 파일에 흔한 손상입니다. 줄 바꿈이 섞이고, 공백이 남고, 필드가 비어 있습니다. 위의 깔끔한 예와 비교해 해석기가 무엇을 용서하는지 보세요.

자주 묻는 질문

ASS를 CSV로 바꾸면 무엇이 사라지나요?

스타일, 화면 위치, 카라오케, 그리고 cue 모델 밖의 구성입니다. 글꼴·색·외곽선 같은 스타일 표와 {\pos}·{\an}·{\move} 위치, \k 계열의 음절 타이밍, [Script Info]·[Fonts]·Comment: 줄이 모두 CSV에 자리가 없습니다. 본문 글자와 시작·끝 시간은 남습니다.

ASS의 시간 코드는 CSV에서 어떻게 적히나요?

ASS의 0:00:01.00(1/100초)을 00:00:01.000(1/1000초)으로 바꿔 start·end 열에 적습니다. 쉼표는 CSV의 구분자이므로 시간 코드 안에는 점을 씁니다. 두 값 모두 밀리초까지 정확히 대응합니다.

CSV 출력의 열 구성은 무엇인가요?

start,end,text 세 열과 머리글 한 줄입니다. 큐 하나가 행 하나가 되고, 큐가 두 줄이면 따옴표로 감싼 한 칸 안에 줄 바꿈이 들어갑니다. 스프레드시트에서 시간으로 정렬하거나 겹침을 찾는 데 쓸 수 있습니다.

굵게·기울임은 CSV로 넘어가나요?

본문에 붙은 강조는 <i>·<b>·<u>·<font color> 태그로 텍스트에 적혀 남습니다. 반면 ASS의 전역 스타일 표(글꼴·크기·외곽선·여백)는 사라집니다. cue 수준 형식이 담을 수 있는 것은 글자에 붙은 강조뿐입니다.

ASS를 CSV로 바꾸면 카라오케 음절은 어떻게 되나요?

음절 글자는 남고 타이밍만 사라집니다. \k50 같은 값이 각 음절이 언제 밝아지는지 정했지만 CSV에는 줄 안의 시점을 기록할 자리가 없어, 음절은 평범한 텍스트로 들어갑니다.

ASS를 CSV로 바꾸면 화면 위치는 어디로 가나요?

CSV는 자막이 화면 어디에 그려지는지 말할 수 없습니다. {\pos(320,240)}·{\an7}·{\move} 같은 코드는 출력에서 빠지고, 재생할 때는 플레이어 기본 위치(대개 하단 중앙)로 돌아갑니다.

Comment: 줄과 내장 글꼴도 CSV에 들어가나요?

아니요. Dialogue: 줄만 자막이 됩니다. Comment: 줄, [Script Info]의 나머지 키, [Fonts]·[Graphics]에 들어 있는 글꼴과 그림은 모두 빠지며, 제목도 CSV에는 들어갈 자리가 없습니다.

ASS 큐 순서는 CSV에서 유지되나요?

네. 시작 시간이 빠른 순으로 정렬되며, 원본이 순서를 벗어나 있었다면 출력에서 바로잡힙니다. 이것은 내용이 아니라 파일 구조의 변경이고 의도된 동작입니다.

CSV를 다시 ASS로 되돌릴 수 있나요?

가능하지만 방향이 다릅니다. CSV→ASS는 정밀도 손실을 보고하며, 이 페이지에서 사라진 스타일·위치·카라오케는 CSV에 기록이 없으므로 되살아나지 않습니다.

ASS 파일의 인코딩이 CSV 출력에 유지되나요?

아니요. 입력이 UTF-16이나 윈도 단일 바이트 인코딩이어도 출력은 UTF-8, 유닉스 줄 바꿈, BOM 없음입니다. 읽는 과정에서 디코딩이 일어나면 결과 패널이 알려 줍니다.

관련 도구