عن المشروع
تعد Already Watched إضافة لمتصفح Chrome تعتمد على التخزين المحلي لتقليل التكرار في خلاصة YouTube. تقوم الإضافة برصد بطاقات الفيديو في الصفحة الرئيسية، والشريط الجانبي/التوصيات، والبحث، والاشتراكات، والشبكات ذات الصلة، وتنسيقات Shorts المدعومة. يتم تتبع التشغيل من خلال المقاطع الفريدة الفعلية؛ حيث لا تؤدي عمليات التقديم أو إعادة تشغيل نفس المقطع إلى زيادة نسبة التقدم. وعندما تصل المقاطع المرصودة إلى حد قابل للتكوين، يتم وضع علامة "تمت المشاهدة" على الفيديو. وضع العرض الافتراضي هو Badge + Dim عند مشاهدة 70%، مع بقاء البطاقات المشاهدة قابلة للنقر ويتم استعادتها عند تمرير الماوس أو التركيز عبر لوحة المفاتيح. تشمل الخيارات إخفاء البطاقات المشاهدة تماماً، وإعادة ملء الخلاصة المتفرقة اختيارياً، وإخفاء أقسام Playables واقتراحات المواضيع، وإخفاء أرفف/بطاقات Shorts في الصفحة الرئيسية، وإخفاء بطاقات قوائم التشغيل ومجموعات Mix. فلاتر Playables/topic وplaylist/Mix قابلة للتراجع، وتعمل مع أوضاع العرض، ومحددة النطاق بحيث تظل الفيديوهات الفردية داخل قوائم التشغيل وروابط الفيديو العادية متاحة.
تتضمن عناصر التحكم اليدوية أزراراً على الصور المصغرة لتمييز الفيديو كمشاهد أو غير مشاهد، وأوامر قائمة السياق في Chrome لروابط الفيديو أو صفحة المشاهدة الحالية، وإجراءات داخل قوائم النقاط الثلاث الأصلية في YouTube. يقوم أمر المسح (scan) باستيراد أشرطة التقدم المؤهلة من البطاقات المعروضة حالياً في التبويب النشط دون الحاجة للتمرير، أو جلب سجل الحساب، أو استخدام YouTube API. تميز الإحصائيات بين سجلات المشاهدة المخزنة، وإجمالي العلامات، والمصفاة اليوم، والمصفاة على الإطلاق؛ كما يتم إزالة التكرار في البطاقات المكررة، وإعادة العرض، والتنقل عبر SPA، وأحداث المراقب المتكررة. يؤدي مسح السجل إلى إزالة سجلات الفيديو، والتشغيل الجزئي، والتجاوزات، والإحصائيات، مع الحفاظ على الإعدادات.
تم بناء الإضافة باستخدام Manifest V3 مع أذونات محددة للتخزين، وcontextMenus، والوصول إلى المضيف youtube.com. تستخدم chrome.storage.local للإعدادات، وسجلات كل فيديو، والإحصائيات، وبيانات مراجعة السجل؛ بينما يستخدم مسح السجل مؤقتاً chrome.storage.session. يذكر ملف README عدم وجود تحليلات، أو خلفية برمجية (backend)، أو YouTube API، أو وصول إلى حساب Google، أو إذن لسجل التصفح أو ملفات تعريف الارتباط، ولا يوجد مزامنة مع Chrome. تعمل نصوص المحتوى (Content scripts) في عالم Chrome المعزول؛ ويتم تضمين React فقط لواجهة popup/options. يتم شحن جميع النصوص والأنماط والأيقونات محلياً دون استخدام CDN أو تحميل أكواد أثناء التشغيل.
يتطلب التطوير Node.js 20.19+ (يوصى بـ Node 22 LTS)، وnpm، وChrome 114+. تقوم أوامر npm ci و npm run check ببناء الإضافة القابلة للتحميل في مجلد dist/. يوثق ملف README الاختبارات الخاصة بالوحدات (unit)، وDOM، وتزامن التخزين، وتراجعات المشغل، وفحص الأنواع، والبناء، ومراقبة التطوير، وخادم معاينة محلي. تشمل القيود المعروفة تجارب تخطيط YouTube، والمشغلات المحمولة والمدمجة خارج نطاق v1، والاستدلالات المتحفظة للإعلانات/البث المباشر، والفجوات المحتملة في التشغيل غير المرصود، وبذل أقصى جهد في إعادة الملء عندما لا يوفر YouTube استمرارية مدعومة. المشروع مرخص بموجب رخصة MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.