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

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

Конвертація форматівТексти пісень (LRC)
Або вставте текст субтитрів

Параметри

Використовується, коли джерело не має часу завершення (простий текст, LRC). Таймлайн у результаті тут генерується, а не конвертується, тож ви отримаєте саме це число.

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

1 річ відкидається або потребує рішення

  • Таймінг

    час завершення реплік — джерело його не зберігає, тож у результаті він генеруватиметься, а не конвертуватиметься

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

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

Втрати тут не косметичні: точний час завершення — у LRC його не записано, тож вихідні значення обчислено. Список складено з можливостей форматів, а не з вашого файлу, тому він однаковий до і після завантаження.

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

Приклади

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

Вхід

[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.

Результат

{
  "version": 1,
  "title": "Sample Song",
  "cues": [
    {
      "start": 12000,
      "end": 15300,
      "lines": [
        "First line of the song."
      ]
    },
    {
      "start": 15300,
      "end": 18000,
      "lines": [
        "Second line.",
        "Second line, translated."
      ]
    },
    {
      "start": 18000,
      "end": 21500,
      "lines": [
        ""
      ]
    },
    {
      "start": 21500,
      "end": 23500,
      "lines": [
        "Final line."
      ]
    }
  ]
}

У цьому вихідному файлі втрачено: точний час завершення. Решта збігається рядок у рядок.

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

Вхід

[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]

Результат

{
  "version": 1,
  "cues": [
    {
      "start": 3000,
      "end": 5500,
      "lines": [
        "Out of order."
      ]
    },
    {
      "start": 5500,
      "end": 7000,
      "lines": [
        "Leading zero omitted, one decimal."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Second with no centiseconds.",
        "Repeated chorus line."
      ]
    },
    {
      "start": 9000,
      "end": 12000,
      "lines": [
        "Repeated chorus line."
      ]
    },
    {
      "start": 12000,
      "end": 14000,
      "lines": [
        ""
      ]
    }
  ]
}

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

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

Чи можна потім повернути JSON назад у LRC?

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

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

Так. Конвертер сортує репліки за початком і пише їх у хронологічному порядку. LRC записує лише початок як [00:12.34], JSON записує час як start: 1000, end: 3500. Якщо у вихідному файлі порядок був іншим, він стане хронологічним, а не зникне.

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

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

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

JSON підтримують власні скрипти й цей редактор. Для порівняння, LRC підтримують музичні плеєри й караоке-програми. Якщо цільовий формат потрібен для конкретної платформи, перевірте її підтримку до конвертації великого пакета.

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

LRC зберігає тільки початок репліки, а JSON зберігає всю модель субтитрів у структурованому вигляді. Тому перетворення — це не зміна розширення, а переписування моделі. У LRC рядок на репліку з позначкою лише на початку; кінець виводять із наступної позначки. У JSON один об’єкт із масивом реплік; час, стилі й позиції задані полями. Саме з цієї різниці й постає список втрат над файловим полем.

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