SubPulse: ببین کانالهای یوتیوبی که دنبال میکنی هنوز فعالن یا نه
خلاصهٔ کاملتر
SubPulse یه ابزار متنباز برای مرتب کردن سابسکرایبهای یوتیوبه. بعد از اینکه با حساب گوگل وارد میشی و دکمهٔ Sync رو میزنی، یه جدول میسازه که برای هر کانال نشون میده چند روز از آخرین آپلود گذشته، معمولاً هر چند وقت ویدیو میذاره، نسبت Shorts به ویدیوهای معمولی چقدره و میانگین طول ویدیوهاش چقدره. یعنی راحت میفهمی کدوم کانالها سالهاست ساکتن.
نکتهٔ فنی جالبش سادگی ساختارشه. سرور با Node.js نوشته شده، فرانتاند HTML و JS خالیه و دیتابیس SQLite هست. پروژه هیچ وابستگی npm نداره و build step هم نمیخواد، چون از Node نسخهٔ 22.13 به بعد، SQLite بهصورت ماژول داخلی node:sqlite توی خود Node هست. یعنی نه npm install لازمه، نه Docker، نه سرور دیتابیس جدا.
برای اجرا هر توسعهدهنده باید توی Google Cloud یه پروژه بسازه، YouTube Data API v3 رو فعال کنه و یه OAuth client (یعنی کلید ورود با حساب گوگل) از نوع Web application بگیره. ورود معمولی فقط دسترسی خواندنی میخواد. اگه بخوای از داخل برنامه آنسابسکرایب کنی، یه بار جدا دسترسی مدیریت حساب یوتیوب رو ازت میپرسه. توکنهای refresh گوگل هم با یه کلید تصادفی رمزنگاری و ذخیره میشن.
بحث quota (یعنی سقف روزانهٔ استفاده از API یوتیوب) توی طراحیش خیلی مهمه. سقف پیشفرض ۱۰ هزار واحد در روزه و هر کانال حدود ۳ واحد خرج داره. سینک کامل حدود ۳۰۰ سابسکرایب تقریباً ۹۰۰ واحد مصرف میکنه و هر آنسابسکرایب ۵۰ واحد. برای صرفهجویی، آمار کانالها بین همهٔ کاربرها کش مشترک داره و اگه کسی تو ۶ ساعت اخیر یه کانال رو سینک کرده باشه، دوباره از یوتیوب گرفته نمیشه.
سازنده چندتا محدودیت رو هم صاف گفته. تکرار آپلود و میانگینها فقط روی ۵۰ آپلود آخر هر کانال حساب میشن. تشخیص Shorts به یه playlist غیررسمی با پیشوند UUSH تکیه داره که ممکنه هر وقت از کار بیفته. تا وقتی اپ گوگل تو حالت Testing باشه، گوگل توکنها رو بعد از ۷ روز باطل میکنه و هفتهای یه بار باید دوباره وارد بشی. حداکثر ۱۰۰ کاربر تستی هم مجازه. همهٔ کد دیتابیس توی server/db.js جمع شده، پس اگه بعداً بخوای بری سراغ Postgres یا MySQL، فقط همین یه فایل باید عوض بشه.
نکات کلیدی:
- به Node.js نسخهٔ 22.13 یا بالاتر نیاز داره، چون از ماژول داخلی node:sqlite استفاده میکنه
- هیچ پکیج npm و هیچ build stepی نداره
- سقف پیشفرض API یوتیوب ۱۰ هزار واحد در روزه و سینک ۳۰۰ کانال حدود ۹۰۰ واحد خرج داره
- هر آنسابسکرایب ۵۰ واحد quota مصرف میکنه و تو خود SubPulse قابل برگشت نیست
- آمار کانالها تا ۶ ساعت بین همهٔ کاربرها مشترک کش میشه
- تو حالت Testing گوگل، هر ۷ روز باید دوباره وارد بشی و حداکثر ۱۰۰ کاربر تستی مجازه




