Конвертер CSV в LRC
Или вставьте текст субтитров
Что меняет эта конвертация
2 пункта теряются или требуют решения
- Тайминг
время окончания реплик (целевой формат хранит только начало реплики)
- Точность
точность тайминга — часы результата грубее, поэтому каждая метка округляется до ближайших 10 мс
Этот список выведен из матрицы возможностей этих двух форматов, а не из загруженного файла. Конкретный файл может потерять больше, если использует возможности, которые формат допускает, а матрица не моделирует.
Здесь субтитры CSV превращаются в LRC: CSV — это таблица, которую открывает любой редактор электронных таблиц, а LRC — формат текстов песен, где у каждой строки есть только момент начала. CSV хранит полный интервал (00:00:01.000,00:00:03.500), а LRC записывает только начало: та же реплика превратится в [00:01.00]. Точность при этом падает: LRC округляет каждый таймкод до 10 мс, поэтому 00:00:04,001 превратится в 0:00:04.00.
Сайт перечисляет потери до запуска — концы реплик, доли секунды; CSV хранит полный интервал, а LRC запоминает только начало строки: конец будет выводиться из следующей строки, а у последней — из значения по умолчанию 2 000 мс.
Ни один байт субтитров не уходит в сеть: конвертация выполняется в текущей вкладке, а готовые файлы забираются архивом.
Примеры
Обычный файл CSV, переведённый в LRC
Вход
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."
Выход
[00:01.00]The quick brown fox.
[00:04.00]Jumps over, the lazy dog.
[00:07.00]Two lines here.
[00:07.00]And a second one.
Сравните две стороны: CSV хранит полный интервал (00:00:01.000,00:00:03.500), а LRC записывает только начало [00:01.00]; текст сохраняется, а конец реплики в файл не попадает.
Тот же перевод на неаккуратном файле 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.
Выход
[00:01.00]Hello there, friend.
[00:05.00]Second line.
[00:10.00]End before start.
[00:12.00]Unquoted comma in text, right here.
Второй файл намеренно неровный: BOM, переводы строк CRLF. CSV читает его без падения, а LRC записывается заново, поэтому часть дефектов исчезает, но пропущенные блоки не возвращаются.
Частые вопросы
Какие таймкоды получатся на выходе при переводе CSV в LRC?
CSV хранит полный интервал (00:00:01.000,00:00:03.500), а LRC записывает только начало: та же реплика превратится в [00:01.00]. Точность при этом падает: LRC округляет каждый таймкод до 10 мс, поэтому 00:00:04,001 превратится в 0:00:04.00.
Какие данные CSV не переживут перевод в LRC?
CSV хранит полный интервал, а LRC запоминает только начало строки: конец будет выводиться из следующей строки, а у последней — из значения по умолчанию 2 000 мс. точность падает: LRC округляет каждый таймкод до 10 мс, тогда как CSV хранил миллисекунды, поэтому 00:00:04,001 станет 0:00:04.00. Это полный список потерь для пары CSV → LRC; сайт показывает его до запуска.
Как LRC определяет конец реплики, если в CSV он записан?
LRC хранит только начало строки в виде [00:01.00] с точностью до сотых; конца в формате нет. При переводе из CSV конец каждой реплики теряется, а при чтении выводится из начала следующей строки, у последней — 2 000 мс по умолчанию.
Что произойдёт с многострочными репликами CSV в файле LRC?
CSV может хранить несколько строк в одной реплике, а LRC записывает каждую строку отдельной меткой: многострочная реплика превратится в несколько строк с одинаковым временем начала, порядок сохраняется.
В какой кодировке сохраняется LRC и какое у него расширение при переводе из CSV?
Файл LRC записывается в UTF-8 без BOM с переводами строк LF и расширением .lrc; при чтении CSV сайт сам определяет BOM и стиль переводов строк и нормализует их. Кириллица и другие алфавиты сохраняются без замены символов.
Как сайт понимает колонки CSV при переводе в LRC?
В CSV роли колонок определяются по заголовку: start, end и text, причём допускаются синонимы. Всё, что не опознано как время или текст, не попадает в LRC; строки с нечитаемым временем пропускаются и учитываются в отчёте.