Skip to content

erfanyous/yt_cownloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 

Repository files navigation

🎬 yt_cownloader (Actions گیت‌هاب)

مجموعه‌ای قدرتمند از گردش‌کارهای گیت‌هاب برای مدیریت محتوای یوتیوب بدون نیاز به نصب هیچ نرم‌افزار اضافه.

GitHub Actions License: MIT Platform


📑 فهرست


معرفی

این پروژه چندین GitHub Action را شامل می‌شود که به شما امکان می‌دهد:

  • کل یک کانال یوتیوب را با ساختار پلی‌لیست‌هایش دانلود کنید.
  • تنها یک یا چند ویدیوی خاص را (با کیفیت دلخواه یا فقط صدا) دریافت کنید.
  • فهرست تمام ویدیوهای یک کانال را به‌همراه لینک و تصویر کاور به‌صورت یک فایل Markdown ببینید.
  • در یوتیوب جستجو کنید و نتایج را با تصاویرشان ذخیره کنید.
  • به‌راحتی تمام فایل‌های دانلودشده را از ریپازیتوری حذف کنید.

همه چیز در فضای ابری گیت‌هاب اجرا می‌شود و خروجی‌ها مستقیماً روی ریپازیتوری شما ذخیره می‌شوند. دیگر نیازی به نصب yt-dlp یا ffmpeg روی سیستم شخصی ندارید.


امکانات

گردش‌کار توضیح
Download Channel دانلود تمام ویدیوهای یک کانال با تفکیک پلی‌لیست
Download Single Videos دانلود یک یا چند ویدیو با لینک دلخواه
List Channel Videos فهرست کردن ویدیوهای کانال با عنوان، لینک، و تصویر کاور
Search YouTube جستجوی عبارت دلخواه و ذخیره نتایج به‌همراه کاور
Clean Downloads حذف کامل پوشه downloads با تأیید کلمه عبور

ساختار پروژه

. ├── .github/workflows/ │ ├── download-channel.yml ← دانلود کل کانال │ ├── download-single-videos.yml ← دانلود تکی │ ├── list-channel-videos.yml ← فهرست‌برداری با تصویر │ ├── search-youtube.yml ← جستجوی یوتیوب │ └── clean-downloads.yml ← پاکسازی ├── downloads/ (ساخته می‌شود) ویدیوهای دانلودی │ ├── Playlist_Name/ │ │ ├── video.mp4 │ │ └── size (فایل‌های حجیم به قطعات .part00 و ... تقسیم می‌شوند) │ └── single_videos/ ├── channel_lists/ (فایل‌های Markdown فهرست کانال‌ها) └── search_results/ (فایل‌های Markdown نتایج جستجو)


پیش‌نیازها و تنظیمات اولیه

۱. یک ریپازیتوری گیت‌هاب بسازید یا از پروژه موجود Fork بگیرید.
۲. به Settings → Actions → General بروید و مجوز Workflow permissions را روی Read and write قرار دهید.
۳. مطمئن شوید گزینه Allow GitHub Actions to create and approve pull requests فعال باشد.
۴. تمام فایل‌های .yml را در مسیر .github/workflows/ قرار دهید.

همین! حالا تب Actions را باز کرده و هر کدام از گردش‌کارها را اجرا کنید.


راهنمای گام‌به‌گام استفاده از گردش‌کارها

۱. دانلود تمام ویدیوهای یک کانال

  1. به تب Actions بروید و YouTube Channel Downloader را انتخاب کنید.
  2. روی دکمه Run workflow کلیک کنید.
  3. channel_url: آدرس دقیق کانال (مثلاً https://www.youtube.com/@Google) را وارد کنید.
  4. video_quality: کیفیت دلخواه را انتخاب کنید (از 2160p تا 360p یا بهترین کیفیت).
  5. اجرا کنید.
    نتیجه: تمام ویدیوها در پوشه downloads/ و بر اساس نام پلی‌لیست‌ها (یا No Playlist) ذخیره می‌شوند. ویدیوهای بزرگتر از ۹۵ مگابایت به صورت خودکار به قطعات کوچک تقسیم می‌شوند.

۲. دانلود تکی ویدیوها

  1. گردش‌کار YouTube Single Video Downloader را از تب Actions انتخاب کنید.
  2. video_urls: یک یا چند لینک ویدیو را وارد کنید. می‌توانید با کاما (,) یا خط جدید (Enter) جدا کنید.
  3. video_quality: کیفیت دلخواه یا گزینه فقط صدا را انتخاب کنید.
  4. اجرا کنید.
    ✅ خروجی در پوشه downloads/single_videos/ قرار می‌گیرد.

۳. فهرست ویدیوهای کانال (همراه با تصویر کاور)

  1. گردش‌کار List Channel Videos (Full Playlist Tree) را اجرا کنید.
  2. فقط آدرس کانال را بدهید.
  3. پس از پایان، فایلی Markdown در channel_lists/ ساخته می‌شود.
  4. روی فایل کلیک کنید تا عنوان، لینک قابل کلیک و تصویر کاور هر ویدیو را ببینید.
    ✨ ویدیوهای Short با برچسب 📱(Short) مشخص می‌شوند.

۴. جستجوی یوتیوب و دریافت نتایج

  1. گردش‌کار Search YouTube and List Results را باز کنید.
  2. search_query: عبارت جستجو (فارسی یا انگلیسی) را وارد کنید.
  3. max_results: تعداد نتایج دلخواه (حداکثر ۵۰).
  4. خروجی Markdown در پوشه search_results/ ذخیره می‌شود و شامل تصویر کاور هر نتیجه است.

۵. پاکسازی پوشه دانلودها

  1. گردش‌کار Clean Downloads Folder را انتخاب کنید.
  2. برای تأیید حذف، کلمه DELETE را دقیقاً با حروف بزرگ تایپ کنید.
  3. کل پوشه downloads از ریپازیتوری حذف و تغییرات commit می‌شود.

بازسازی فایل‌های تقسیم‌شده

اگر ویدیویی بزرگ‌تر از ۹۵ مگابایت بود، به قطعاتی با نام video.mp4.part00, video.mp4.part01 و ... تقسیم می‌شود. برای بازسازی فایل اصلی:

  • لینوکس / macOS / WSL:
    cat video.mp4.part* > video.mp4
    ویندوز (Command Prompt):
    copy /b video.mp4.part* video.mp4
    ویندوز (PowerShell):
    Get-Content video.mp4.part* -Raw | Set-Content video.mp4
    فایل نهایی دقیقاً همان ویدیوی اصلی خواهد بود.
    ## جزئیات فنی
  • دانلود غیرمستقیم: برای عبور از چالش‌های امنیتی یوتیوب، از یک API واسط استفاده می‌شود. بنابراین خطاهای «Sign in to confirm you’re not a bot» را نخواهید دید.
  • نصب خودکار وابستگی‌ها: در هر اجرا، آخرین نسخه yt-dlp، موتور جاوااسکریپت Deno و کتابخانه yt-dlp-ejs نصب می‌شوند.
  • مقاومت در برابر خطا: اگر یوتیوب پاسخ ندهد، گردش‌کار متوقف نمی‌شود؛ فایل خروجی با پیام مناسب ساخته می‌شود.
  • محدودیت حجم فایل: گیت‌هاب اجازه commit فایل‌های بزرگتر از ۱۰۰MB را نمی‌دهد. به‌همین دلیل فایل‌های بیش از ۹۵MB به‌طور خودکار تقسیم می‌شوند.
  • شناسایی ویدیوهای Short: در فهرست‌ها و جستجو، ویدیوهایی که طول آن‌ها ≤ ۶۰ ثانیه است، با 📱(Short) علامت‌گذاری می‌شوند.

محدودیت‌ها و نکات مهم

  • حجم کل ریپو: گیت‌هاب برای ریپوهای عمومی تا ۱۰۰GB فضا می‌دهد، اما بهتر است حجم ریپو زیر ۱-۲GB باشد تا clone سریع بماند.
  • مدت زمان اجرا: اجرای گردش‌کارها روی سرورهای گیت‌هاب حداکثر ۶ ساعت زمان دارد. برای کانال‌های بسیار بزرگ ممکن است نیاز به اجرای چندباره باشد.
  • حریم خصوصی: این ابزار برای استفاده شخصی و آموزشی طراحی شده. لطفاً قوانین کپی‌رایت یوتیوب را رعایت کنید.
  • وابستگی به API واسط: در صورت از کار افتادن API واسط، ممکن است دانلود با خطا مواجه شود. (می‌توانید API جایگزین تنظیم کنید.)

سوالات متداول

۱. آیا می‌توانم فقط ویدیوهای جدید یک کانال را دانلود کنم؟
بله، کافیست گردش‌کار دانلود کانال را دوباره اجرا کنید. فایل downloaded.txt به‌طور خودکار ویدیوهای قبلی را رد می‌کند و فقط موارد جدید را دریافت می‌کند.

۲. چرا بعضی ویدیوها خیلی کوچک هستند یا کیفیت پایینی دارند؟
کیفیت نهایی وابسته به API واسط و دسترسی به سرورهای یوتیوب است. سعی کنید کیفیت «بهترین» را انتخاب کنید.

۳. چگونه می‌توانم یک فایل README شخصی برای خودم نگه دارم؟
فایل‌های channel_lists/*.md و search_results/*.md فقط در هنگام اجرا به‌روز می‌شوند. می‌توانید آن‌ها را ویرایش کنید و حتی به‌عنوان اسناد شخصی استفاده کنید.

۴. آیا این ابزارها با تمام کانال‌ها کار می‌کنند؟
بله، تا زمانی که کانال عمومی باشد و محتوای آن در دسترس باشد. برای کانال‌های دارای محدودیت سنی ممکن است با خطا مواجه شوید.


مشارکت

اگر پیشنهاد، باگ یا قابلیت جدیدی دارید:

  1. ریپو را Fork کنید.
  2. یک Branch با نام feature/YourFeature بسازید.
  3. تغییرات را Commit کنید.
  4. یک Pull Request باز کنید.

تمامی مشارکت‌ها باعث بهبود این ابزار خواهد شد.


مجوز

این پروژه تحت مجوز MIT منتشر شده است. جزئیات در فایل LICENSE موجود است.

توجه: این نرم‌افزار صرفاً برای اهداف آموزشی و شخصی ارائه می‌شود. استفاده از آن برای دانلود محتوای دارای حق نشر بدون اجازه صاحب اثر، تخلف از قوانین یوتیوب محسوب می‌شود.


⭐ اگر این پروژه برایتان مفید بود، لطفاً یک ستاره ⭐ فراموش نکنید! توجه: این نرم‌افزار صرفاً برای اهداف آموزشی و شخصی ارائه می‌شود. استفاده از آن برای دانلود محتوای دارای حق نشر بدون اجازه صاحب اثر، تخلف از قوانین یوتیوب محسوب می‌شود.

About

yt tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors