Przejdź do treści
SubtitleMatrix

Konwerter napisów LRC na CSV

Konwersja formatówTekst piosenki (LRC)
Albo wklej tekst napisów

Opcje

Używane, gdy źródło nie ma czasów końca (zwykły tekst, LRC). Oś czasu w wyniku jest tu generowana, a nie konwertowana, więc dostajesz dokładnie tę liczbę.

Co zmienia ta konwersja

1 rzecz zostaje pominięta albo wymaga decyzji

  • Czasy

    czasy końca bloków — źródło ich nie zapisuje, więc czasy w wyniku zostaną wygenerowane, a nie skonwertowane

Ta lista pochodzi z macierzy możliwości tych dwóch formatów, a nie z konkretnego wczytanego pliku. Konkretny plik może stracić więcej, jeśli używa cech, które format dopuszcza, ale macierz ich nie modeluje.

CSV to tabela, więc napisy trzeba w niej rozłożyć na kolumny. Wynik ma nagłówek `start,end,text` i jeden wiersz na blok; czasy są zapisane jako `00:00:12.000`, a tekst trafia do ostatniej kolumny.

LRC nie zna czasów zakończenia, dlatego koniec każdego wiersza powstaje z początku następnego, a ostatni wiersz dostaje długość z pola na stronie. Jeśli kilka wierszy dzieli jeden znacznik, zostają w jednej komórce rozdzielone znakiem nowej linii — CSV obejmuje taką komórkę cudzysłowami, więc para się nie rozpada.

Metadane LRC nie mają w tabeli kolumn, więc tytuł, wykonawca i przesunięcie są raportowane jako strata. Konwersja działa w przeglądarce i nie wymaga przesyłania pliku.

Przykłady

Typowy plik LRC po konwersji na CSV

Wejście

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

Wynik

start,end,text
00:00:12.000,00:00:15.300,First line of the song.
00:00:15.300,00:00:18.000,"Second line.
Second line, translated."
00:00:18.000,00:00:21.500,
00:00:21.500,00:00:23.500,Final line.

W tym wyniku ginie timing: kolumna end zawiera wartości wyliczone z następnych wierszy LRC.

Ta sama konwersja na nierównym pliku wejściowym

Wejście

[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]

Wynik

start,end,text
00:00:03.000,00:00:05.500,Out of order.
00:00:05.500,00:00:07.000,"Leading zero omitted, one decimal."
00:00:07.000,00:00:09.000,"Second with no centiseconds.
Repeated chorus line."
00:00:09.000,00:00:12.000,Repeated chorus line.
00:00:12.000,00:00:14.000,

Takie uszkodzenia ma wiele prawdziwych plików: mieszane końce wierszy, zbłąkane spacje, puste pola. Porównaj to z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.

Częste pytania

Skąd kolumna end w CSV bierze czas zakończenia wiersza LRC?

Z początku następnego wiersza LRC. Tabela wymaga dwóch czasów, a źródło podaje tylko start, więc parser uzupełnia drugą kolumnę z sąsiedztwa. Ostatni wiersz nie ma następnika i dostaje długość ustawioną na stronie; raport mówi, że ta wartość nie pochodzi z pliku.

Jak wygląda CSV powstały z pliku LRC?

Pierwszy wiersz to nagłówek `start,end,text`, a każdy kolejny odpowiada jednemu blokowi napisów. Czasy mają postać `00:00:12.000`, a tekst jest ostatnią kolumną. Numery bloków nie występują, bo kolejność wyznaczają czasy.

Jak dwuwierszowy blok LRC wychodzi w CSV?

Jako dwie linie w jednej komórce `text`. CSV wymaga wtedy objęcia całej wartości cudzysłowami, więc wewnętrzny znak nowej linii nie kończy wiersza tabeli. Para oryginał–tłumaczenie pozostaje jednym blokiem, a nie dwoma osobnymi rekordami.

Czy kolejność bloków LRC zostaje w CSV?

Tak, po sortowaniu rosnąco według czasu rozpoczęcia. Tabela nie ma numerów, które mogłyby ukryć zły porządek, więc chronologia jest tu jedynym wyznacznikiem. Plik źródłowy z wierszami poza kolejnością zostanie uporządkowany świadomie.

Co tracę, wracając z CSV do LRC?

Timing i precyzję. LRC nie zapisuje końców, więc kolumna `end` znika, a czas startu jest zaokrąglany do setnej sekundy. Zostaje tekst i początki wierszy; style ani pozycje nie mają tu znaczenia, bo oba formaty ich nie przechowują.

Jakie kodowanie ma CSV powstały z LRC?

Plik wychodzi w UTF-8 z końcami wierszy LF i bez BOM. Jeśli LRC był w UTF-16 albo w kodowaniu jednobajtowym Windows, zostanie zdekodowany przed zapisem, a panel wyniku to pokaże. Kodowanie źródła nigdy nie przechodzi do wyniku.

Powiązane narzędzia