VTT को JSON में बदलें
या सबटाइटल टेक्स्ट पेस्ट करें
यह रूपांतरण क्या बदलता है
1 चीज़ छूटती है या फ़ैसला माँगती है
- फ़ॉर्मैट-विशिष्ट सामग्री
वह सामग्री जो स्रोत फ़ॉर्मैट अपने क्यू के बाहर रखता है (क्यू से बाहर के ब्लॉक, हेडर टेक्स्ट, प्रति-क्यू सेटिंग, टिप्पणी की गई घटनाएँ) — लक्ष्य फ़ॉर्मैट में उसके लिए कोई जगह नहीं
यह सूची इन दोनों फ़ॉर्मैट के क्षमता मैट्रिक्स से आती है, आपकी लोड की गई उस फ़ाइल से नहीं। कोई खास फ़ाइल ज़्यादा खो सकती है अगर वह ऐसी सुविधाएँ इस्तेमाल करती हो जिन्हें फ़ॉर्मैट अनुमति देता है पर मैट्रिक्स मॉडल नहीं करता।
WebVTT (VTT) और SubtitleMatrix JSON दोनों सबटाइटल रखते हैं, पर उनका ढाँचा अलग है; यह पेज एक को दूसरे में बदलता है। VTT में WEBVTT हेडर के बाद cues आती हैं, समय 00:00:04.000 की तरह बिंदु के साथ लिखा जाता है, और NOTE, STYLE व REGION ब्लॉक तथा align जैसी सेटिंग cue के बाहर रहते हैं।
जो नहीं बचता: cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट)। WEBVTT हेडर, NOTE/STYLE/REGION ब्लॉक और align/position जैसी cue सेटिंग JSON में नहीं जाते, क्योंकि वहाँ उनके लिए कोई अनुभाग नहीं है। ये चीज़ें चुपचाप नहीं गिरतीं — फ़ाइल डालने से पहले ही ऊपर की सूची में लिखी रहती हैं।
SubtitleMatrix JSON का नतीजा .json फ़ाइल के रूप में मिलता है; version, styles और cues वाली संरचना बनती है और समय पूर्णांक मिलीसेकंड रहते हैं। बैच में डाली गई हर फ़ाइल अलग से संसाधित होती है, बीच में रोकने पर बाकी नहीं चलतीं, और अंत में सब एक ZIP में मिलती हैं। फ़ाइल आपके ब्राउज़र से बाहर नहीं जाती।
उदाहरण
एक सामान्य VTT फ़ाइल, JSON में बदली गई
इनपुट
WEBVTT
intro
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.
आउटपुट
{
"version": 1,
"cues": [
{
"id": "intro",
"start": 1000,
"end": 4000,
"lines": [
"Hello there."
]
},
{
"start": 4500,
"end": 8000,
"lines": [
{
"text": "Second line with italics.",
"tags": [
{
"kind": "italic",
"start": 17,
"end": 24
}
]
}
]
}
]
}
इस आउटपुट में छूटा: फ़ॉर्मैट-विशिष्ट सामग्री। बाकी सब पंक्ति-दर-पंक्ति मेल खाता है।
VTT से JSON: वही रूपांतरण एक कठिन इनपुट पर
इनपुट
a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.
आउटपुट
{
"version": 1,
"cues": [
{
"start": 1000,
"end": 2000,
"lines": [
"No header, two lines before the timecode."
]
}
]
}
असली VTT फ़ाइलों में BOM, मिश्रित पंक्ति-अंत, खाली क्षेत्र या बिगड़ा समय-कोड मिलता है। ऊपर की साफ़ मिसाल से मिलाकर देखिए कि पार्सर कितना माफ़ करता है और क्या रिपोर्ट करता है।
अक्सर पूछे जाने वाले सवाल
VTT से JSON तक समय कैसे पहुँचता है?
VTT का 00:00:04.000 JSON में 4000 जैसा पूर्णांक मिलीसेकंड बनता है। कोई पूर्णांकन नहीं होता, क्योंकि JSON की घड़ी VTT से महीन या बराबर है।
VTT की cue के बाहर की सामग्री JSON फ़ाइल में बचती है?
VTT की वह सामग्री cue मॉडल के बाहर रहती है — ये ब्लॉक और सेटिंग VTT के अपने ढाँचे हैं, और लक्ष्य फ़ॉर्मैट के पास इनके लिए कोई स्तंभ या अनुभाग नहीं है। JSON में उसके लिए कोई अनुभाग, स्तंभ या विशेषता नहीं है, इसलिए वह गिर जाती है और रिपोर्ट में अलग से गिनी जाती है; JSON का अपना हेडर उसे दोबारा नहीं बना सकता।
VTT से JSON में कौन-कौन सी जानकारी छूटती है?
इस दिशा में 1 तरह की जानकारी गिरती है: cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट)। मिसाल के लिए, VTT का WEBVTT हेडर, NOTE/STYLE/REGION ब्लॉक और align/position जैसी cue सेटिंग JSON के किसी अनुभाग में नहीं बसता। यह सूची आपकी फ़ाइल डालने से पहले ही दिखती है, और फ़ाइल आने के बाद उसमें बताया जाता है कि उसमें से कितनी चीज़ें वाकई मौजूद थीं।
VTT से JSON बनाने पर समय किस रूप में लिखे जाते हैं?
JSON में हर VTT cue cues सरणी का एक ऑब्जेक्ट बनती है जिसमें start और end पूर्णांक मिलीसेकंड होते हैं, जैसे 4000। स्टाइल styles ऑब्जेक्ट में और रंग-ज़ोर tags सरणी में संरचित रूप में रखे जाते हैं।
VTT के हार्ड लाइन-ब्रेक JSON में बचते हैं?
दोनों फ़ॉर्मैट एक cue के भीतर हार्ड लाइन-ब्रेक रख सकते हैं, इसलिए VTT की दो पंक्तियाँ JSON में भी एक ही cue की दो पंक्तियाँ रहती हैं और एक साथ दिखती हैं। कुछ भी जोड़ा या तोड़ा नहीं जाता; बदलता सिर्फ़ समय का लिखावटी रूप है।
क्या JSON से VTT में वापस बदलने पर छूटी जानकारी लौट आती है?
नहीं। JSON से VTT की उलटी दिशा में भी बोल्ड और इटैलिक के अलावा बाकी स्टाइलिंग (रंग, आउटलाइन, छाया, मार्जिन), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), कराओके समय (अक्षर-दर-अक्षर हाइलाइट) जैसी जानकारी गिरती है, क्योंकि दोनों फ़ॉर्मैट अलग-अलग चीज़ें रखते हैं और उलटी दिशा की अपनी कमियाँ हैं। और इस दिशा में VTT से JSON में जो छूटा — जैसे VTT का WEBVTT हेडर, NOTE/STYLE/REGION ब्लॉक और align/position जैसी cue सेटिंग JSON के किसी अनुभाग में नहीं बसता — वह JSON में कहीं दर्ज नहीं है, इसलिए किसी भी उलटे रूपांतरण से उसे दोबारा नहीं बनाया जा सकता।