مجموعهای قدرتمند از گردشکارهای گیتهاب برای مدیریت محتوای یوتیوب بدون نیاز به نصب هیچ نرمافزار اضافه.
- معرفی
- امکانات
- ساختار پروژه
- پیشنیازها و تنظیمات اولیه
- راهنمای گامبهگام استفاده از گردشکارها
- بازسازی فایلهای تقسیمشده
- جزئیات فنی
- محدودیتها و نکات مهم
- سوالات متداول
- مشارکت
- مجوز
این پروژه چندین 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 را باز کرده و هر کدام از گردشکارها را اجرا کنید.
- به تب Actions بروید و YouTube Channel Downloader را انتخاب کنید.
- روی دکمه Run workflow کلیک کنید.
- channel_url: آدرس دقیق کانال (مثلاً
https://www.youtube.com/@Google) را وارد کنید. - video_quality: کیفیت دلخواه را انتخاب کنید (از 2160p تا 360p یا بهترین کیفیت).
- اجرا کنید.
✅ نتیجه: تمام ویدیوها در پوشهdownloads/و بر اساس نام پلیلیستها (یاNo Playlist) ذخیره میشوند. ویدیوهای بزرگتر از ۹۵ مگابایت به صورت خودکار به قطعات کوچک تقسیم میشوند.
- گردشکار YouTube Single Video Downloader را از تب Actions انتخاب کنید.
- video_urls: یک یا چند لینک ویدیو را وارد کنید. میتوانید با کاما (
,) یا خط جدید (Enter) جدا کنید. - video_quality: کیفیت دلخواه یا گزینه فقط صدا را انتخاب کنید.
- اجرا کنید.
✅ خروجی در پوشهdownloads/single_videos/قرار میگیرد.
- گردشکار List Channel Videos (Full Playlist Tree) را اجرا کنید.
- فقط آدرس کانال را بدهید.
- پس از پایان، فایلی Markdown در
channel_lists/ساخته میشود. - روی فایل کلیک کنید تا عنوان، لینک قابل کلیک و تصویر کاور هر ویدیو را ببینید.
✨ ویدیوهای Short با برچسب📱(Short)مشخص میشوند.
- گردشکار Search YouTube and List Results را باز کنید.
- search_query: عبارت جستجو (فارسی یا انگلیسی) را وارد کنید.
- max_results: تعداد نتایج دلخواه (حداکثر ۵۰).
- خروجی Markdown در پوشه
search_results/ذخیره میشود و شامل تصویر کاور هر نتیجه است.
- گردشکار Clean Downloads Folder را انتخاب کنید.
- برای تأیید حذف، کلمه
DELETEرا دقیقاً با حروف بزرگ تایپ کنید. - کل پوشه
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 فقط در هنگام اجرا بهروز میشوند. میتوانید آنها را ویرایش کنید و حتی بهعنوان اسناد شخصی استفاده کنید.
۴. آیا این ابزارها با تمام کانالها کار میکنند؟
بله، تا زمانی که کانال عمومی باشد و محتوای آن در دسترس باشد. برای کانالهای دارای محدودیت سنی ممکن است با خطا مواجه شوید.
اگر پیشنهاد، باگ یا قابلیت جدیدی دارید:
- ریپو را Fork کنید.
- یک Branch با نام
feature/YourFeatureبسازید. - تغییرات را Commit کنید.
- یک Pull Request باز کنید.
تمامی مشارکتها باعث بهبود این ابزار خواهد شد.
این پروژه تحت مجوز MIT منتشر شده است. جزئیات در فایل LICENSE موجود است.
توجه: این نرمافزار صرفاً برای اهداف آموزشی و شخصی ارائه میشود. استفاده از آن برای دانلود محتوای دارای حق نشر بدون اجازه صاحب اثر، تخلف از قوانین یوتیوب محسوب میشود.
⭐ اگر این پروژه برایتان مفید بود، لطفاً یک ستاره ⭐ فراموش نکنید! توجه: این نرمافزار صرفاً برای اهداف آموزشی و شخصی ارائه میشود. استفاده از آن برای دانلود محتوای دارای حق نشر بدون اجازه صاحب اثر، تخلف از قوانین یوتیوب محسوب میشود.