প্রকল্প সম্পর্কে
Already Watched হলো একটি লোকাল-ফার্স্ট Chrome এক্সটেনশন যা YouTube ফিডে পুনরাবৃত্তি কমানোর জন্য তৈরি। এটি Home, সাইডবার/সুপারিশ, Search, Subscriptions, রিলেটেড গ্রিড এবং সমর্থিত Shorts লেআউট থেকে ভিডিও কার্ড শনাক্ত করে। প্লেব্যাক ট্র্যাক করা হয় প্রকৃত অনন্য সেগমেন্ট থেকে; সীক (seek) করা এবং একই সেগমেন্ট পুনরায় প্লে করলে প্রগ্রেস বৃদ্ধি পায় না। যখন পর্যবেক্ষণ করা সেগমেন্টগুলো একটি কনফিগারযোগ্য থ্রেশহোল্ডে পৌঁছায়, তখন ভিডিওটিকে 'দেখা হয়েছে' (watched) হিসেবে চিহ্নিত করা হয়। ডিফল্ট ডিসপ্লে মোড হলো ৭০% দেখার পর Badge + Dim, যেখানে দেখা হয়ে যাওয়া কার্ডগুলো এখনও ক্লিকযোগ্য থাকে এবং হোভার বা কিবোর্ড ফোকাসের সময় পুনরায় স্বাভাবিক হয়। অপশনগুলোর মধ্যে রয়েছে দেখা হয়ে যাওয়া কার্ডগুলো সম্পূর্ণ হাইড করা, প্রয়োজনে পাতলা ফিড পুনরায় পূর্ণ করা, Playables এবং টপিক-সাজেশন সেকশন হাইড করা, Home-এ Shorts শেলভ/কার্ড হাইড করা এবং প্লেলিস্ট ও Mix কালেকশন কার্ড হাইড করা। Playables/টপিক এবং প্লেলিস্ট/Mix ফিল্টারগুলো রিভার্সিবল, ডিসপ্লে মোডের সাথে কাজ করে এবং এমনভাবে স্কোপ করা হয়েছে যাতে প্লেলিস্টের ভেতরের ব্যক্তিগত ভিডিও এবং সাধারণ ভিডিও URL উপলব্ধ থাকে।
ম্যানুয়াল কন্ট্রোলগুলোর মধ্যে রয়েছে দেখা হয়েছে বা হয়নি চিহ্নিত করার জন্য থাম্বনেইল বোতাম, ভিডিও লিঙ্ক বা বর্তমান ওয়াচ পেজের জন্য Chrome কনটেক্সট-মেনু কমান্ড এবং YouTube-এর নেটিভ থ্রি-ডট ভিডিও মেনুর ভেতরের অ্যাকশন। একটি স্ক্যান কমান্ড স্ক্রল না করেই সক্রিয় ট্যাবে বর্তমানে রেন্ডার হওয়া কার্ডগুলো থেকে যোগ্য প্রগ্রেস বার ইমপোর্ট করে, যার জন্য অ্যাকাউন্ট হিস্ট্রি বা YouTube API-এর প্রয়োজন হয় না। স্ট্যাটিস্টিকস বা পরিসংখ্যানের মাধ্যমে সংরক্ষিত ওয়াচ রেকর্ড, মোট মার্ক, আজ ফিল্টার করা এবং সর্বকালের ফিল্টার করা ভিডিওর পার্থক্য করা হয়; ডুপ্লিকেট কার্ড, রি-রেন্ডার, SPA নেভিগেশন এবং পুনরাবৃত্ত অবজারভার ইভেন্টগুলো ডিডুপ্লিকেট করা হয়। হিস্ট্রি ক্লিয়ার করলে ভিডিও রেকর্ড, আংশিক প্লেব্যাক, ওভাররাইড এবং স্ট্যাটিস্টিকস মুছে যায় তবে সেটিংস সংরক্ষিত থাকে।
এক্সটেনশনটি Manifest V3 দিয়ে তৈরি করা হয়েছে যেখানে storage, contextMenus এবং youtube.com-এ হোস্ট অ্যাক্সেসের জন্য স্কোপড পারমিশন ব্যবহার করা হয়েছে। এটি সেটিংস, প্রতি-ভিডিও রেকর্ড, স্ট্যাটস এবং হিস্ট্রি রিভিশন ডেটার জন্য chrome.storage.local ব্যবহার করে; হিস্ট্রি ক্লিয়ার করার সময় সাময়িকভাবে chrome.storage.session ব্যবহৃত হয়। README-তে উল্লেখ করা হয়েছে যে এতে কোনো অ্যানালিটিক্স, ব্যাকএন্ড, YouTube API, গুগল অ্যাকাউন্ট অ্যাক্সেস, ব্রাউজিং-হিস্ট্রি বা কুকিজ পারমিশন এবং 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 লাইসেন্সপ্রাপ্ত।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.