این مخزن با استفاده از GitHub Actions بهت اجازه میده که فقط با ارسال لینک یوتیوب توی پیام کامیت، ویدیو بهصورت خودکار دانلود بشه و توی مخزن ذخیره بشه.
ایده اصلی این بود که بدون نیاز به فیلترشکن و کانفیگهای گرون، بتونیم ویدیوهای مورد علاقهمون رو ذخیره کنیم. فقط کافیه لینک ویدیو رو کپی کنی و با این اکشن دانلودش کنی.
Tip
برای دیدن لیست ویدیوها احتمالاً نیاز به فیلترشکن داری، ولی پیشنهاد من اینه که از پروژه MITM-DomainFronting استفاده کنی تا بدون فیلترشکن هم بتونی به یوتیوب دسترسی داشته باشی.
یوتیوب رباتها رو تشخیص میده، برای همین باید خودمون رو مثل یه کاربر واقعی نشون بدیم.
مراحل:
- توی مرورگر (ترجیحاً حالت ناشناس) با حسابت وارد یوتیوب شو.
- افزونه Get cookies.txt LOCALLY رو نصب کن.
- روی آیکون افزونه کلیک کن و Export رو بزن تا فایل
cookies.txtدانلود بشه. - برو به Settings → Secrets and variables → Actions
- روی New repository secret کلیک کن.
- اسم Secret رو بذار:
YOUTUBE_COOKIES - محتوای کامل فایل
cookies.txtرو توی بخش Secret پیست کن و ذخیره کن.
نکته: کوکیها معمولا ۲-۳ ماه بعد expire میشن! پس اگه یه زمانی دیدید که ویدیوهاتون دانلود نشدن، احتمالا بخاطر کوکی باشه و نیاز دارید که مراحل بالا رو یکبار از نو انجام بدید و محتوای
YOUTUBE_COOKIESرو آپدیت کنید
- استفاده زیاد ممکنه باعث مسدود شدن موقت حساب گوگلت بشه. حتماً از یک حساب ثانویه استفاده کن.
- این روش ممکنه با قوانین GitHub تداخل داشته باشه. پیشنهاد میکنم با یک حساب جداگانه کار کنی.
- گیتهاب محدودیت حجم مخزن داره (حدود ۵ گیگ). بعد از دانلود، ویدیوها رو دانلود کن و بعدش از ریپو پاکشون کن.
- فقط برای استفاده شخصی استفاده کن. دانلود ویدیوهای کپیرایت ممکنه مشکلساز بشه.
کافیه یه فایل رو (هر فایلی جز فایلهای پوشه .github) رو ویرایش کنی و توی Commit message لینک ویدیو رو به این شکل بنویسی:
yt-dlp: https://www.youtube.com/watch?v=6qFeURAfItU
- یه فایل رو باز کن (مثلاً
README.md) و با زدن دکمه ادیت (✏️) برو به حالت ویرایش - یه تغییر کوچیک بده (مثلاً یه نقطه به آخر فایل اضافه کن)
- روی Commit changes... کلیک کن
- تو پیام کامیت لینک رو با
yt-dlp:بنویس - Commit changes بزن
بعد از دانلود، ویدیو توی پوشه downloads قرار میگیره.
| نوع دانلود | پیام کامیت |
|---|---|
| بهترین کیفیت | yt-dlp: https://youtu.be/6qFeURAfItU |
| کیفیت خاص | yt-dlp: https://youtu.be/6qFeURAfItU quality: 1080 |
| فقط صدا (MP3) | yt-dlp: https://youtu.be/6qFeURAfItU audio-only: true |
| دانلود پلیلیست | yt-dlp: https://youtube.com/playlist?list=... playlist: true |
| ترکیب گزینهها | yt-dlp: https://youtu.be/EXAMPLE quality: 720 subtitles: true sponsorblock: false |
| گزینه | توضیح | مقادیر ممکن |
|---|---|---|
quality |
کیفیت ویدیو | 1080, 720, 480, best |
playlist |
دانلود کامل پلیلیست | true |
audio-only |
فقط صدا (تبدیل به mp3) | true |
subtitles |
دانلود زیرنویس | true |
sponsorblock |
حذف بخشهای اسپانسر و مقدمه | false |
- فایلهای کمتر از ۹۰ مگابایت: مستقیم توی پوشه
downloadsذخیره میشن. - فایلهای بزرگتر از ۹۰ مگابایت: به صورت خودکار به قطعات ۹۰ مگابایتی تقسیم میشن.
مثال:
downloads/
├── video-small.mp4
└── video-large/
├── video-large.zip
├── video-large.z01
└── video-large.z02
برای استخراج فایلهای بزرگ، همه قسمتها رو توی یک پوشه بگذار و روی فایل
.zipراستکلیک کن و Extract رو بزن.
- اگر ویدی دانلود شد ولی چیزی کامیت نشد، یعنی ویدیو قبلاً دانلود شده.
- برای جلوگیری از لوپ،
[skip ci]به صورت خودکار اضافه میشه. - اکشن فقط اولین لینک موجود در پیام کامیت رو پردازش میکنه.
- برای دیدن جزئیات دانلود ویدیو، و اینکه اصلا توی چه مرحلهای هست (داره انجام میشه؟ تموم شده؟ یا به ارور خورده؟) میتونید وارد بخش actions توی ریپوی خودتون بشید
ایده اولیه رو از ریپوی عالی github-sandbox گرفتم. ممنون از ایده خلاقانهشون!
و همینطور از Patterniha بابت پروژه MITM-DomainFronting.
توی این شرایط، هدف همهمون باید کمک به همدیگه باشه و منم این ریپو رو بخاطر کمک کردن به شما عزیزان ایجاد کردم. کمک بزرگ شما به من و به بقیه مردم میتونه این باشه که روزی که فرصتش رسید، دست به دست همدیگه بدید تا با کمک همدیگه از این کثافت مطلق عبور بکنیم و به آزادی برسیم 🕊️