All‑in‑One GitHub Actions Downloader — بدون فیلتر · بدون تحریم
⭐ اگر این پروژه برایتان مفید است، لطفاً ستاره بدهید — به دیگران کمک میکند پیدایش کنند! ⭐
مخزن اصلی (
ProAlit/aio-downloader) بهطور مداوم بهروزرسانی میشود — رفع باگها، ویژگیهای جدید، و بهبود امنیت. فورک شما بهصورت خودکار این بهروزرسانیها را دریافت نمیکند!
در نسخههای قدیمیتر، برخی workflowها هنگام push با خطا مواجه میشدند یا فایلها در مسیر اشتباه قرار میگرفتند. این مشکل اکنون بهطور کامل حل شده است:
- تمام workflowها از
persist-credentials: trueاستفاده میکنند - قبل از هر push، یک
git pull --rebase --autostashاجرا میشود تا تداخلی پیش نیاید - حلقهی تلاش مجدد ۵ مرحلهای برای push وجود دارد
- پوشههای خروجی با
mkdir -pساخته میشوند - حجم بافر git به ۵۰۰ مگابایت افزایش یافته (
http.postBuffer)
اگر همچنان مشکلی دیدید، ابتدا فورک خود را بهروز کنید (پایین را ببینید) — به احتمال زیاد فورکتان قدیمی است.
❗ این کار را انجام دهید تا آخرین اصلاحات و امکانات را دریافت کنید.
اگر در فورک خود تغییری commit کرده باشید (حتی ویرایش channels.json)، فورک شما از مخزن اصلی «جلوتر» میافتد و دیگر بهروزرسانی دریافت نمیکند. تنها راه، دور انداختن commitهای خودتان و همگامسازی کامل است.
- به صفحه فورک خود بروید (مثلاً
github.com/your-username/aio-downloader) - بالای لیست فایلها، روی دکمهای که نوشته «Sync fork» کلیک کنید.
- در منوی بازشده، اگر commit اضافی ندارید، گزینه «Update branch» را بزنید.
- اگر commit اضافی دارید (مثلاً فایلها را ویرایش کردهاید)، به جای Update branch، گزینه «Discard commits» (دور انداختن commitها) را انتخاب کنید. این کار فورک شما را دقیقاً با مخزن اصلی یکسان میکند.
نکته خیلی مهم!!! حتما بعد هر آپدیت مرحله کلینر رو برای همه اجرا کنید وگرنه دانلودهاتون به شدت کند انجام میشه!!.
⚠️ با Discard commits تمام تغییرات خود را از دست میدهید. اگر فایل مهمی دارید، اول دانلودش کنید.
پس از آن، فورک شما کاملاً بهروز شده و آخرین رفعها و قابلیتها را دارد.
- پیشنیازها
- فورک و راهاندازی اولیه
- راهنمای جامع تمام Secretها و Tokenهای مورد نیاز
- نحوه استخراج کوکی (Cookie) با روش robots.txt
- کوکی یوتیوب (YOUTUBE_COOKIES)
- کوکی اینستاگرام (INSTAGRAM_COOKIES)
- کوکی X/توییتر (X_COOKIES)
- کلید احراز هویت تونل (TUNNEL_AUTH_KEY)
- توکن استاتیک Cloudflare (CF_TUNNEL_TOKEN)
- آپلود در Google Drive (GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN)
- کانفیگ خروجی Skirk (SKIRK_EXIT_CONFIG)
- کانفیگ WireGuard (WG_CONFIG)
- راهنمای کامل هر گردش کار (Workflow)
- ۱. دانلودر یوتیوب (downloader-youtube)
- ۲. دانلودر اینستاگرام (downloader-instagram)
- ۳. دانلودر X/توییتر (downloader-x)
- ۴. دانلودر مستقیم (downloader-direct)
- ۵. آرشیو کانال تلگرام (fetcher-telegram)
- ۶. دانلودر تلگرام بتا (downloader-telegram-beta)
- ۷. ضبط وبسایت - PDF و MHTML (fetcher-website)
- ۸. لیچر قدرتمند (aio-leecher)
- ۹. دانلودر ساندکلود (downloader-soundcloud)
- ۱۰. دانلودر اسپاتیفای (downloader-spotify)
- ۱۱. پاککننده جامع (aio-cleaner)
- ۱۲. دانلودر گوگل پلی (downloader-google-play)
- ۱۳. دانلودر MEGA.nz (downloader-mega-nz)
- ۱۴. Exit Node پایتون - داینامیک (python-mhrv-dynamic-exit-node)
- ۱۵. Exit Node پایتون - استاتیک (python-mhrv-static-exit-node)
- ۱۶. Exit Node Zyrln - داینامیک (zyrln-cloudflare-dynamic-exit-node)
- ۱۷. Exit Node Zyrln - استاتیک (zyrln-cloudflare-static-exit-node)
- ۱۸. Exit Node Rust - استاتیک (mhrv-rust-static-exit-node)
- ۱۹. Skirk Exit Node (skirk-vps)
- 🌐 راهنمای تانل WireGuard (اختیاری برای تمام Workflowها)
- ویژگیهای جدید (که در README قبلی نیستند)
- مشکل کندی checkout و راهحل آن
- محدودیتها و هشدارهای مهم
- پشتیبانی
- فایل zoomusers.md چیست
| نیاز | توضیح |
|---|---|
| حساب GitHub | رایگان — همین کافیست |
| مرورگر + افزونه Get cookies.txt LOCALLY | Chrome / Firefox / Edge |
| حساب اینستاگرام | (اختیاری) برای استوری و محتوای خصوصی |
| حساب X (توییتر) | الزامی برای دانلودر X |
| حساب Google Cloud | (اختیاری) برای آپلود خودکار در Google Drive و Skirk Exit Node |
| حساب Cloudflare | (اختیاری) برای Exit Nodeهای استاتیک |
| حساب ProtonVPN (رایگان) | (اختیاری) برای تغییر IP خروجی با WireGuard |
| تلگرام، ضبط وبسایت، گوگل پلی، MEGA | هیچ چیز اضافی نیاز ندارند |
روی دکمه Fork در بالای صفحه کلیک کنید.
- به تنظیمات بروید: Settings → Actions → General
- Actions permissions: گزینه Allow all actions and reusable workflows
- Workflow permissions: گزینه Read and write permissions
- ذخیره کنید.
⚠️ اگر دسترسی نوشتن ندهید، آپلود فایلها با خطا مواجه میشود!
مخزن فورکشده شامل فایلهای رسانهای از مخزن اصلی است. برای شروع تمیز، به Actions → aio-cleaner بروید، Clean ALL platforms را تیک بزنید و اجرا کنید.
با توجه به نیاز خود، Secretهای مورد نظر را تنظیم کنید (راهنمای کامل در بخش بعدی).
در این بخش، تکتک Secretهایی که هر Workflow نیاز دارد به همراه آموزش گامبهگام و تصویری برای دریافت آنها توضیح داده شده است. هر Secret در بخش Workflow مربوطه نیز ذکر شده است.
⭐ روش جدید و بهتر: به جای رفتن به صفحه اصلی سایت، از آدرس
https://website.com/robots.txtکوکی导出 کنید. این روش نرخ موفقیت بالاتری دارد زیرا robots.txt یک فایل ساده و سبک است و درخواستهای مشکوک کمتری روی آن اعمال میشود.
- یک پنجره Private/Incognito در مرورگر خود باز کنید.
- افزونه Get cookies.txt LOCALLY را نصب کنید (از فروشگاه افزونه مرورگرتان).
- به آدرس زیر بروید (بسته به سرویس مورد نظر):
https://www.youtube.com/robots.txt
https://www.instagram.com/robots.txt
https://x.com/robots.txt
- روی آیکون افزونه کلیک کنید → Export (فرمت Netscape) → فایل txt را ذخیره کنید.
- پنجره خصوصی را کاملاً ببندید (این کار نشست را میبندد ولی کوکی معتبر میماند).
چرا robots.txt بهتر است؟ robots.txt یک فایل متنی ساده است که هیچ محتوای سنگین یا اسکریپتهای امنیتی ندارد. در نتیجه:
- کوکیهای دریافتی «تمیزتر» هستند
- احتمال trigger شدن سیستمهای ضد-ربات کمتر است
- نشست شما معتبرتر باقی میماند
چرا پنجره ناشناس؟ اگر در پنجره عادی لاگاوت کنید، کوکیها بیاعتبار میشوند. با بستن پنجره ناشناس، نشست بسته میشود ولی کوکی معتبر میماند.
⚠️ نشانههای خرابی کوکی: خطایSign in to confirm you're not a bot(یوتیوب)، خطای429 Too Many Requests(اینستاگرام)، یا دانلود موفق ولی بدون فایل خروجی. راه حل: کوکی جدید از پنجره ناشناس بگیرید و Secret را بهروز کنید.
Secret Name: YOUTUBE_COOKIES
وضعیت: اختیاری (اما بهشدت توصیه میشود)
مورد استفاده در: downloader-youtube, aio-leecher
- پنجره Private باز کنید.
- به
https://www.youtube.com/robots.txtبروید. - وارد اکانت گوگل خود شوید (حتماً در همان پنجره ناشناس).
- افزونه Get cookies.txt LOCALLY را باز کرده و Export بزنید.
- محتوای فایل txt را کپی کنید.
- به Settings → Secrets and variables → Actions بروید.
- New repository secret بزنید.
- نام:
YOUTUBE_COOKIES| مقدار: محتوای فایل txt را بچسبانید. - پنجره ناشناس را ببندید.
Secret Name: INSTAGRAM_COOKIES
وضعیت: اختیاری (برای استوری و محتوای خصوصی الزامی)
مورد استفاده در: downloader-instagram, aio-leecher
- پنجره Private باز کنید.
- به
https://www.instagram.com/robots.txtبروید. - وارد اکانت اینستاگرام خود شوید (حتماً در همان پنجره ناشناس).
- افزونه را باز کرده و Export بزنید.
- Secret با نام
INSTAGRAM_COOKIESبسازید و محتوای فایل را بچسبانید. - پنجره ناشناس را ببندید.
Secret Name: X_COOKIES
وضعیت: الزامی
- پنجره Private باز کنید.
- به
https://x.com/robots.txtبروید. - وارد اکانت X شوید (حتماً در همان پنجره ناشناس).
- افزونه را باز کرده و Export بزنید.
- Secret با نام
X_COOKIESبسازید. - پنجره ناشناس را ببندید.
⚠️ بدون کوکی X، دانلودر X اصلاً کار نمیکند!
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, mhrv-rust-static-exit-node
- یک رمز عبور قوی (Pre-Shared Key) انتخاب کنید (مثلاً ترکیبی از حروف و اعداد حداقل ۱۶ کاراکتری).
- به Settings → Secrets and variables → Actions بروید.
- Secret با نام
TUNNEL_AUTH_KEYبسازید و رمز خود را وارد کنید. - همین رمز را در کانفیگ VPN خود (فیلد
psk) نیز قرار دهید.
⚠️ این رمز باید دقیقاً باpskدرconfig.jsonپروژه VPN شما یکی باشد. URL و PSK را کنار هم منتشر نکنید.
Secret Name: CF_TUNNEL_TOKEN
وضعیت: اختیاری (فقط برای Exit Nodeهای استاتیک)
مورد استفاده در: python-mhrv-static-exit-node, zyrln-cloudflare-static-exit-node, mhrv-rust-static-exit-node
- به Cloudflare Zero Trust Dashboard بروید.
- Access → Tunnels → Create a tunnel.
- نام دلخواه بدهید و Save کنید.
- نوع اتصال را Cloudflared انتخاب کنید.
- دستور نمایش داده شده شامل توکن است. توکن را کپی کنید.
- Secret با نام
CF_TUNNEL_TOKENبسازید و توکن را بچسبانید.
ℹ️ این Secret فقط برای Exit Nodeهای استاتیک (با دامنه ثابت) نیاز است. برای Exit Nodeهای داینامیک (با آدرس trycloudflare.com موقت)، نیازی به این توکن نیست.
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
- به Google Cloud Console بروید.
- یک پروژه جدید بسازید (یا پروژه موجود را انتخاب کنید).
- APIs & Services → Library.
- Google Drive API را جستجو و Enable کنید.
قسمت دوم: ایجاد OAuth Client ID
- APIs & Services → Credentials.
- Create Credentials → OAuth client ID.
- نوع اپلیکیشن را Web application انتخاب کنید (حتی اگر برای استفاده شخصی است).
- نام دلخواه بدهید.
- در بخش Authorized redirect URIs، روی ADD URI کلیک کنید و آدرس زیر را وارد کنید:
https://developers.google.com/oauthplayground
- روی Create کلیک کنید.
- Client ID و Client Secret نمایش داده میشود. آنها را کپی کنید.
- Secretهای زیر را در GitHub بسازید:
GOOGLE_CLIENT_ID → Client ID خود را بچسبانید
GOOGLE_CLIENT_SECRET → Client Secret خود را بچسبانید
اگر این مرحله را انجام ندهید، در قسمت سوم (مرحله ۱۶) با خطای 403 یا 400 مواجه میشوید.
- به صفحه OAuth consent screen بروید.
- اگر برنامه شما در حالت Testing قرار دارد (با نوار زرد رنگ)، روی دکمهای که زیر "In production" نیست کلیک کنید (معمولاً PUBLISH APP). در تأییدیه، Confirm را بزنید.
- وضعیت باید به "In production" تغییر کند. (لازم نیست برنامه توسط گوگل تأیید شود؛ برای استفاده شخصی کافیست.)
قسمت سوم: دریافت Refresh Token با OAuth Playground
- به Google OAuth Playground بروید.
- روی آیکون ⚙️ (تنظیمات) کلیک کنید.
- تیک Use your own OAuth credentials را بزنید.
- Client ID و Client Secret خود را وارد کنید و Close کنید.
- در Step 1، در بخش Drive API v3، scope زیر را انتخاب کنید:
https://www.googleapis.com/auth/drive
- روی Authorize APIs کلیک کنید و اجازه دسترسی بدهید. (اگر خطای redirect_uri_mismatch گرفتید، مطمئن شوید Authorized redirect URIs شامل آدرس Playground است.)
- در Step 2، تیک Auto-refresh the token before it expires را بزنید.
- روی Exchange authorization code for tokens کلیک کنید.
- Refresh token نمایش داده میشود. آن را کپی کنید.
- Secret زیر را در GitHub بسازید:
GOOGLE_REFRESH_TOKEN → Refresh Token خود را بچسبانید
⚠️ نکته مهم: Refresh Token فقط یک بار نمایش داده میشود. اگر آن را گم کنید، باید دوباره از اول مراحل را طی کنید. همچنین اگر از OAuth Playground استفاده میکنید، حتماً تیک Auto-refresh را بزنید.
ℹ️ پس از تنظیم هر سه Secret، در هر workflow که اجرا میکنید، کافیست گزینه upload_to_drive را تیک بزنید تا فایلها به جای مخزن GitHub، در Google Drive شما (پوشه
github-actions) ذخیره شوند.
Secret Name: SKIRK_EXIT_CONFIG
وضعیت: الزامی برای Skirk Exit Node
مورد استفاده در: skirk-vps
این Secret قلب گردشکار skirk-vps است. محتوای آن تمام اطلاعات موجود در فایل exit.json میباشد که یک بار برای همیشه تولید میشود.
فایل exit.json حاوی یک Refresh Token دائمی گوگل و شناسه صندوق دریافتی Drive است و تا زمانی که اپلیکیشن OAuth شما در وضعیت In production باشد، هرگز منقضی نمیشود.
این راهنما تمام مراحل را از صفر و بدون ارجاع به بخشهای دیگر توضیح میدهد. برای راحتی شما، تمام گامها بهصورت مرحلهبهمرحله و مستقل نوشته شدهاند.
- یک حساب Google (جیمیل معمولی کافی است)
- یک مخزن GitHub (همان که گردشکارهای aio‑downloader را در آن فعال کردهاید)
- یک مرورگر وب روی سیستم خودتان
- به کنسول Google Cloud بروید.
- یک پروژه جدید بسازید (در صورت نداشتن پروژه، روی منوی کشویی بالای صفحه کلیک کرده و New Project را انتخاب کنید).
- پس از ورود به پروژه، از منوی سمت چپ به APIs & Services → Library بروید.
- عبارت «Google Drive API» را جستجو کنید.
- وارد صفحه آن شده و روی دکمه Enable کلیک کنید. (اگر از قبل فعال است، چیزی تغییر ندهید.)
این مرحله تضمین میکند که Refresh Token شما پس از ۷ روز منقضی نشود و برای همیشه معتبر بماند.
- در کنسول Google Cloud، از منوی سمت چپ به APIs & Services → OAuth consent screen بروید.
- نوع کاربر (User Type) را External انتخاب کنید و روی Create کلیک کنید.
- در صفحه اطلاعات برنامه، فقط این فیلدها را پر کنید:
- App name:
Skirk Exit(هر نام دلخواه) - User support email: ایمیل خودتان
- Developer contact email: ایمیل خودتان
(بقیه فیلدها را خالی بگذارید)
- App name:
- روی Save and Continue کلیک کنید.
- در بخش Scopes چیزی اضافه نکنید و فقط Save and Continue را بزنید.
- در بخش Test users، روی Add Users کلیک کنید و ایمیل خود را وارد کنید. سپس Save and Continue را بزنید.
- اکنون در همان صفحه OAuth consent screen، به دنبال بخش Publishing status بگردید. اگر دکمه PUBLISH APP را میبینید (معمولاً زیر نوار زرد رنگ Testing)، روی آن کلیک کنید و در پنجره تأیید، Confirm را بزنید.
- وضعیت باید به In production تغییر کند. (نگران هشدار "Verification" نباشید – برنامه شما فقط برای استفاده شخصی است.)
- در کنسول Google Cloud، از منوی سمت چپ به Credentials بروید.
- روی Create Credentials کلیک کرده و OAuth client ID را انتخاب کنید.
- Application type را Desktop app قرار دهید.
- Name: یک نام ساده مثل
Skirk Exit Desktopبدهید. - مهم: در قسمت Authorized redirect URIs، مقدار
http://localhostرا وارد کنید و روی Add URI کلیک کنید. (اگر یک پورت هم خواست، مثلاًhttp://localhost:8080مشکلی ندارد، اماhttp://localhostکافیست.) - روی Create کلیک کنید.
- یک پنجره باز میشود که Client ID و Client Secret را نمایش میدهد. هر دو را در یک جای امن کپی کنید (مثلاً یک فایل متنی موقت). در گامهای بعدی به آنها نیاز دارید.
- به صفحه مخزن فورکشده خود در GitHub بروید.
- روی دکمه سبز Code کلیک کنید، سپس تب Codespaces را باز کنید.
- روی Create codespace on main کلیک کنید.
- صبر کنید تا محیط بارگذاری شود (حدود ۱ دقیقه). شما یک ترمینال لینوکسی آنلاین در مرورگر خود خواهید داشت.
در ترمینال Codespaces (اگر باز نشد، کلیدهای Ctrl+Shift+` را فشار دهید)، دستور زیر را اجرا کنید:
curl -fsSL https://raw.githubusercontent.com/ShahabSL/Skirk/main/install.sh | sh
پس از پایان نصب، با زدن دستور skirk --version میتوانید از نصب موفق مطمئن شوید.
حال باید دستور راهاندازی را با Client ID و Client Secret خود اجرا کنید. در ترمینال Codespaces دستور زیر را عیناً کپی کنید و فقط بخشهای CLIENT_ID و CLIENT_SECRET را با مقادیر واقعی خود جایگزین کنید (بهدقت، بدون تغییر گیومهها):
skirk setup init \
--out skirk-kit \
--reset-google-login \
--oauth-mode personal \
--oauth-client-id "CLIENT_ID" \
--oauth-client-secret "CLIENT_SECRET"
پس از اجرا، دستور یک URL طولانی چاپ میکند.
Ctrl+Click روی این URL کنید تا در مرورگر عادی سیستم خودتان باز شود.
- مرورگر شما صفحه ورود گوگل را نشان میدهد. حتماً همان اکانتی را انتخاب کنید که در Test users اضافه کردهاید.
- پس از اجازه دادن، گوگل شما را به آدرسی مثل
http://localhost/?code=4/0AanRRr...هدایت میکند.
(ممکن است مرورگر خطای «اتصال برقرار نشد» نشان دهد – این طبیعی است، چون هیچ سروری روی لوکالهاست شما اجرا نمیشود.)
کاری که باید انجام دهید:
- نوار آدرس مرورگر را کامل کپی کنید.
- به ترمینال Codespaces برگردید و این آدرس را بهصورت کامل پیست کنید (دقت کنید که تمام آن، شامل
code=...را کپی کرده باشید). - سپس Enter بزنید.
دستور راهاندازی بهطور خودکار کد را از آدرس استخراج کرده و کار را ادامه میدهد.
پس از چند ثانیه، در ترمینال پیام «Setup completed» و نمایش فایلهای تولید شده را میبینید.
در پنل سمت چپ Codespaces، یک فایلاکسپلورر وجود دارد. وارد پوشه skirk-kit شوید.
دو فایل حیاتی در اینجا قرار دارند:
exit.json→ برای SecretSKIRK_EXIT_CONFIGلازم است.client.skirk→ برای استفاده از پروکسی روی سیستم شخصی شما (اختیاری اما مهم).
روش دانلود:
- روی
exit.jsonراستکلیک کنید و Download را انتخاب کنید. فایل روی سیستم شما ذخیره میشود. - همین کار را برای
client.skirkنیز انجام دهید.
⚠️ این دو فایل، کلید ورود به حساب گوگل و سرویس خروجی شما هستند. آنها را در جای امن نگه دارید و هرگز بهصورت عمومی به اشتراک نگذارید.
- فایل
exit.jsonرا با یک ویرایشگر متن (مثل Notepad) باز کنید. - همه محتوای آن (شامل آکولادهای
{و}) را کپی کنید. - در مرورگر، به مخزن GitHub خود بروید: Settings → Secrets and variables → Actions.
- روی New repository secret کلیک کنید.
- Name را
SKIRK_EXIT_CONFIGو Value را محتوای کپیشده قرار دهید. - روی Add secret کلیک کنید.
ℹ️ فایل
client.skirkرا فعلاً جایی امن نگه دارید. بعداً برای اتصال از سیستم شخصی (باskirk serve-client) از آن استفاده خواهید کرد.
این مرحله فوقالعاده مهم است! از آنجایی که شما فایلهای حساس را در محیط Codespaces تولید کردهاید، نباید هیچ ردپایی از آنها در مخزن باقی بماند. برای این کار:
- در ترمینال Codespaces، دستورهای زیر را به ترتیب اجرا کنید:
cd ~/workspace/your-repo-name # مسیر دقیق با توجه به نام مخزنتان (معمولاً بهطور خودکار آنجا هستید)
rm -rf skirk-kit
git add .
git commit -m "Remove temporary Skirk configuration files"
git push
(اگر نام مخزن یا مسیر دقیق را نمیدانید، با دستور pwd بررسی کنید. معمولاً پیشفرض Codespaces شما را در /workspaces/نام-مخزن قرار میدهد.)
این کار پوشه skirk-kit را بهطور کامل از مخزن حذف کرده و تغییر را ثبت (push) میکند.
- اکنون میتوانید Codespace را ببندید و حذف کنید:
از گوشه پایین–چپ روی نام Codespace کلیک کنید و Delete Codespace را انتخاب کنید.
اکنون مخزن شما کاملاً تمیز است و هیچ فایل حساسی در آن وجود ندارد. تنها یک Secret رمزنگاریشده با نام SKIRK_EXIT_CONFIG دارید که برای اجرای skirk-vps کافیست.
- Refresh Token دائمی است، مگر اینکه OAuth App را دوباره به حالت Testing برگردانید یا دسترسی برنامه را از حساب گوگل لغو کنید.
- اگر نیاز به ساخت مجدد
exit.jsonدارید، کافیست گامهای ۴ تا ۹ را دوباره انجام دهید و Secret را با فایل جدید بهروز کنید. - فایل
client.skirkرا میتوانید روی لپتاپ یا گوشی خود نگه دارید. با نصب Skirk روی سیستم شخصی و اجرایskirk serve-client --config client.skirkیک پروکسی SOCKS5 روی127.0.0.1:1080خواهید داشت که تمام ترافیک را از طریق Exit Node گیتهاب (و در صورت تمایل VPN) عبور میدهد.
Secret Name: WG_CONFIG
وضعیت: کاملاً اختیاری (فقط در صورت تمایل به تغییر IP خروجی)
مورد استفاده در: تمام workflowهای دارای گزینه vpn_enabled (aio-leecher، تمام Exit Nodeها، skirk-vps)
این Secret شامل کل محتوای فایل کانفیگ WireGuard (از ProtonVPN یا هر سرویسدهنده دیگر) به صورت متن ساده است.
- یک حساب رایگان در ProtonVPN بسازید (بدون کارت اعتباری).
- پس از ورود، به Account → OpenVPN / IKEv2 username بروید (بله، بخش WireGuard هم همانجاست).
- زیر WireGuard configuration، یک کلید جدید بسازید و سرور رایگان (مثلاً Netherlands, Japan, US) و پروتکل WireGuard را انتخاب کنید.
- فایل
.confرا دانلود کنید. محتوای آن شبیه زیر است:
[Interface]
PrivateKey = ...
Address = 10.2.0.2/32
DNS = 10.2.0.1
[Peer]
PublicKey = ...
AllowedIPs = 0.0.0.0/0
Endpoint = 185.159.158.146:51820
- همه خطوط را کپی کرده و به عنوان یک Secret جدید با نام
WG_CONFIGدر مخزن ذخیره کنید (Settings → Secrets → Actions → New secret).
⚠️ کانفیگ را دقیقاً همانطور که هست (با Line Break) بچسبانید. DNS داخل آن برای جلوگیری از نشت DNS ضروری است.
ℹ️ اگر میخواهید IP خروجی آلمان یا کشور دیگری باشد، میتوانید با نسخه پولی ProtonVPN یا هر سرویس WireGuard دیگر این کار را انجام دهید. در صورت عدم نیاز، این Secret را ایجاد نکنید.
در این بخش، تمامی ۱۹ گردش کار به همراه Secretهای مورد نیاز هر کدام، نحوه استفاده، و نکات مهم توضیح داده شده است.
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
- Actions → downloader-youtube → Run workflow
- ورودی:
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است.
-
🆕 گزینههای جدید:
output_format: انتخاب فرمت خروجی (mp4 یا mp3)video_quality: حداکثر رزولوشن (4K, 1080, 720, 480, 360, best)audio_quality: بیتریت صدا (320, 192, 128, 64)bundle_all: تجمیع همه فایلها در یک ZIPupload_as_release: آپلود به عنوان GitHub Releaseupload_to_drive: 🆕 آپلود در Google Drive (به جای مخزن)
-
خروجی در پوشه
youtube/(فایلهای بزرگ به ZIP چندبخشی تبدیل میشوند)
Secretهای مورد نیاز: INSTAGRAM_COOKIES (اختیاری)
Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)
- Actions → downloader-instagram → Run workflow
- لینکها را با کاما، فاصله یا خط جدید جدا کنید.
https://www.instagram.com/p/DX2y7oLDFOb/,
https://www.instagram.com/reel/DVRXhn0gjL3/,
https://www.instagram.com/p/DX6US4uCNGb/
-
🆕 گزینههای جدید:
upload_as_release: آپلود به عنوان GitHub Releaseupload_to_drive: 🆕 آپلود در Google Drive
-
خروجی ZIP در پوشه
instagram/.
⚠️ خطای ۴۲۹ یعنی کوکی اینستاگرام منقضی یا محدود شده — کوکی جدید بگیرید.
Secretهای مورد نیاز: X_COOKIES (الزامی
- Actions → downloader-x → Run workflow
- لینکها را با کاما، فاصله یا خط جدید وارد کنید.
https://x.com/username/status/123456789,
https://x.com/otheruser/status/987654321
- خروجی ZIP در پوشه
x/.
Secretهای مورد نیاز: هیچکدام الزامی نیست
Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)
- دانلود با
aria2c(۱۶ اتصال همزمان — بسیار سریع) - پشتیبانی از تمام لینکهای مستقیم (
.zip,.mp4,.apk,.pdfو …)
- Actions → downloader-direct → Run workflow
- لینکهای مستقیم را بچسبانید.
https://example.com/file.zip, https://example.com/video.mp4
-
🆕 گزینههای جدید:
bundle_all: تجمیع همه فایلها در یک ZIPupload_as_release: آپلود به عنوان GitHub Releaseupload_to_drive: 🆕 آپلود در Google Drive
-
فایلها در
direct/ذخیره میشوند (بزرگتر از ۹۹MB به ZIP چندبخشی تقسیم میشوند).
Secretهای مورد نیاز: هیچکدام اجرای خودکار: هر ۳۰ دقیقه یکبار (cron)
- فایل
telegram/channels.jsonرا ویرایش کنید. نام کانال را بدون @ وارد کنید.
["VahidOOnLine", "mwarmonitor", "channelname"]
- Actions → fetcher-telegram → Run workflow (یا منتظر اجرای خودکار بمانید).
⚠️ فقط کانالهای عمومی. زمانبندی خودکار ممکن است با تأخیر ۱ تا ۶ ساعت اجرا شود.
Secretهای مورد نیاز: هیچکدام محدودیت: حداکثر ۱۰۰۰ لینک
- Actions → downloader-telegram-beta → Run workflow
- لینک پستهای تلگرام را وارد کنید.
https://t.me/channelname/123, https://t.me/channelname/456
- فایلها در
telegram/downloader/ذخیره میشوند.
Secretهای مورد نیاز: هیچکدام
Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)
محدودیت: حداکثر ۵۰۰ لینک داخلی، مهلت ۳۰ دقیقه
- PDF با کیفیت بالا (مناسب برای چاپ و آرشیو)
- MHTML (بایگانی کامل صفحه شامل تصاویر، CSS و فونتها — قابل باز شدن در مرورگر)
- رندر با Playwright + Chromium برای صفحات داینامیک
- Actions → fetcher-website → Run workflow
- آدرس کامل با
https://را وارد کنید.
https://example.com/article
https://github.com/ProAlit/aio-downloader
-
🆕 گزینههای جدید:
capture_mhtml: ذخیره به صورت MHTML (پیشفرض: فعال)capture_pdf: ذخیره به صورت PDF (پیشفرض: فعال)upload_as_release: آپلود به عنوان GitHub Releaseupload_to_drive: 🆕 آپلود در Google Drive
-
خروجیها در پوشه
website/— هم فایل PDF و هم فایل MHTML.
⚠️ فقط سایتهای عمومی. صفحات SPA سنگین ممکن است کامل رندر نشوند.
Secretهای مورد نیاز: YOUTUBE_COOKIES, INSTAGRAM_COOKIES, X_COOKIES (همگی اختیاری، خودکار تشخیص داده میشوند)
Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)
زمان اجرا: حداکثر ۷۰۰ دقیقه
قابلیت تانل WireGuard: دارد (گزینه vpn_enabled)
قدرتمندترین بخش! از یوتیوب و اینستاگرام تا تیکتاک، ساندکلاد، اسپاتیفای و بیش از ۱۸۰۰ سایت دیگر.
برای بهترین نتیجه، حتماً از حالت خام استفاده کنید. کافیست بعد از لینک، دو خط فاصله -- بگذارید و سپس هر آرگومان معتبر 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: تجمیع همه فایلها در یک ZIPupload_as_release: آپلود به عنوان GitHub Releaseupload_to_drive: 🆕 آپلود در Google Drivevpn_enabled: فعالسازی WireGuard VPN برای عبور از محدودیتهای جغرافیایی (نیاز به SecretWG_CONFIG)
Secretهای مورد نیاز: هیچکدام
Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)
- Actions → downloader-soundcloud → Run workflow
- لینکها را وارد کنید.
https://soundcloud.com/artist/track,
https://soundcloud.com/artist/track
-
🆕 گزینههای جدید:
output_format: فرمت خروجی (mp3, flac, ogg, opus, m4a, wav)audio_quality: کیفیت صدا (128k, 192k, 256k, 320k)upload_as_release: آپلود به عنوان GitHub Releaseupload_to_drive: 🆕 آپلود در Google Drive
-
فایلها در
music/(تبدیل خودکار با ffmpeg).
Secretهای مورد نیاز: هیچکدام (SpotiFLAC بدون نیاز به اکانت کار میکند)
Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)
سرویسهای پشتیبانیشده: Spotify, Tidal, Apple Music, SoundCloud, YouTube, Pandora
ℹ️ این دانلودر از SpotiFLAC استفاده میکند که بدون نیاز به هیچ اکانتی، موسیقی را با بهترین کیفیت ممکن (از جمله FLAC بدون اتلاف) دانلود میکند.
- Actions → downloader-spotify → Run workflow
- لینکها را وارد کنید (ترک، آلبوم، پلیلیست، آرتیست).
https://open.spotify.com/track/xxxxx,
https://open.spotify.com/album/xxxxx,
https://open.spotify.com/playlist/xxxxx
-
گزینهها:
output_format: فرمت خروجی (flac, mp3, m4a, ogg, opus, wav) — پیشفرض: flacaudio_quality: کیفیت (LOSSLESS, HI_RES_LOSSLESS, DOLBY_ATMOS, HIGH, LOW, 320k, 256k, 192k, 128k) — پیشفرض: LOSSLESSupload_as_release: آپلود به عنوان GitHub Releaseupload_to_drive: 🆕 آپلود در Google Drive
-
فایلها در
music/ذخیره میشوند.
Secretهای مورد نیاز: هیچکدام
⚠️ فضای مخزن رایگان GitHub حدود ۵ گیگابایت است. فایلهای حجیم فضا را پر میکنند — مرتب پاکسازی کنید.
| پلتفرم | چه چیزهایی حذف میشود |
|---|---|
| تلگرام | telegram/content/، telegram.md، last_ids.json |
| تلگرام دانلودر | telegram/downloader/ |
| یوتیوب | کل youtube/ |
| اینستاگرام | کل instagram/ |
| X | کل x/ |
| وبسایت | کل website/ |
| لیچر | کل leecher/ |
| گوگل پلی | کل google-play/ |
| موسیقی | کل music/ |
| مستقیم | کل direct/ |
| MEGA | کل mega-nz/ 🆕 |
- Actions → aio-cleaner → Run workflow
- چکباکسهای دلخواه را تیک بزنید (یا Clean ALL platforms)
- اجرا کنید.
❗ حذف دائمی است — ابتدا فایلهای مهم را دانلود کنید. حتما بعد هر آپدیت مرحله کلینر رو برای همه اجرا کنید وگرنه دانلودهاتون به شدت کند انجام میشه!!
Secretهای مورد نیاز: هیچکدام (احراز هویت خودکار)
Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)
- Actions → downloader-google-play → Run workflow
- app: نام پکیج (مثلاً
com.google.android.youtube) یا لینک گوگل پلی. - architecture:
arm64(پیشفرض) یاarmv7. - merge_splits: ادغام APKهای چندبخشی (پیشفرض فعال).
app: com.spotify.music
architecture: arm64
merge_splits: true
-
🆕 گزینههای جدید:
bundle_all: تجمیع همه APKها در یک ZIPupload_as_release: آپلود به عنوان GitHub Releaseupload_to_drive: 🆕 آپلود در Google Drive
-
فایل APK (زیپشده) در
google-play/.
ℹ️ برای پیدا کردن نام پکیج، به لینک برنامه در گوگل پلی دقت کنید:
id=com.example.app.
Secretهای مورد نیاز: هیچکدام (بدون نیاز به اکانت MEGA)
Secretهای Google Drive: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN (اختیاری)
- دانلود فایل و فولدر از MEGA.nz بدون نیاز به اکانت
- استفاده از megatools برای دانلود مطمئن
- پشتیبانی از لینکهای فایل و فولدر
- Actions → downloader-mega-nz → Run workflow
- لینکهای MEGA را وارد کنید.
https://mega.nz/file/xxxxx,
https://mega.nz/folder/xxxxx
-
گزینهها:
bundle_all: تجمیع همه فایلها در یک ZIPupload_method: روش آپلود (split_pushیاrelease)upload_to_drive: 🆕 آپلود در Google Drive
-
فایلها در
mega-nz/ذخیره میشوند.
Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری)
Secretهای WireGuard: WG_CONFIG (اختیاری)
خروجی: URL موقت trycloudflare.com (اعتبار ۶ ساعت)
قابلیت تانل WireGuard: دارد (گزینه vpn_enabled)
- Actions → python-mhrv-dynamic-exit-node → Run workflow
- پس از ۲۰-۳۰ ثانیه در لاگ، خطی شبیه زیر میبینید:
https://random-name.trycloudflare.com
- این URL را کپی و در بخش
exit_nodeکانفیگ VPN خود قرار دهید:
"exit_node": {
"enabled": true,
"provider": "vps",
"url": "https://random-name.trycloudflare.com",
"psk": "همان_رمز_مخفی"
}
⏱️ اعتبار هر URL تا ۶ ساعت است. بعداً باید دوباره اجرا کنید.
Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری), CF_TUNNEL_TOKEN (الزامی WG_CONFIG (اختیاری)
خروجی: دامنه ثابت Cloudflare (مثلاً exit.yourdomain.com)
قابلیت تانل WireGuard: دارد (گزینه vpn_enabled)
- ابتدا
CF_TUNNEL_TOKENرا تنظیم کنید (راهنما در بخش Secretها). - Actions → python-mhrv-static-exit-node → Run workflow
- تونل روی دامنه ثابت شما فعال میشود.
ℹ️ مزیت این روش نسبت به داینامیک: URL ثابت است و نیازی به بهروزرسانی مداوم کانفیگ نیست.
Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری)
Secretهای WireGuard: WG_CONFIG (اختیاری)
زبان برنامهنویسی: Go (عملکرد سریعتر)
خروجی: URL موقت trycloudflare.com (اعتبار ۶ ساعت)
قابلیت تانل WireGuard: دارد (گزینه vpn_enabled)
- Actions → zyrln-cloudflare-dynamic-exit-node → Run workflow
- URL موقت در لاگ نمایش داده میشود.
- مانند روش پایتون، URL را در کانفیگ VPN خود قرار دهید.
ℹ️ این نسخه با زبان Go نوشته شده و برای کاربرانی که به دنبال عملکرد سریعتر و مصرف کمتر هستند مناسب است.
Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری), CF_TUNNEL_TOKEN (الزامی WG_CONFIG (اختیاری)
زبان برنامهنویسی: Go
قابلیت تانل WireGuard: دارد (گزینه vpn_enabled)
CF_TUNNEL_TOKENرا تنظیم کنید.- Actions → zyrln-cloudflare-static-exit-node → Run workflow
- تونل روی دامنه ثابت Cloudflare شما فعال میشود.
Secretهای مورد نیاز: TUNNEL_AUTH_KEY (اختیاری), CF_TUNNEL_TOKEN (الزامی WG_CONFIG (اختیاری)
زبان برنامهنویسی: Rust (بسیار سریع و کمحجم)
خروجی: دامنه ثابت Cloudflare
قابلیت تانل WireGuard: دارد (گزینه vpn_enabled)
- توکن
CF_TUNNEL_TOKENرا تنظیم کنید. - Actions → mhrv-rust-static-exit-node → Run workflow
- تونل روی دامنه ثابت فعال میشود.
ℹ️ نسخه Rust برای کسانی که به حداکثر سرعت و پایداری نیاز دارند ایدهآل است.
Secretهای مورد نیاز: SKIRK_EXIT_CONFIG (الزامی WG_CONFIG (اختیاری)
مدت زمان اجرا: حداکثر ۶ ساعت
قابلیت تانل WireGuard: دارد (گزینه vpn_enabled)
این گردش کار یک سرویس خروجی Skirk مبتنی بر Google Drive راهاندازی میکند که بهعنوان رله ترافیک عمل میکند. برخلاف Exit Nodeهای دیگر، نیازی به Cloudflare Tunnel ندارد و از زیرساخت گوگل برای انتقال داده استفاده میکند.
- احراز هویت خودکار از طریق Google OAuth (بدون نیاز به دخالت دستی پس از تنظیم اولیه)
- Refresh Token دائمی (به شرط Publish بودن OAuth App)
- امکان تانل WireGuard برای تغییر IP خروجی
- اجرای خودکار یا دستی
- مطمئن شوید Secret
SKIRK_EXIT_CONFIGطبق راهنمای بخش ۸. کانفیگ خروجی Skirk تنظیم شده باشد. - Actions → skirk-vps → Run workflow
- در صورت تمایل، گزینه
vpn_enabledرا فعال کنید (نیاز بهWG_CONFIG). - پس از شروع، Skirk بهطور خودکار سرویس خروجی را اجرا میکند و توکنها را تمدید میکند.
هنگام تنظیم اولیه (بخش ۸)، علاوه بر exit.json، یک فایل client.skirk نیز در پوشه skirk-kit ایجاد میشود. برای استفاده از این Exit Node روی سیستم شخصی:
- فایل
client.skirkرا به ماشین محلی منتقل کنید. - با دستور
skirk serve-client --config client.skirkیک پروکسی SOCKS5 روی127.0.0.1:1080راهاندازی کنید. - مرورگر یا برنامه خود را برای استفاده از این پروکسی تنظیم کنید.
⚠️ برای عملکرد ۲۴/۷، میتوانید این workflow را با یک زمانبندی (cron) هر ۵.۵ ساعت یکبار اجرا کنید تا وقفهها به حداقل برسد.
از این پس بسیاری از گردشکارها (لیچر، تمام Exit Nodeها، Skirk) دارای یک گزینه vpn_enabled هستند. با فعال کردن آن، تمام ترافیک خروجی رانر از یک تانل WireGuard عبور کرده و IP شما به IP سرور VPN تغییر میکند. این قابلیت برای موارد زیر بینظیر است:
- دور زدن تحریمها و محدودیتهای جغرافیایی
- دانلود از سایتهایی که IP دیتاسنتر GitHub را بلاک کردهاند
- تست سرویسها از لوکیشنهای مختلف
- یک کانفیگ WireGuard معتبر دریافت کنید (پیشنهاد: ProtonVPN رایگان).
- محتوای فایل
.confرا دقیقاً به عنوان Secret با نامWG_CONFIGذخیره کنید. - هنگام اجرای دستی هر Workflow، چکباکس
vpn_enabledرا تیک بزنید. - اگر اتصال موفق باشد، در لاگ پیام
✅ WireGuard VPN connected.را میبینید. - در صورت شکست (مثلاً عدم وجود Secret یا مشکل کانفیگ)، Workflow بدون VPN ادامه مییابد — هیچ خطایی رخ نمیدهد.
- کانفیگ WireGuard باید دارای
DNSمناسب باشد تا از نشت DNS جلوگیری شود. - برای تغییر کشور خروجی، کافیست کانفیگ مربوط به آن سرور را جایگزین Secret کنید.
- اگر از ProtonVPN استفاده میکنید، سرورهای رایگان شامل هلند، ژاپن و آمریکا هستند.
- این Secret به صورت رمزنگاری شده ذخیره میشود و فقط در طول اجرای Job در دسترس است.
...
- Skirk Exit Node: یک سرویس خروجی قدرتمند مبتنی بر Google Drive با Refresh Token دائمی.
- WireGuard Toggle: اکنون لیچر و تمام Exit Nodeها (Python, Zyrln, Rust, Skirk) دارای سوئیچ
vpn_enabledهستند که با یک Secret ساده (WG_CONFIG) میتوان IP خروجی را تغییر داد. - پشتیبانی از ProtonVPN رایگان: با یک حساب رایگان میتوانید کانفیگ WireGuard دریافت کرده و از IP کشورهای مختلف استفاده کنید.
...
...
...
...
| 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 |
SKIRK_EXIT_CONFIG |
skirk-vps | الزامی | محتوای کامل فایل exit.json |
WG_CONFIG |
تمام workflowهای دارای vpn_enabled |
اختیاری | کانفیگ WireGuard (متن کامل) |
⭐⭐⭐ اگر این پروژه برایتان مفید است، لطفاً ستاره بدهید! ⭐⭐⭐