Ana içeriğe geç
SubtitleMatrix

LRC’den JSON’a dönüştürücü

Format dönüştürmeŞarkı sözleri (LRC)
Ya da altyazı metnini yapıştırın

Seçenekler

Kaynakta bitiş zamanı yoksa kullanılır (düz metin, LRC). Çıktıdaki zaman çizelgesi dönüştürülmek yerine burada üretilir, yani elde ettiğiniz sayı budur.

Bu dönüşüm neyi değiştirir

1 şey atılır ya da bir karar gerektirir

  • Zamanlama

    replik bitiş zamanları — kaynak bunları kaydetmiyor, yani çıktınınkiler dönüştürülmek yerine üretilecek

Bu liste, yüklediğiniz belirli dosyadan değil, bu iki formatın yetenek matrisinden gelir. Belirli bir dosya, formatın izin verdiği ama matrisin modellemediği özellikler kullanıyorsa daha fazlasını kaybedebilir.

LRC’den JSON’a geçişte yalnızca sarmalayıcı değişir; altyazının kendisi değişmez. LRC’de bir satırın başlangıcı [00:01.25] diye yazılır; bitiş zamanı yoktur, satır bir sonraki satır başlayana kadar ekranda kalır. Repliklerin sırası ve metni korunur.

Bu yönde kaybedilenler şunlardır: bitiş zamanları kaynaktan gelmez, bir sonraki satırdan türetilir. JSON çıktısında zamanlar tam sayı milisaniye, metin satır dizisi olarak yazılır.

Dönüştürme tamamen tarayıcınızda çalışır: dosya hiçbir sunucuya gitmez, hesap açmanız gerekmez. Tek dosya da olur, bir sezonluk dizi de: sıra dosyaları tek tek işler, istediğiniz an durdurabilirsiniz ve sonuçlar tek bir ZIP olarak iner.

Örnekler

LRC’den JSON’a geçen tipik bir dosya

Girdi

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

Çıktı

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

Bu çıktıda düşenler: bitiş türetilir. Metin ve replik sırası satır satır aynı kalır; iki sütunu yan yana karşılaştırabilirsiniz.

Aynı dönüştürme, dağınık bir girdi üzerinde

Girdi

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

Çıktı

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

Bu, gerçek dosyalarda karşılaşılan hasardır: BOM, Windows satır sonları, boş bırakılmış alanlar. Hiçbiri işlemi durdurmaz; okunamayan bölümler sessizce kaybolmaz, raporda görünür.

Sık sorulan sorular

LRC dosyası JSON olurken metin ve zamanlama yerinde kalır mı?

Replik metni, sırası ve zaman çizelgesi LRC’den JSON’a olduğu gibi geçer. Değişen şey sarmalayıcıdır: LRC’de bir satırın başlangıcı [00:01.25] diye yazılır; bitiş zamanı yoktur, satır bir sonraki satır başlayana kadar ekranda kalır. Bununla birlikte bitiş zamanları kaynaktan gelmez, bir sonraki satırdan türetilir.

LRC’de bitiş zamanı yok; JSON dosyasında bitişler nereden geliyor?

JSON dosyasında bir satırın bitişi, bir sonraki satırın başlangıcıdır; oynatıcı da vurgulamayı böyle ilerletir. Son satırın ardında bir satır olmadığı için bitişi panelde ayarladığınız süre kadar uzatılır ve bu üretilen bitiş raporda ayrıca bildirilir. Başlangıç anları ise LRC’den aynen gelir.

LRC’de bitiş zamanı yok; JSON’da nasıl tamamlanıyor?

LRC’den JSON’a geçişte bitiş, bir sonraki satırın başlangıcından türetilir. Son satır için panelde ayarladığınız süre kullanılır ve bu üretilen bitiş raporda bildirilir. Başlangıç anları LRC’den aynen gelir.

LRC dosyasını JSON’a dönüştürdükten sonra onu hangi oynatıcılar açar?

LRC dosyasından üretilen JSON dosyasını şu araçlar açar: JSON biçimi bu siteye ve kendi araçlarınıza yöneliktir; oynatıcılar doğrudan açmaz, ama bütün alanları kayıpsız taşır.

BOM ve CRLF içeren bir LRC dosyası JSON’a dönüşürken sorun çıkarır mı?

Çıkarmaz. LRC dosyası okunurken BOM ve karışık satır sonları temizlenir, JSON çıktısı tek tip satır sonuyla yazılır. Tanınmayan bölümler atlanır ve sayılır; dönüşüm hiçbir zaman hata verip durmaz, anlaşılmayan her şey raporda görünür.

LRC dosyalarımı toplu olarak JSON’a dönüştürebilir miyim?

Evet. Birden çok LRC dosyasını bir seferde sürükleyip bırakabilirsiniz; kuyruk hepsini sırayla işler, istediğiniz an durdurabilirsiniz ve JSON çıktıları tek bir ZIP olarak iner. Dosyalar tarayıcıdan çıkmaz, sunucuya hiçbir şey yüklenmez.

JSON dosyasını yeniden LRC’ye dönüştürürsem aynı dosyayı elde eder miyim?

LRC → JSON → LRC gidiş-dönüşünde şunlar geri gelmez: kaynakta olmayan bitiş zamanları. Metin, replik sırası ve başlangıç anları geri gelir, ama bu özellikler ikinci dönüşümde yeniden üretilemez. Gidiş-dönüşü bir yedek olarak değil, biçim değişikliği olarak düşünün.

İlgili araçlar