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

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

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

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

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

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

Ця сторінка переписує CSV у JSON. CSV тримає таблицю з початком, кінцем і текстом, а JSON зберігає всю модель субтитрів у структурованому вигляді. Час переходить із запису 1000,3500,текст у start: 1000, end: 3500. Слова й порядок реплік лишаються тими самими.

У цьому напрямку нічого не втрачається: JSON покриває всі виміри, які є в CSV, зокрема усе, що є в моделі: стилі, позиції, караоке й теги. CSV не містить нічого, чого JSON не вміє зберегти, тож вихідний файл — це ті самі репліки в іншій обгортці.

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

Приклади

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

Вхід

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."

Результат

{
  "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."
      ]
    }
  ]
}

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

Той самий перехід на неохайному файлі 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.

Результат

{
  "version": 1,
  "cues": [
    {
      "id": "1",
      "start": 1000,
      "end": 4000,
      "lines": [
        "Hello there, friend."
      ]
    },
    {
      "id": "2",
      "start": 5000,
      "end": 7000,
      "lines": [
        "Second line."
      ]
    },
    {
      "id": "4",
      "start": 10000,
      "end": 10001,
      "lines": [
        "End before start."
      ]
    },
    {
      "id": "5",
      "start": 12000,
      "end": 14000,
      "lines": [
        "Unquoted comma in text, right here."
      ]
    }
  ]
}

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

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

Як читається CSV-файл CSV під час конвертації у JSON?

Під час перетворення CSV у JSON конвертер визначає ролі колонок за заголовком (start, end, text), тому порядок колонок може відрізнятися від нашого прикладу. Час читається в мілісекундах; якщо колонки end немає, кінець репліки виводять із наступного рядка.

Яку структуру матиме JSON-файл після конвертації CSV?

Це буде об’єкт із масивом реплік: у кожної поля start та end у мілісекундах, рядки тексту й теги. Стилі, позиції та караоке, які CSV уміє зберегти, перейдуть у відповідні поля, а не втратяться в рядку тексту.

Як зміниться запис часу, коли CSV перетворити у JSON?

У CSV момент записано як 1000,3500,текст, а JSON записує його як start: 1000, end: 3500. Точнішого запису, ніж у джерелі, не з’являється, зате жодне значення не округлюється. Слова й порядок реплік при цьому не змінюються.

Чи справді під час конвертації CSV у JSON нічого не втрачається?

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

Як виглядатиме одна репліка CSV у файлі JSON?

У CSV таблиця із заголовком start, end, text і рядком на репліку. У JSON один об’єкт із масивом реплік; час, стилі й позиції задані полями. Перетворення зберігає початок і кінець кожної репліки, тому на екрані вона з’явиться в той самий момент; змінюється лише те, як цей момент записано.

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