Skip to content

ProAlit/aio-downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,520 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 aio‑downloader

All‑in‑One GitHub Actions Downloader — بدون فیلتر · بدون تحریم

اگر این پروژه برایتان مفید است، لطفاً ستاره بدهید — به دیگران کمک می‌کند پیدایش کنند!


⚠️ اعلامیه مهم برای کاربرانی که قبلاً فورک کرده‌اند (حتماً بخوانید)

مخزن اصلی (ProAlit/aio-downloader) به‌طور مداوم به‌روزرسانی می‌شود — رفع باگ‌ها، ویژگی‌های جدید، و بهبود امنیت. فورک شما به‌صورت خودکار این به‌روزرسانی‌ها را دریافت نمی‌کند!

✅ مشکل push و پوشه — کاملاً برطرف شد

در نسخه‌های قدیمی‌تر، برخی workflowها هنگام push با خطا مواجه می‌شدند یا فایل‌ها در مسیر اشتباه قرار می‌گرفتند. این مشکل اکنون به‌طور کامل حل شده است:

  • تمام workflowها از persist-credentials: true استفاده می‌کنند
  • قبل از هر push، یک git pull --rebase --autostash اجرا می‌شود تا تداخلی پیش نیاید
  • حلقه‌ی تلاش مجدد ۵ مرحله‌ای برای push وجود دارد
  • پوشه‌های خروجی با mkdir -p ساخته می‌شوند
  • حجم بافر git به ۵۰۰ مگابایت افزایش یافته (http.postBuffer)

اگر همچنان مشکلی دیدید، ابتدا فورک خود را به‌روز کنید (پایین را ببینید) — به احتمال زیاد فورک‌تان قدیمی است.


🔄 همگام‌سازی فورک — فقط با خودِ وبسایت GitHub (بدون گیت)

این کار را انجام دهید تا آخرین اصلاحات و امکانات را دریافت کنید.

⚠️ نکته بسیار مهم: نمی‌توانید Pull Request باز کنید

اگر در فورک خود تغییری commit کرده باشید (حتی ویرایش channels.json)، فورک شما از مخزن اصلی «جلوتر» می‌افتد و دیگر به‌روزرسانی دریافت نمی‌کند. تنها راه، دور انداختن commitهای خودتان و همگام‌سازی کامل است.

روش (فقط در وبسایت GitHub):

  1. به صفحه فورک خود بروید (مثلاً github.com/your-username/aio-downloader)
  2. بالای لیست فایل‌ها، روی دکمه‌ای که نوشته «Sync fork» کلیک کنید.
  3. در منوی بازشده، اگر commit اضافی ندارید، گزینه «Update branch» را بزنید.
  4. اگر commit اضافی دارید (مثلاً فایل‌ها را ویرایش کرده‌اید)، به جای Update branch، گزینه «Discard commits» (دور انداختن commitها) را انتخاب کنید. این کار فورک شما را دقیقاً با مخزن اصلی یکسان می‌کند.

نکته خیلی مهم!!! حتما بعد هر آپدیت مرحله کلینر رو برای همه اجرا کنید وگرنه دانلودهاتون به شدت کند انجام میشه!!.

⚠️ با Discard commits تمام تغییرات خود را از دست می‌دهید. اگر فایل مهمی دارید، اول دانلودش کنید.

پس از آن، فورک شما کاملاً به‌روز شده و آخرین رفع‌ها و قابلیت‌ها را دارد.


📚 فهرست مطالب

  1. پیشنیازها
  2. فورک و راهاندازی اولیه
  3. راهنمای جامع تمام Secretها و Tokenهای مورد نیاز
  4. راهنمای کامل هر گردش کار (Workflow)
  5. ویژگیهای جدید (که در README قبلی نیستند)
  6. مشکل کندی checkout و راهحل آن
  7. محدودیتها و هشدارهای مهم
  8. پشتیبانی
  9. فایل zoomusers.md چیست

⚠️ پیشنیازها

نیاز توضیح
حساب GitHub رایگان — همین کافیست
مرورگر + افزونه Get cookies.txt LOCALLY Chrome / Firefox / Edge
حساب اینستاگرام (اختیاری) برای استوری و محتوای خصوصی
حساب X (توییتر) الزامی برای دانلودر X
حساب Google Cloud (اختیاری) برای آپلود خودکار در Google Drive
حساب Cloudflare (اختیاری) برای Exit Nodeهای استاتیک
تلگرام، ضبط وبسایت، گوگل پلی، MEGA هیچ چیز اضافی نیاز ندارند

🚀 فورک و راهاندازی اولیه

مرحله ۱: فورک کردن

روی دکمه Fork در بالای صفحه کلیک کنید.

مرحله ۲: فعالسازی Actions

  1. به تنظیمات بروید: SettingsActionsGeneral
  2. Actions permissions: گزینه Allow all actions and reusable workflows
  3. Workflow permissions: گزینه Read and write permissions
  4. ذخیره کنید.

⚠️ اگر دسترسی نوشتن ندهید، آپلود فایلها با خطا مواجه میشود!

مرحله ۳: پاکسازی اولیه (اکیداً توصیه میشود)

مخزن فورکشده شامل فایلهای رسانهای از مخزن اصلی است. برای شروع تمیز، به Actionsaio-cleaner بروید، Clean ALL platforms را تیک بزنید و اجرا کنید.

مرحله ۴: تنظیم Secretها

با توجه به نیاز خود، Secretهای مورد نظر را تنظیم کنید (راهنمای کامل در بخش بعدی).


🔐 راهنمای جامع تمام Secretها و Tokenهای مورد نیاز

در این بخش، تکتک Secretهایی که هر Workflow نیاز دارد به همراه آموزش گامبهگام و تصویری برای دریافت آنها توضیح داده شده است. هر Secret در بخش Workflow مربوطه نیز ذکر شده است.


۱. نحوه استخراج کوکی (Cookie) با روش robots.txt (توصیه اصلی)

روش جدید و بهتر: به جای رفتن به صفحه اصلی سایت، از آدرس https://website.com/robots.txt کوکی导出 کنید. این روش نرخ موفقیت بالاتری دارد زیرا robots.txt یک فایل ساده و سبک است و درخواستهای مشکوک کمتری روی آن اعمال میشود.

📝 مراحل استخراج کوکی:

  1. یک پنجره Private/Incognito در مرورگر خود باز کنید.
  2. افزونه Get cookies.txt LOCALLY را نصب کنید (از فروشگاه افزونه مرورگرتان).
  3. به آدرس زیر بروید (بسته به سرویس مورد نظر):
https://www.youtube.com/robots.txt
https://www.instagram.com/robots.txt
https://x.com/robots.txt
  1. روی آیکون افزونه کلیک کنید → Export (فرمت Netscape) → فایل txt را ذخیره کنید.
  2. پنجره خصوصی را کاملاً ببندید (این کار نشست را میبندد ولی کوکی معتبر میماند).

چرا robots.txt بهتر است؟ robots.txt یک فایل متنی ساده است که هیچ محتوای سنگین یا اسکریپتهای امنیتی ندارد. در نتیجه:

  • کوکیهای دریافتی «تمیزتر» هستند
  • احتمال trigger شدن سیستمهای ضد-ربات کمتر است
  • نشست شما معتبرتر باقی میماند

چرا پنجره ناشناس؟ اگر در پنجره عادی لاگاوت کنید، کوکیها بیاعتبار میشوند. با بستن پنجره ناشناس، نشست بسته میشود ولی کوکی معتبر میماند.

⚠️ نشانههای خرابی کوکی: خطای Sign in to confirm you're not a bot (یوتیوب)، خطای 429 Too Many Requests (اینستاگرام)، یا دانلود موفق ولی بدون فایل خروجی. راه حل: کوکی جدید از پنجره ناشناس بگیرید و Secret را بهروز کنید.


۲. کوکی یوتیوب (YOUTUBE_COOKIES)

Secret Name: YOUTUBE_COOKIES وضعیت: اختیاری (اما بهشدت توصیه میشود) مورد استفاده در: downloader-youtube, aio-leecher

📝 مراحل:

  1. پنجره Private باز کنید.
  2. به https://www.youtube.com/robots.txt بروید.
  3. وارد اکانت گوگل خود شوید (حتماً در همان پنجره ناشناس).
  4. افزونه Get cookies.txt LOCALLY را باز کرده و Export بزنید.
  5. محتوای فایل txt را کپی کنید.
  6. به SettingsSecrets and variablesActions بروید.
  7. New repository secret بزنید.
  8. نام: YOUTUBE_COOKIES | مقدار: محتوای فایل txt را بچسبانید.
  9. پنجره ناشناس را ببندید.

۳. کوکی اینستاگرام (INSTAGRAM_COOKIES)

Secret Name: INSTAGRAM_COOKIES وضعیت: اختیاری (برای استوری و محتوای خصوصی الزامی) مورد استفاده در: downloader-instagram, aio-leecher

📝 مراحل:

  1. پنجره Private باز کنید.
  2. به https://www.instagram.com/robots.txt بروید.
  3. وارد اکانت اینستاگرام خود شوید (حتماً در همان پنجره ناشناس).
  4. افزونه را باز کرده و Export بزنید.
  5. Secret با نام INSTAGRAM_COOKIES بسازید و محتوای فایل را بچسبانید.
  6. پنجره ناشناس را ببندید.

۴. کوکی X/توییتر (X_COOKIES)

Secret Name: X_COOKIES وضعیت: الزامی ⚠️ مورد استفاده در: downloader-x, aio-leecher

📝 مراحل:

  1. پنجره Private باز کنید.
  2. به https://x.com/robots.txt بروید.
  3. وارد اکانت X شوید (حتماً در همان پنجره ناشناس).
  4. افزونه را باز کرده و Export بزنید.
  5. Secret با نام X_COOKIES بسازید.
  6. پنجره ناشناس را ببندید.

⚠️ بدون کوکی X، دانلودر X اصلاً کار نمیکند!


۵. کلید احراز هویت تونل (TUNNEL_AUTH_KEY)

Secret Name: TUNNEL_AUTH_KEY وضعیت: اختیاری مورد استفاده در: python-mhrv-dynamic-exit-node, python-mhrv-static-exit-node, zyrln-cloudflare-dynamic-exit-node, zyrln-cloudflare-static-exit-node

📝 مراحل:

  1. یک رمز عبور قوی (Pre-Shared Key) انتخاب کنید (مثلاً ترکیبی از حروف و اعداد حداقل ۱۶ کاراکتری).
  2. به SettingsSecrets and variablesActions بروید.
  3. Secret با نام TUNNEL_AUTH_KEY بسازید و رمز خود را وارد کنید.
  4. همین رمز را در کانفیگ VPN خود (فیلد psk) نیز قرار دهید.

⚠️ این رمز باید دقیقاً با psk در config.json پروژه VPN شما یکی باشد. URL و PSK را کنار هم منتشر نکنید.


۶. توکن استاتیک Cloudflare (CF_TUNNEL_TOKEN)

Secret Name: CF_TUNNEL_TOKEN وضعیت: اختیاری (فقط برای Exit Nodeهای استاتیک) مورد استفاده در: python-mhrv-static-exit-node, zyrln-cloudflare-static-exit-node

📝 مراحل:

  1. به Cloudflare Zero Trust Dashboard بروید.
  2. AccessTunnelsCreate a tunnel.
  3. نام دلخواه بدهید و Save کنید.
  4. نوع اتصال را Cloudflared انتخاب کنید.
  5. دستور نمایش داده شده شامل توکن است. توکن را کپی کنید.
  6. Secret با نام CF_TUNNEL_TOKEN بسازید و توکن را بچسبانید.

ℹ️ این Secret فقط برای Exit Nodeهای استاتیک (با دامنه ثابت) نیاز است. برای Exit Nodeهای داینامیک (با آدرس trycloudflare.com موقت)، نیازی به این توکن نیست.


۷. آپلود در Google Drive (GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN)

Secret Names: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN وضعیت: کاملاً اختیاری مورد استفاده در: تمام workflowهایی که گزینه upload_to_drive دارند (downloader-youtube, downloader-instagram, downloader-direct, fetcher-website, aio-leecher, downloader-soundcloud, downloader-spotify, downloader-google-play, downloader-mega-nz)

این ویژگی جدید به شما امکان میدهد فایلهای دانلودی را مستقیماً در Google Drive خود (در پوشه github-actions) ذخیره کنید، بدون اینکه فضای مخزن GitHub را اشغال کنید!

📝 مراحل گام به گام:

با تشکر از کاربران و زحماتشون اگه مشکلی داشتید میتونید از این لینک راهنمای نوشته شده توسط یکی از کاربران رو بخونید و انجام بدید و سوالی بود در اون قسمت مطرح کنید برای این موضوع - کلیک کنید

قسمت اول: ایجاد پروژه در Google Cloud Console

  1. به Google Cloud Console بروید.
  2. یک پروژه جدید بسازید (یا پروژه موجود را انتخاب کنید).
  3. APIs & ServicesLibrary.
  4. Google Drive API را جستجو و Enable کنید.

قسمت دوم: ایجاد OAuth Client ID

  1. APIs & ServicesCredentials.
  2. Create CredentialsOAuth client ID.
  3. نوع اپلیکیشن را Web application انتخاب کنید (حتی اگر برای استفاده شخصی است).
  4. نام دلخواه بدهید.
  5. در بخش Authorized redirect URIs، روی ADD URI کلیک کنید و آدرس زیر را وارد کنید:
https://developers.google.com/oauthplayground
  1. روی Create کلیک کنید.
  2. Client ID و Client Secret نمایش داده میشود. آنها را کپی کنید.
  3. Secretهای زیر را در GitHub بسازید:
GOOGLE_CLIENT_ID → Client ID خود را بچسبانید
GOOGLE_CLIENT_SECRET → Client Secret خود را بچسبانید

⚠️ قسمت دوم-الف: انتشار برنامه (Publish) — حیاتی!

اگر این مرحله را انجام ندهید، در قسمت سوم (مرحله ۱۶) با خطای 403 یا 400 مواجه میشوید.

  1. به صفحه OAuth consent screen بروید.
  2. اگر برنامه شما در حالت Testing قرار دارد (با نوار زرد رنگ)، روی دکمه‌ای که زیر "In production" نیست کلیک کنید (معمولاً PUBLISH APP). در تأییدیه، Confirm را بزنید.
  3. وضعیت باید به "In production" تغییر کند. (لازم نیست برنامه توسط گوگل تأیید شود؛ برای استفاده شخصی کافیست.)

قسمت سوم: دریافت Refresh Token با OAuth Playground

  1. به Google OAuth Playground بروید.
  2. روی آیکون ⚙️ (تنظیمات) کلیک کنید.
  3. تیک Use your own OAuth credentials را بزنید.
  4. Client ID و Client Secret خود را وارد کنید و Close کنید.
  5. در Step 1، در بخش Drive API v3، scope زیر را انتخاب کنید:
https://www.googleapis.com/auth/drive
  1. روی Authorize APIs کلیک کنید و اجازه دسترسی بدهید. (اگر خطای redirect_uri_mismatch گرفتید، مطمئن شوید Authorized redirect URIs شامل آدرس Playground است.)
  2. در Step 2، تیک Auto-refresh the token before it expires را بزنید.
  3. روی Exchange authorization code for tokens کلیک کنید.
  4. Refresh token نمایش داده میشود. آن را کپی کنید.
  5. Secret زیر را در GitHub بسازید:
GOOGLE_REFRESH_TOKEN → Refresh Token خود را بچسبانید

⚠️ نکته مهم: Refresh Token فقط یک بار نمایش داده میشود. اگر آن را گم کنید، باید دوباره از اول مراحل را طی کنید. همچنین اگر از OAuth Playground استفاده میکنید، حتماً تیک Auto-refresh را بزنید.

ℹ️ پس از تنظیم هر سه Secret، در هر workflow که اجرا میکنید، کافیست گزینه upload_to_drive را تیک بزنید تا فایلها به جای مخزن GitHub، در Google Drive شما (پوشه github-actions) ذخیره شوند.


📋 راهنمای کامل هر گردش کار (Workflow)

در این بخش، تمامی ۱۷ گردش کار به همراه Secretهای مورد نیاز هر کدام، نحوه استفاده، و نکات مهم توضیح داده شده است.


۱. دانلودر یوتیوب (downloader-youtube)

Secretهای مورد نیاز: YOUTUBE_COOKIES (اختیاری، توصیه میشود) Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری) زمان اجرا: حداکثر ۷۰۰ دقیقه

✨ ویژگیها:

  • تلاش با شبیهسازی کلاینت اندروید، iOS، و بدون کوکی
  • در صورت شکست، از ابزارهای جایگزین مانند pytube، سرویسهای API خارجی و youtube‑dl استفاده میکند
  • پشتیبانی از لینکهای غیر یوتیوب (دانلود مستقیم با wget)
  • انتخاب هوشمند نزدیکترین کیفیت موجود
  • Remux خودکار با ffmpeg برای سازگاری کامل
  • تقسیم خودکار فایلهای >۹۹MB به ZIP چندبخشی
  • 🆕 آپلود خودکار در Google Drive

📝 نحوه استفاده:

  1. Actionsdownloader-youtubeRun workflow
  2. ورودی: URL v/a رزولوشن fps (fps اختیاری)
https://www.youtube.com/watch?v=dfdXGw1xY9A v 480
https://www.youtube.com/watch?v=dfdXGw1xY9A v 1080 60
https://www.youtube.com/watch?v=VIDEO_ID a max
https://www.youtube.com/watch?v=VIDEO_ID v 4k
  • v = ویدیو، a = صدا
  • رزولوشن: max, min, 1080, 2k, 4k و …
  • FPS: اختیاری (مثلاً 60)
  • اگر v/a ندهید، پیشفرض حداکثر کیفیت ویدیو انتخاب میشود.
  • برای صدا (a max) خروجی به صورت .opus است.
  1. 🆕 گزینههای جدید:

    • output_format: انتخاب فرمت خروجی (mp4 یا mp3)
    • video_quality: حداکثر رزولوشن (4K, 1080, 720, 480, 360, best)
    • audio_quality: بیتریت صدا (320, 192, 128, 64)
    • bundle_all: تجمیع همه فایلها در یک ZIP
    • upload_as_release: آپلود به عنوان GitHub Release
    • upload_to_drive: 🆕 آپلود در Google Drive (به جای مخزن)
  2. خروجی در پوشه youtube/ (فایلهای بزرگ به ZIP چندبخشی تبدیل میشوند)


۲. دانلودر اینستاگرام (downloader-instagram)

Secretهای مورد نیاز: INSTAGRAM_COOKIES (اختیاری) Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)

📝 نحوه استفاده:

  1. Actionsdownloader-instagramRun workflow
  2. لینکها را با کاما، فاصله یا خط جدید جدا کنید.
https://www.instagram.com/p/DX2y7oLDFOb/,
https://www.instagram.com/reel/DVRXhn0gjL3/,
https://www.instagram.com/p/DX6US4uCNGb/
  1. 🆕 گزینههای جدید:

    • upload_as_release: آپلود به عنوان GitHub Release
    • upload_to_drive: 🆕 آپلود در Google Drive
  2. خروجی ZIP در پوشه instagram/.

⚠️ خطای ۴۲۹ یعنی کوکی اینستاگرام منقضی یا محدود شده — کوکی جدید بگیرید.


۳. دانلودر X/توییتر (downloader-x)

Secretهای مورد نیاز: X_COOKIES (الزامی ⚠️)

📝 نحوه استفاده:

  1. Actionsdownloader-xRun workflow
  2. لینکها را با کاما، فاصله یا خط جدید وارد کنید.
https://x.com/username/status/123456789,
https://x.com/otheruser/status/987654321
  1. خروجی ZIP در پوشه x/.

۴. دانلودر مستقیم (downloader-direct)

Secretهای مورد نیاز: هیچکدام الزامی نیست Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)

✨ ویژگیها:

  • دانلود با aria2c (۱۶ اتصال همزمان — بسیار سریع)
  • پشتیبانی از تمام لینکهای مستقیم (.zip, .mp4, .apk, .pdf و …)

📝 نحوه استفاده:

  1. Actionsdownloader-directRun workflow
  2. لینکهای مستقیم را بچسبانید.
https://example.com/file.zip, https://example.com/video.mp4
  1. 🆕 گزینههای جدید:

    • bundle_all: تجمیع همه فایلها در یک ZIP
    • upload_as_release: آپلود به عنوان GitHub Release
    • upload_to_drive: 🆕 آپلود در Google Drive
  2. فایلها در direct/ ذخیره میشوند (بزرگتر از ۹۹MB به ZIP چندبخشی تقسیم میشوند).


۵. آرشیو کانال تلگرام (fetcher-telegram)

Secretهای مورد نیاز: هیچکدام اجرای خودکار: هر ۳۰ دقیقه یکبار (cron)

📝 نحوه استفاده:

  1. فایل telegram/channels.json را ویرایش کنید. نام کانال را بدون @ وارد کنید.
["VahidOOnLine", "mwarmonitor", "channelname"]
  1. Actionsfetcher-telegramRun workflow (یا منتظر اجرای خودکار بمانید).

⚠️ فقط کانالهای عمومی. زمانبندی خودکار ممکن است با تأخیر ۱ تا ۶ ساعت اجرا شود.


۶. دانلودر تلگرام بتا (downloader-telegram-beta)

Secretهای مورد نیاز: هیچکدام محدودیت: حداکثر ۱۰۰۰ لینک

📝 نحوه استفاده:

  1. Actionsdownloader-telegram-betaRun workflow
  2. لینک پستهای تلگرام را وارد کنید.
https://t.me/channelname/123, https://t.me/channelname/456
  1. فایلها در telegram/downloader/ ذخیره میشوند.

۷. ضبط وبسایت — PDF و MHTML (fetcher-website)

Secretهای مورد نیاز: هیچکدام Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری) محدودیت: حداکثر ۵۰۰ لینک داخلی، مهلت ۳۰ دقیقه

✨ ویژگیها:

  • PDF با کیفیت بالا (مناسب برای چاپ و آرشیو)
  • MHTML (بایگانی کامل صفحه شامل تصاویر، CSS و فونتها — قابل باز شدن در مرورگر)
  • رندر با Playwright + Chromium برای صفحات داینامیک

📝 نحوه استفاده:

  1. Actionsfetcher-websiteRun workflow
  2. آدرس کامل با https:// را وارد کنید.
https://example.com/article
https://github.com/ProAlit/aio-downloader
  1. 🆕 گزینههای جدید:

    • capture_mhtml: ذخیره به صورت MHTML (پیشفرض: فعال)
    • capture_pdf: ذخیره به صورت PDF (پیشفرض: فعال)
    • upload_as_release: آپلود به عنوان GitHub Release
    • upload_to_drive: 🆕 آپلود در Google Drive
  2. خروجیها در پوشه website/ — هم فایل PDF و هم فایل MHTML.

⚠️ فقط سایتهای عمومی. صفحات SPA سنگین ممکن است کامل رندر نشوند.


۸. لیچر قدرتمند (aio-leecher)

Secretهای مورد نیاز: YOUTUBE_COOKIES, INSTAGRAM_COOKIES, X_COOKIES (همگی اختیاری، خودکار تشخیص داده میشوند) Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری) زمان اجرا: حداکثر ۷۰۰ دقیقه

قدرتمندترین بخش! از یوتیوب و اینستاگرام تا تیکتاک، ساندکلاد، اسپاتیفای و بیش از ۱۸۰۰ سایت دیگر.

⚡ حالت خام (Raw) — توصیه اصلی

برای بهترین نتیجه، حتماً از حالت خام استفاده کنید. کافیست بعد از لینک، دو خط فاصله -- بگذارید و سپس هر آرگومان معتبر yt-dlp را بنویسید.

https://www.youtube.com/watch?v=VIDEO_ID -- --format "bestvideo[height<=1080]+bestaudio/best[height<=1080]" --merge-output-format mkv
https://www.tiktok.com/@user/video/ID -- --write-subs --sub-lang en
# یوتیوب با زیرنویس
https://www.youtube.com/watch?v=ID -- -f "bestvideo[height<=1080]+bestaudio" --write-subs --sub-lang en --merge-output-format mp4
# اینستاگرام
https://www.instagram.com/p/CODE -- --format best
# توییتر
https://x.com/user/status/ID -- --format best
# پینترست
https://www.pinterest.com/pin/ID -- --format best
# ساندکلاد
https://soundcloud.com/artist/track -- --format bestaudio

حالت میانبر

هنوز هم میتوانید از v (ویدیو) و a (صدا) استفاده کنید، ولی برای محتوایی که ویدیو/صدا/موسیقی نیست، نرخ شکست بالایی دارد.

https://www.youtube.com/watch?v=dfdXGw1xY9A v 1080
https://soundcloud.com/artist/track a 320

❓ اگر دستور بلد نیستید

از چتباتهای هوش مصنوعی مثل chat.deepseek.com (بدون فیلتر) بپرسید: "یک دستور yt‑dlp برای دانلود این لینک با بهترین کیفیت بنویس" — دستور تولید شده را در حالت خام استفاده کنید.

🆕 گزینههای جدید:

  • bundle_all: تجمیع همه فایلها در یک ZIP
  • upload_as_release: آپلود به عنوان GitHub Release
  • upload_to_drive: 🆕 آپلود در Google Drive

۹. دانلودر ساندکلود (downloader-soundcloud)

Secretهای مورد نیاز: هیچکدام Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)

📝 نحوه استفاده:

  1. Actionsdownloader-soundcloudRun workflow
  2. لینکها را وارد کنید.
https://soundcloud.com/artist/track,
https://soundcloud.com/artist/track
  1. 🆕 گزینههای جدید:

    • output_format: فرمت خروجی (mp3, flac, ogg, opus, m4a, wav)
    • audio_quality: کیفیت صدا (128k, 192k, 256k, 320k)
    • upload_as_release: آپلود به عنوان GitHub Release
    • upload_to_drive: 🆕 آپلود در Google Drive
  2. فایلها در music/ (تبدیل خودکار با ffmpeg).


۱۰. دانلودر اسپاتیفای (downloader-spotify) 🆕

Secretهای مورد نیاز: هیچکدام (SpotiFLAC بدون نیاز به اکانت کار میکند) Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری) سرویسهای پشتیبانیشده: Spotify, Tidal, Apple Music, SoundCloud, YouTube, Pandora

ℹ️ این دانلودر از SpotiFLAC استفاده میکند که بدون نیاز به هیچ اکانتی، موسیقی را با بهترین کیفیت ممکن (از جمله FLAC بدون اتلاف) دانلود میکند.

📝 نحوه استفاده:

  1. Actionsdownloader-spotifyRun workflow
  2. لینکها را وارد کنید (ترک، آلبوم، پلیلیست، آرتیست).
https://open.spotify.com/track/xxxxx,
https://open.spotify.com/album/xxxxx,
https://open.spotify.com/playlist/xxxxx
  1. گزینهها:

    • output_format: فرمت خروجی (flac, mp3, m4a, ogg, opus, wav) — پیشفرض: flac
    • audio_quality: کیفیت (LOSSLESS, HI_RES_LOSSLESS, DOLBY_ATMOS, HIGH, LOW, 320k, 256k, 192k, 128k) — پیشفرض: LOSSLESS
    • upload_as_release: آپلود به عنوان GitHub Release
    • upload_to_drive: 🆕 آپلود در Google Drive
  2. فایلها در music/ ذخیره میشوند.


۱۱. پاککننده جامع (aio-cleaner)

Secretهای مورد نیاز: هیچکدام

⚠️ فضای مخزن رایگان GitHub حدود ۵ گیگابایت است. فایلهای حجیم فضا را پر میکنند — مرتب پاکسازی کنید.

📝 پلتفرمهای قابل پاک شدن:

پلتفرم چه چیزهایی حذف میشود
تلگرام telegram/content/، telegram.md، last_ids.json
تلگرام دانلودر telegram/downloader/
یوتیوب کل youtube/
اینستاگرام کل instagram/
X کل x/
وبسایت کل website/
لیچر کل leecher/
گوگل پلی کل google-play/
موسیقی کل music/
مستقیم کل direct/
MEGA کل mega-nz/ 🆕

📝 نحوه اجرا:

  1. Actionsaio-cleanerRun workflow
  2. چکباکسهای دلخواه را تیک بزنید (یا Clean ALL platforms)
  3. اجرا کنید.

❗ حذف دائمی است — ابتدا فایلهای مهم را دانلود کنید. حتما بعد هر آپدیت مرحله کلینر رو برای همه اجرا کنید وگرنه دانلودهاتون به شدت کند انجام میشه!!


۱۲. دانلودر گوگل پلی (downloader-google-play)

Secretهای مورد نیاز: هیچکدام (احراز هویت خودکار) Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)

📝 نحوه استفاده:

  1. Actionsdownloader-google-playRun workflow
  2. app: نام پکیج (مثلاً com.google.android.youtube) یا لینک گوگل پلی.
  3. architecture: arm64 (پیشفرض) یا armv7.
  4. merge_splits: ادغام APKهای چندبخشی (پیشفرض فعال).
app: com.spotify.music
architecture: arm64
merge_splits: true
  1. 🆕 گزینههای جدید:

    • bundle_all: تجمیع همه APKها در یک ZIP
    • upload_as_release: آپلود به عنوان GitHub Release
    • upload_to_drive: 🆕 آپلود در Google Drive
  2. فایل APK (زیپشده) در google-play/.

ℹ️ برای پیدا کردن نام پکیج، به لینک برنامه در گوگل پلی دقت کنید: id=com.example.app.


۱۳. دانلودر MEGA.nz (downloader-mega-nz) 🆕

Secretهای مورد نیاز: هیچکدام (بدون نیاز به اکانت MEGA) Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)

✨ ویژگیها:

  • دانلود فایل و فولدر از MEGA.nz بدون نیاز به اکانت
  • استفاده از megatools برای دانلود مطمئن
  • پشتیبانی از لینکهای فایل و فولدر

📝 نحوه استفاده:

  1. Actionsdownloader-mega-nzRun workflow
  2. لینکهای MEGA را وارد کنید.
https://mega.nz/file/xxxxx,
https://mega.nz/folder/xxxxx
  1. گزینهها:

    • bundle_all: تجمیع همه فایلها در یک ZIP
    • upload_method: روش آپلود (split_push یا release)
    • upload_to_drive: 🆕 آپلود در Google Drive
  2. فایلها در mega-nz/ ذخیره میشوند.


۱۴. Exit Node پایتون — داینامیک (python-mhrv-dynamic-exit-node)

Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری) خروجی: URL موقت trycloudflare.com (اعتبار ۶ ساعت)

📝 نحوه استفاده:

  1. Actionspython-mhrv-dynamic-exit-nodeRun workflow
  2. پس از ۲۰-۳۰ ثانیه در لاگ، خطی شبیه زیر میبینید:
https://random-name.trycloudflare.com
  1. این URL را کپی و در بخش exit_node کانفیگ VPN خود قرار دهید:
"exit_node": {
  "enabled": true,
  "provider": "vps",
  "url": "https://random-name.trycloudflare.com",
  "psk": "همان_رمز_مخفی"
}

⏱️ اعتبار هر URL تا ۶ ساعت است. بعداً باید دوباره اجرا کنید.


۱۵. Exit Node پایتون — استاتیک (python-mhrv-static-exit-node) 🆕

Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری), CF_TUNNEL_TOKEN (الزامی ⚠️) خروجی: دامنه ثابت Cloudflare (مثلاً exit.yourdomain.com)

📝 نحوه استفاده:

  1. ابتدا CF_TUNNEL_TOKEN را تنظیم کنید (راهنما در بخش Secretها).
  2. Actionspython-mhrv-static-exit-nodeRun workflow
  3. تونل روی دامنه ثابت شما فعال میشود.

ℹ️ مزیت این روش نسبت به داینامیک: URL ثابت است و نیازی به بهروزرسانی مداوم کانفیگ نیست.


۱۶. Exit Node Zyrln — داینامیک (zyrln-cloudflare-dynamic-exit-node) 🆕

Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری) زبان برنامهنویسی: Go (عملکرد سریعتر) خروجی: URL موقت trycloudflare.com (اعتبار ۶ ساعت)

📝 نحوه استفاده:

  1. Actionszyrln-cloudflare-dynamic-exit-nodeRun workflow
  2. URL موقت در لاگ نمایش داده میشود.
  3. مانند روش پایتون، URL را در کانفیگ VPN خود قرار دهید.

ℹ️ این نسخه با زبان Go نوشته شده و برای کاربرانی که به دنبال عملکرد سریعتر و مصرف کمتر هستند مناسب است.


۱۷. Exit Node Zyrln — استاتیک (zyrln-cloudflare-static-exit-node) 🆕

Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری), CF_TUNNEL_TOKEN (الزامی ⚠️) زبان برنامهنویسی: Go

📝 نحوه استفاده:

  1. CF_TUNNEL_TOKEN را تنظیم کنید.
  2. Actionszyrln-cloudflare-static-exit-nodeRun workflow
  3. تونل روی دامنه ثابت Cloudflare شما فعال میشود.

🆕 ویژگیهای جدید (که در README قبلی نیستند)

۱. آپلود خودکار در Google Drive

تمام workflowهای اصلی اکنون از گزینه upload_to_drive پشتیبانی میکنند. با تنظیم سه Secret مربوط به Google، فایلها مستقیماً در پوشه github-actions در Google Drive شما ذخیره میشوند. این ویژگی:

  • فضای مخزن GitHub را اشغال نمیکند
  • محدودیت ۵ گیگابایتی مخزن را دور میزند
  • فایلهای حجیم (>2GB) را میتوان بدون تقسیم شدن آپلود کرد

۲. آپلود به عنوان GitHub Release

گزینه upload_as_release در بسیاری از workflowها اضافه شده است. این گزینه فایلها را به عنوان Release در مخزن شما منتشر میکند (به جای push در مخزن).

۳. گزینه bundle_all

در workflowهای یوتیوب، مستقیم، گوگل پلی، لیچر و MEGA، گزینه bundle_all به شما امکان میدهد همه فایلهای دانلودی را در یک فایل ZIP تجمیع کنید.

۴. دانلودر MEGA.nz

دانلود فایل و فولدر از MEGA.nz بدون نیاز به اکانت.

۵. دانلودر اسپاتیفای (مجزا از ساندکلود)

قبلاً در README به صورت ترکیبی با ساندکلود ذکر شده بود. اکنون یک workflow مجزا با پشتیبانی از Spotify, Tidal, Apple Music, SoundCloud, YouTube, Pandora و قابلیت دانلود FLAC بدون اتلاف.

۶. Exit Nodeهای Zyrln (Go)

دو workflow جدید برای Exit Node با زبان Go اضافه شده است (داینامیک و استاتیک).

۷. Exit Node استاتیک پایتون

قبلاً فقط نسخه داینامیک در README بود. نسخه استاتیک با دامنه ثابت اضافه شده است.

۸. گزینههای پیشرفته در downloader-youtube

ورودیهای جدید: output_format (mp4/mp3), video_quality, audio_quality.


🐢 مشکل کندی checkout و راهحل آن

گاهی مرحلهی Checkout repository در workflowها بسیار کند میشود. این مشکل دو علت اصلی دارد:

دلیل توضیح
انباشته شدن فایلهای ریز تلگرام اگر از fetcher-telegram زیاد استفاده کنید، هزاران فایل کوچک در telegram/content/ ذخیره میشود. از آنجا که checkout کل مخزن را میخواند، این حجم بالا سرعت را کاهش میدهد و روی تمام workflowهای دیگر اثر میگذارد.
اوج مصرف GitHub Actions (Peak Times) در ساعات شلوغی سرورهای GitHub (معمولاً روزهای کاری، ساعتهای اداری UTC)، عملیات checkout برای همه کندتر میشود — حتی اگر فایلهای کمی داشته باشید.

راه حل:

  • برای فایلهای تلگرام: هر از گاهی با aio-cleaner، گزینه Clean Telegram را اجرا کنید.
  • برای peak times: صبر کنید تا از ساعت شلوغی خارج شوید، یا workflow را در ساعات خلوتتر اجرا کنید.

نکته خیلی مهم!!! حتما بعد هر آپدیت مرحله کلینر رو برای همه اجرا کنید وگرنه دانلودهاتون به شدت کند انجام میشه!!


⚠️ محدودیتها و هشدارهای مهم

هشدار توضیح
فضای مخزن ≈ ۵ گیگابایت فایلهای دانلودی (مخصوصاً ویدیو) به سرعت فضا را پر میکنند. مرتباً از AIO Cleaner استفاده کنید یا از Google Drive برای آپلود استفاده کنید.
حداکثر زمان اجرا ۶ ساعت (برای مخازن عمومی، دقیقه رایگان نامحدود)
فایلهای >۹۹MB خودکار به ZIP چندبخشی تقسیم میشوند — با 7‑Zip یا WinRAR باز کنید.
دانلودر X حتماً کوکی X_COOKIES را تنظیم کنید.
تلگرام فقط کانالهای عمومی. نام کانال را بدون @ وارد کنید.
وبسایت فقط صفحات عمومی (بدون دیوار ورود).
گوگل پلی احراز هویت خودکار — بدون نیاز به اکانت گوگل.
MEGA بدون نیاز به اکانت — لینکهای عمومی را دانلود میکند.
همگامسازی فورک حداقل هفتهای یکبار با دکمه Sync fork انجام دهید. اگر commit اضافی دارید، آن را Discard کنید.
کوکیها فقط در پنجره ناشناس استخراج کنید و پس از خروجی گرفتن، پنجره را ببندید. حتماً از robots.txt استفاده کنید.
Google Drive Refresh Token ممکن است بعد از مدتها منقضی شود — در صورت خطای 401، دوباره Refresh Token بگیرید.

📞 پشتیبانی

باگ یا پیشنهاد؟ یک Issue باز کنید و ذکر کنید:

  • نام گردشکار
  • ورودی (بدون کوکی)
  • پیام خطا از تب Actions

👀 فایل zoomusers.md چیست

  • این فایل یک راهنمای جامع بر اساس موضوعات فورام زوم یوزرز برای ارائه روشهای دسترسی به سرویس های گوگل و راه اندازی فیلترشکن برای کاربران ایرانی می باشد.

📋 خلاصه تمام Secretها

Secret Name Workflowها الزامی؟ توضیح
YOUTUBE_COOKIES downloader-youtube, aio-leecher اختیاری کوکی یوتیوب (با robots.txt بگیرید)
INSTAGRAM_COOKIES downloader-instagram, aio-leecher اختیاری کوکی اینستاگرام (با robots.txt بگیرید)
X_COOKIES downloader-x, aio-leecher الزامی کوکی X/توییتر (با robots.txt بگیرید)
TUNNEL_AUTH_KEY exit-nodeها اختیاری رمز PSK دلخواه برای تونل
CF_TUNNEL_TOKEN exit-nodeهای استاتیک اختیاری توکن تونل Cloudflare
GOOGLE_CLIENT_ID تمام workflowها (آپلود در Drive) اختیاری OAuth Client ID از Google Cloud
GOOGLE_CLIENT_SECRET تمام workflowها (آپلود در Drive) اختیاری OAuth Client Secret از Google Cloud
GOOGLE_REFRESH_TOKEN تمام workflowها (آپلود در Drive) اختیاری Refresh Token از OAuth Playground

⭐⭐⭐ اگر این پروژه برایتان مفید است، لطفاً ستاره بدهید! ⭐⭐⭐

About

regain your freedom and break gfw!

Resources

License

Stars

Watchers

Forks

Contributors