Przejdź do treści
SubtitleMatrix

Konwerter napisów TXT na JSON

Konwersja formatówTranskrypcja w czystym tekście
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

    sama oś czasu — źródło nie zapisuje czasów, więc oś wyniku jest generowana, a nie konwertowana

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.

Ta strona zamienia TXT na JSON. Upuść plik — albo wklej tekst — a dostaniesz wersję JSON. Konwersja odbywa się w całości w Twojej przeglądarce, więc nic nie jest wysyłane i konto nie jest potrzebne.

Te dwa formaty nie przechowują tego samego i różnica nie jest kosmetyczna: TXT nie ma żadnego znacznika czasu, więc oś czasu w wyniku powstaje tutaj. Każdy blok ma pola start i end w milisekundach oraz tablicę lines — bez identyfikatora, bo plik tekstowy żadnego nie ma.

Jeden plik wystarczy, cały sezon też: kolejka przetwarza je po kolei, a wyniki pobierasz razem jako jeden ZIP.

Przykłady

Typowy plik TXT zamieniony na JSON

Wejście

The quick brown fox jumps over the lazy dog.

Second paragraph, first line.
Second paragraph, second line.

Wynik

{
  "version": 1,
  "cues": [
    {
      "start": 0,
      "end": 2000,
      "lines": [
        "The quick brown fox jumps over the lazy dog."
      ]
    },
    {
      "start": 2000,
      "end": 4000,
      "lines": [
        "Second paragraph, first line."
      ]
    },
    {
      "start": 4000,
      "end": 6000,
      "lines": [
        "Second paragraph, second line."
      ]
    }
  ]
}

Oś czasu w wyniku nie pochodzi z pliku — została zbudowana na tej stronie. Cała reszta zgadza się wiersz po wierszu.

Ta sama konwersja na niewygodnym wejściu

Wejście


Hello world.

Second block.

Wynik

{
  "version": 1,
  "cues": [
    {
      "start": 0,
      "end": 2000,
      "lines": [
        "Hello world."
      ]
    },
    {
      "start": 2000,
      "end": 4000,
      "lines": [
        "Second block."
      ]
    }
  ]
}

Takie uszkodzenia mają prawdziwe pliki: mieszane końce wierszy, luźne spacje, puste pola. Porównaj to z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.

Częste pytania

Skąd biorą się czasy w konwersji TXT na JSON?

Są generowane, bo wejście ich nie ma. Pierwszy wiersz zaczyna się od zera, każdy następny tam, gdzie skończył się poprzedni, a pole czasu trwania decyduje o długości każdego bloku. JSON zapisuje potem te chwile jako liczby całkowite milisekund, więc nic z wygenerowanej osi nie jest zaokrąglane.

Jak wygląda wynik, gdy TXT staje się JSON?

Jak JSON: tablica obiektów bloków, każdy z polami start i end w milisekundach oraz tablicą lines. Każdy blok TXT staje się jednym blokiem JSON, w tej samej kolejności i z tym samym tekstem.

Czy w TXT na JSON bloki zachowują kolejność?

Tak, a po drodze są sortowane po czasie startu — najwcześniejsze pierwsze, tak jak oczekuje każdy format na tej stronie i jak czytają je odtwarzacze. Jeśli Twój plik TXT miał bloki w innej kolejności, wynik JSON je uporządkuje; to zmiana struktury pliku, nie treści, i jest zamierzona.

Czy mogę przekonwertować JSON z powrotem na TXT?

Tak i ten kierunek ma własną listę: konwersja JSON na TXT gubi całą oś czasu, stylizację, pozycjonowanie, karaoke oraz informację o przynależności wierszy do jednego bloku. Lista różni się od powyższej, bo oba formaty przechowują co innego.

Czy wynik JSON zachowa kodowanie pliku TXT?

Nie — wynik jest w UTF-8, z uniksowymi końcami wierszy i bez BOM, niezależnie od tego, czego używał plik TXT. Plik w UTF-16 albo w windowsowym kodowaniu jednobajtowym jest dekodowany przy wejściu (panel wyniku to sygnalizuje), a na wyjściu zawsze dostajesz ten sam JSON w UTF-8.

Powiązane narzędzia