Перейти до основного вмісту
SubtitleMatrix

Конвертер CSV у TTML

Або вставте текст субтитрів

Що змінює ця конвертація

У цьому напрямку нічого не втрачається — кожна можливість вихідного формату має куди подітися в цільовому.

Цей перелік походить із матриці можливостей для цих двох форматів, а не з конкретного завантаженого файлу. Певний файл може втратити більше, якщо використовує можливості, які формат дозволяє, а матриця не моделює.

Ця сторінка переписує CSV у TTML. CSV тримає таблицю з початком, кінцем і текстом, а TTML описує час і оформлення в XML. Час переходить із запису 1000,3500,текст у begin=00:00:01.250, end=00:00:03.500. Слова й порядок реплік лишаються тими самими.

У цьому напрямку нічого не втрачається: TTML покриває всі виміри, які є в CSV, зокрема повне оформлення через <style> і атрибути tts:*. CSV не містить нічого, чого TTML не вміє зберегти, тож вихідний файл — це ті самі репліки в іншій обгортці.

Файли обробляються по одному в браузері, без облікового запису й без завантаження на сервер; пакет можна скасувати посеред роботи.

Приклади

Типовий файл CSV, переписаний у TTML

Вхід

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."

Результат

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:03.500">The quick brown fox.</p>
<p begin="00:00:04.000" end="00:00:06.250">Jumps over, the lazy dog.</p>
<p begin="00:00:07.000" end="00:00:09.000">Two lines here.<br/>And a second one.</p>  </body>
</tt>

Обидві колонки збігаються рядок у рядок: переписується лише синтаксис, а текст і час лишаються тими самими.

Той самий перехід на неохайному файлі CSV

Вхід

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

Результат

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:04.000">Hello there, friend.</p>
<p begin="00:00:05.000" end="00:00:07.000">Second line.</p>
<p begin="00:00:10.000" end="00:00:10.001">End before start.</p>
<p begin="00:00:12.000" end="00:00:14.000">Unquoted comma in text, right here.</p>  </body>
</tt>

Справжні файли приходять із BOM, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.

Часті запитання

Чи збережеться порядок реплік із CSV у TTML?

Так. Конвертер сортує репліки за початком і пише їх у хронологічному порядку. CSV записує час як 1000,3500,текст, TTML записує час як begin=00:00:01.250, end=00:00:03.500. Якщо у вихідному файлі порядок був іншим, він стане хронологічним, а не зникне.

У якому кодуванні буде збережено файл TTML після конвертації з CSV?

Файл TTML пишеться в UTF-8, а кодування вхідного CSV визначається автоматично, разом із BOM. Кирилиця, грецька чи емодзі не замінюються знаками питання; закінчення рядків у вихідному TTML — LF.

Які програми відкриють TTML після конвертації з CSV?

TTML підтримують мовленнєві платформи й конвеєри на кшталт Netflix. Для порівняння, CSV підтримують Excel, Google Sheets і скрипти. Якщо цільовий формат потрібен для конкретної платформи, перевірте її підтримку до конвертації великого пакета.

Чим CSV відрізняється від TTML у цьому напрямку?

CSV тримає таблицю з початком, кінцем і текстом, а TTML описує час і оформлення в XML. Тому перетворення — це не зміна розширення, а переписування моделі. У CSV таблиця із заголовком start, end, text і рядком на репліку. У TTML XML-документ із репліками <p begin=… end=…> і заголовком <head>. Саме з цієї різниці й постає список втрат над файловим полем.

Як перевірити, що конвертація CSV у TTML нічого не зіпсувала?

Порівняйте кількість реплік, час першої та останньої і список втрат, який сайт показує до завантаження. CSV записує час як 1000,3500,текст, TTML записує час як begin=00:00:01.250, end=00:00:03.500; якщо кількість і межі збігаються, а перелік втрат вас влаштовує, файл готовий.

Споріднені інструменти