इस प्रोजेक्ट के बारे में

Already Watched एक लोकल-फर्स्ट Chrome एक्सटेंशन है जो YouTube फीड में दोहराव को कम करने के लिए बनाया गया है। यह Home, साइडबार/रिकमेंडेशन, Search, Subscriptions, संबंधित ग्रिड और समर्थित Shorts लेआउट में वीडियो कार्ड्स का पता लगाता है। प्लेबैक को वास्तविक यूनिक सेगमेंट से ट्रैक किया जाता है; सीक (seeks) और एक ही सेगमेंट को दोबारा चलाने से प्रोग्रेस नहीं बढ़ती। जब ऑब्जर्व किए गए सेगमेंट एक कॉन्फ़िगर करने योग्य थ्रेशोल्ड तक पहुँच जाते हैं, तो वीडियो को 'देखा गया' (watched) मार्क कर दिया जाता है। डिफ़ॉल्ट डिस्प्ले मोड 70% देखे जाने पर Badge + Dim है, जिसमें देखे गए कार्ड अभी भी क्लिक करने योग्य होते हैं और होवर या कीबोर्ड फोकस पर रिस्टोर हो जाते हैं। विकल्पों में देखे गए कार्ड्स को पूरी तरह से छिपाना, वैकल्पिक रूप से विरल फीड को रिफिल करना, Playables और टॉपिक-सुझाव सेक्शन को छिपाना, Home पर Shorts शेल्फ/कार्ड्स को छिपाना, और प्लेलिस्ट और Mix कलेक्शन कार्ड्स को छिपाना शामिल है। Playables/टॉपिक और प्लेलिस्ट/Mix फ़िल्टर प्रतिवर्ती (reversible) हैं, डिस्प्ले मोड के साथ काम करते हैं, और इस तरह से स्कोप किए गए हैं कि प्लेलिस्ट के अंदर व्यक्तिगत वीडियो और सामान्य वीडियो URL उपलब्ध रहें। मैनुअल कंट्रोल में वीडियो को देखा गया या अनदेखा मार्क करने के लिए थंबनेल बटन, वीडियो लिंक या वर्तमान वॉच पेज के लिए Chrome कॉन्टेक्स्ट-मेनू कमांड, और YouTube के नेटिव थ्री-डॉट वीडियो मेनू के अंदर एक्शन शामिल हैं। एक स्कैन कमांड बिना स्क्रॉल किए, अकाउंट हिस्ट्री फेच किए या YouTube API का उपयोग किए, सक्रिय टैब में वर्तमान में रेंडर किए गए कार्ड्स से योग्य प्रोग्रेस बार इम्पोर्ट करता है। आंकड़े स्टोर किए गए वॉच रिकॉर्ड, कुल मार्क्स, आज फ़िल्टर किए गए और अब तक फ़िल्टर किए गए के बीच अंतर करते हैं; डुप्लिकेट कार्ड, री-रेंडर्स, SPA नेविगेशन और बार-बार होने वाले ऑब्जर्वर इवेंट्स को डी-डुप्लिकेट किया जाता है। हिस्ट्री क्लियर करने से वीडियो रिकॉर्ड, आंशिक प्लेबैक, ओवरराइड्स और आंकड़े हट जाते हैं लेकिन सेटिंग्स सुरक्षित रहती हैं। यह एक्सटेंशन Manifest V3 के रूप में बनाया गया है जिसमें storage, contextMenus और youtube.com के होस्ट एक्सेस के लिए स्कोप किए गए परमिशन हैं। यह सेटिंग्स, प्रति-वीडियो रिकॉर्ड, आंकड़े और हिस्ट्री रिविज़न डेटा के लिए chrome.storage.local का उपयोग करता है; हिस्ट्री क्लियरिंग अस्थायी रूप से chrome.storage.session का उपयोग करती है। README में उल्लेख है कि इसमें कोई एनालिटिक्स, कोई बैकएंड, कोई YouTube API, कोई Google अकाउंट एक्सेस, कोई ब्राउज़िंग-हिस्ट्री या कुकीज़ परमिशन और कोई Chrome सिंक नहीं है। कंटेंट स्क्रिप्ट Chrome की आइसोलेटेड वर्ल्ड में चलती हैं; React का उपयोग केवल पॉपअप/ऑप्शंस UI के लिए बंडल किया गया है। सभी स्क्रिप्ट, स्टाइल और आइकन स्थानीय रूप से शिप किए जाते हैं, जिसमें कोई CDN या रनटाइम कोड डाउनलोड नहीं होता है। डेवलपमेंट के लिए Node.js 20.19+ (Node 22 LTS अनुशंसित), npm और Chrome 114+ की आवश्यकता होती है। npm ci और npm run check लोड करने योग्य एक्सटेंशन को dist/ में बिल्ड करते हैं। README में यूनिट, DOM, स्टोरेज कॉन्करेंसी, प्लेयर रिग्रेशन, टाइपचेकिंग, बिल्ड, डेव वॉच और एक लोकल प्रीव्यू सर्वर के लिए टेस्ट दस्तावेज़ दिए गए हैं। ज्ञात सीमाओं में YouTube लेआउट प्रयोग, v1 स्कोप के बाहर मोबाइल और एम्बेडेड प्लेयर, रूढ़िवादी विज्ञापन/लाइव ह्यूरिस्टिक्स, संभव अन-ऑब्जर्व्ड प्लेबैक गैप और तब बेस्ट-एफर्ट रिफिलिंग शामिल है जब YouTube कोई समर्थित कंटिन्युएशन प्रदान नहीं करता है। यह प्रोजेक्ट MIT लाइसेंस के तहत है।