मुख्य सामग्री पर जाएँ
SubtitleMatrix

LRC को JSON में बदलें

या सबटाइटल टेक्स्ट पेस्ट करें

विकल्प

जब स्रोत में अंत समय न हों (सादा टेक्स्ट, LRC) तब इस्तेमाल होता है। आउटपुट की टाइमलाइन यहाँ रूपांतरित नहीं, बनाई जाती है, इसलिए यही संख्या मिलेगी।

यह रूपांतरण क्या बदलता है

1 चीज़ छूटती है या फ़ैसला माँगती है

  • टाइमिंग

    क्यू के अंत समय — स्रोत उन्हें नहीं रखता, इसलिए आउटपुट के अंत समय रूपांतरित नहीं, बनाए जाएँगे

यह सूची इन दोनों फ़ॉर्मैट के क्षमता मैट्रिक्स से आती है, आपकी लोड की गई उस फ़ाइल से नहीं। कोई खास फ़ाइल ज़्यादा खो सकती है अगर वह ऐसी सुविधाएँ इस्तेमाल करती हो जिन्हें फ़ॉर्मैट अनुमति देता है पर मैट्रिक्स मॉडल नहीं करता।

यह पेज LRC Lyrics फ़ाइल को SubtitleMatrix JSON में बदलता है। LRC में हर पंक्ति [00:04.00] जैसे कोष्ठक-समय से शुरू होती है; अंत समय नहीं होता और अगली पंक्ति उसे तय करती है। JSON में हर cue के समय 4000 जैसे पूर्णांक मिलीसेकंड हैं, और styles तालिका तथा tags सरणी सब कुछ संरचित रूप में रहता है।

जो अनुमान से बनता है: अंत समय अनुमान से बनाए जाते हैं (स्रोत उन्हें नहीं रखता)। अंत समय आपकी फ़ाइल में नहीं है, इसलिए JSON के लिए वह अनुमान से बनाया जाता है। ये चीज़ें चुपचाप नहीं गिरतीं — फ़ाइल डालने से पहले ही ऊपर की सूची में लिखी रहती हैं।

SubtitleMatrix JSON का आउटपुट .json फ़ाइल है और उसमें version, styles और cues वाली संरचना बनती है और समय पूर्णांक मिलीसेकंड रहते हैं। चाहे एक फ़ाइल डालें या पूरी सीरीज़, सब कुछ एक-एक करके चलता है, बीच में रोका जा सकता है, और सारे नतीजे एक ZIP में मिलते हैं। कोई सर्वर नहीं, कोई अपलोड नहीं — सब कुछ आपके ब्राउज़र में।

उदाहरण

एक सामान्य 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 से JSON: वही रूपांतरण एक कठिन इनपुट पर

इनपुट

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

असली LRC फ़ाइलों में BOM, मिश्रित पंक्ति-अंत, खाली क्षेत्र या बिगड़ा समय-कोड मिलता है। ऊपर की साफ़ मिसाल से मिलाकर देखिए कि पार्सर कितना माफ़ करता है और क्या रिपोर्ट करता है।

अक्सर पूछे जाने वाले सवाल

LRC की आखिरी पंक्ति JSON में कितनी देर दिखेगी?

LRC में हर पंक्ति केवल शुरुआत बताती है, इसलिए JSON में अंत अगली पंक्ति के शुरू होने से लिया जाता है। आखिरी पंक्ति के बाद कोई अगली पंक्ति नहीं होती, इसलिए उसे पेज पर दी गई अवधि मिलती है और रिपोर्ट उस अंत को अनुमानित बताती है। शुरुआती समय असली हैं — [00:04.00] 4000 बनता है।

LRC के [ti:] और [ar:] मेटाडेटा JSON में रखे जाते हैं?

शीर्षक JSON के title क्षेत्र में बच जाता है, पर कलाकार गिर जाता है क्योंकि सबटाइटल फ़ॉर्मैट में उसका कोई स्थान नहीं। [offset:] लागू नहीं किया जाता, इसलिए JSON के समय वही रहते हैं जो LRC में लिखे हैं; JSON को अलग से कोई संकेत नहीं भेजा जाता।

LRC से JSON बनाने की असली कीमत क्या है?

इस दिशा में 1 तरह की जानकारी गिरती है: अंत समय अनुमान से बनाए जाते हैं (स्रोत उन्हें नहीं रखता)। मिसाल के लिए, LRC सिर्फ़ शुरुआत रखता है, इसलिए JSON के अंत का समय अनुमान से भरा जाता है। यह सूची आपकी फ़ाइल डालने से पहले ही दिखती है, और फ़ाइल आने के बाद उसमें बताया जाता है कि उसमें से कितनी चीज़ें वाकई मौजूद थीं।

JSON में LRC की cue किस संरचना में बदलती है?

JSON में हर LRC cue cues सरणी का एक ऑब्जेक्ट बनती है जिसमें start और end पूर्णांक मिलीसेकंड होते हैं, जैसे 4000। स्टाइल styles ऑब्जेक्ट में और रंग-ज़ोर tags सरणी में संरचित रूप में रखे जाते हैं।

एक ही समय वाली LRC की दो पंक्तियाँ JSON में क्या बनती हैं?

LRC में एक ही समय पर कई पंक्तियाँ अक्सर मूल गीत और उसका अनुवाद होती हैं। वे एक ही क्षण पर शुरू होती हैं, इसलिए JSON में उन्हें दो अलग cues के बजाय एक ही cue की दो पंक्तियाँ बनाया जाता है — इससे वे एक साथ दिखती हैं और एक-दूसरे से होड़ नहीं करतीं।

JSON से LRC की उलटी दिशा उतनी ही सुरक्षित है?

नहीं। JSON से LRC की उलटी दिशा में भी cue के अंत समय (लक्ष्य केवल शुरुआत रखता है), सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), कराओके समय (अक्षर-दर-अक्षर हाइलाइट), समय की सूक्ष्मता (लक्ष्य की घड़ी 10 ms की है, इसलिए हर समय पूर्णांकित होता है) जैसी जानकारी गिरती है, क्योंकि दोनों फ़ॉर्मैट अलग-अलग चीज़ें रखते हैं और उलटी दिशा की अपनी कमियाँ हैं। और इस दिशा में LRC से JSON में जो छूटा — जैसे LRC सिर्फ़ शुरुआत रखता है, इसलिए JSON के अंत का समय अनुमान से भरा जाता है — वह JSON में कहीं दर्ज नहीं है, इसलिए किसी भी उलटे रूपांतरण से उसे दोबारा नहीं बनाया जा सकता।

संबंधित टूल