ऑटो-क्लिप अब सचमुच शॉर्ट-फ़ॉर्म वीडियो हैं
हर समाप्त गेम पहले से ही वर्टिकल क्लिप बन जाता था — बस सब एक जैसे लगते थे। अब हर क्लिप एक हुक से शुरू होती है, पैसों को उजागर करती है और एक कार्ड पर ख़त्म होती है।

आसान शब्दों में
opolyx समाप्त हुए गेम को वर्टिकल हाइलाइट क्लिप में बदलकर अपने आप पोस्ट करता है। यह हिस्सा काफ़ी समय से काम कर रहा है। दिक़्क़त यह थी कि तीन क्लिप देखना लगभग एक ही क्लिप देखने जैसा लगता था।
- फ़्रेम का क़रीब 40% हिस्सा बीच में रखे बोर्ड के इर्द-गिर्द ख़ाली पृष्ठभूमि था;
- वे गेम के बीच किसी भी पासे की चाल से शुरू होती थीं — और वही फ़्रेम थंबनेल भी बनता था;
- चरम पल पढ़ा ही नहीं जाता था: 12,000 का किराया छोटी-सी फ़ीड में एक धूसर पंक्ति भर था;
- हर घटना को स्क्रीन पर बराबर समय मिलता था, इसलिए भूमिका उतनी ही लंबी लगती थी जितना असली पल;
- वे ख़ामोश थीं, उनका कोई अंत नहीं था, और कैप्शन तथा हैशटैग कभी नहीं बदलते थे।
अब हर क्लिप उँडेली नहीं, निर्देशित की जाती है: वह एक हुक से शुरू होती है जो बताती है कि आप क्या देखने वाले हैं, बोर्ड पूरा फ़्रेम भरता है, पैसे और बड़ी घटनाएँ ठीक उसी क्षण उजागर होती हैं, और अंत में एक कार्ड बताता है कि खेलना कहाँ है। रफ़्तार हिसाब-किताब वाली चालों पर से सरक जाती है और अहम पल पर धीमी हो जाती है — जिसमें ऐसे नतीजे से ठीक पहले एक छोटा ठहराव भी शामिल है जिसका अंदाज़ा आप लगा चुके होते हैं।
कैप्शन, शीर्षक और हैशटैग अब एक ही पंक्ति के बजाय कई विकल्पों के समूह से आते हैं, और जब एक ही गेम से कई क्लिप बनती हैं तो उन्हें अलग-अलग बातों पर चुना जाता है — एक ही दिवालियेपन के तीन दृश्य नहीं।
तकनीकी जानकारी
रेंडरर एक छोटे VPS पर चलने वाला वर्कर है जो लाइव साइट को हेडलेस Chromium में लोड करके रीप्ले रूट रिकॉर्ड करता है। यही असली लाभ है: क्लिप का पूरा रूप-रंग वेब कोड है, इसलिए वह सामान्य डिप्लॉय के साथ चला जाता है और वर्कर में कुछ करने की ज़रूरत नहीं पड़ती।
सबसे अहम कड़ी है ऐंकर पल को दोबारा पाना। रीप्ले रूट को केवल एक समय-सीमा मिलती है, "वह पल" नहीं — इसलिए पेज पूरे इवेंट लॉग पर इंजन की अपनी हाइलाइट स्कोरिंग दोबारा चलाता है और उस विंडो के भीतर सबसे ऊँचे अंक वाला बिंदु ले लेता है। इससे वही पल प्रमाणित रूप से वापस मिल जाता है जिसे वर्कर ने चुना था, और इसी वजह से दृश्य पक्ष वर्कर को छुए बिना जारी किया जा सका।
// lib/clip/pacing.ts — screen time is a function of what the event is
const BOOKKEEPING = 110; // turn_ended, dice_rolled: skim
const NORMAL = 320;
const ANCHOR_MIN = 1400; // the moment the clip exists for
const PREDICT_FREEZE = 600; // "what happens next?" before a guessable payoff
export function paceFor(event: DomainEvent, isAnchor: boolean): number {
if (isAnchor) return Math.max(ANCHOR_MIN, NORMAL);
return isBookkeeping(event) ? BOOKKEEPING : NORMAL;
}| पहले | अब | |
|---|---|---|
| संरचना | एक सतत रीप्ले | हुक, खेल, अंतिम कार्ड |
| रफ़्तार | 700 ms × 65 घटनाएँ | घटना के महत्व के अनुसार 110–1400 ms |
| लंबाई | हमेशा ~45 सेकंड | 14–27 सेकंड, पल के अनुसार |
| पोस्ट का टेक्स्ट | एक कैप्शन, चार तय हैशटैग | हर क्लिप के लिए सीड वाले समूह |
| ऑडियो | कोड में बंद | गेम की आवाज़ें, वैकल्पिक संगीत |
चयन भी बदला: जब एक ही गेम से कई संभावित पल निकलते हैं, तो चयनकर्ता हर अलग क़िस्म में से सर्वश्रेष्ठ रखता है, जिससे एक ही मैच से एक ही दिवालियेपन की तीन लगभग एक-सी क्लिप बनना बंद हो जाता है।
