راهنمای استفاده
راهنمای yt-dlp
دانلود از یوتیوب و سایتهای ویدیویی با /ytdl و /ytdlleech؛ انتخاب کیفیت با دکمه، گزینههای yt-dlp، کوکی، پلیلیست و آپلود در یوتیوب.
دو دستور ویدیو و صدا را با کتابخانهٔ yt-dlp از یوتیوب، لینکهای m3u8، شبکههای اجتماعی و هر سایتی که yt-dlp پشتیبانی میکند دانلود میکنند:
| دستور | خروجی |
|---|---|
/ytdl یا /y | میرور (Mirror): دانلود و آپلود در فضای ابری، مثل /mirror |
/ytdlleech یا /yl | لیچ (Leech): دانلود و ارسال فایل در خود تلگرام، مثل /leech |
این دستورها فقط لینک میپذیرند، نه فایل تلگرام. لینک را کنار دستور بنویسید یا روی پیام حاوی لینک ریپلای کنید؛ مثل بقیهٔ دستورها لینک باید قبل از آرگومانها بیاید. اگر مالک DISABLE_YTDLP را فعال کرده باشد، ربات پاسخ میدهد که دانلودهای yt-dlp غیرفعال است.
شروع سریع
/ytdl https://example.com/watch?v=abc123
/ytdlleech https://example.com/watch?v=abc123 -med
ربات اول اطلاعات لینک را میگیرد و بعد دکمههای انتخاب کیفیت را نشان میدهد. تا ۱۲۰ ثانیه فرصت انتخاب دارید؛ بعد از آن پیام Timed Out. Task has been cancelled! میآید و تسک لغو میشود. فقط کسی که دستور را فرستاده میتواند دکمهها را بزند.
انتخاب کیفیت
یک ویدیو
برای هر فرمتی که سایت ارائه میدهد یک دکمه ساخته میشود:
- فرمتهای ویدیویی با نامی مثل
720p30-mp4یا1080p-webm(ارتفاع، نرخ فریم و پسوند). ویدیوی انتخابی با بهترین صدای موجود ترکیب میشود. - فرمتهای فقط صدا با نامی مثل
opus-webm(کدک و پسوند). - اگر یک نام فقط یک گزینه داشته باشد، حجم تقریبی کنار نام نوشته میشود؛ اگر چند بیتریت داشته باشد، با زدن آن زیرمنوی
Choose Bit rateباز میشود.
دکمههای ثابت:
| دکمه | کار |
|---|---|
MP3 | استخراج صدا به mp3 با یکی از بیتریتهای 64K-mp3، 128K-mp3 یا 320K-mp3 |
Audio Formats | استخراج صدا با فرمت aac، alac، flac، m4a، opus، vorbis یا wav و بعد انتخاب کیفیت از 0 (بهترین) تا 10 (بدترین) |
Best Video | بهترین ویدیو با بهترین صدا (bv*+ba/b) |
Best Audio | بهترین صدا (ba/b) |
Cancel | لغو تسک |
پلیلیست
اگر لینک یک پلیلیست باشد، دکمهها کلیترند و روی همهٔ ویدیوها اعمال میشوند: 144-mp4، 144-webm و به همین ترتیب تا 2160-mp4 و 2160-webm (ارتفاع حداکثر و پسوند)، بهعلاوهٔ MP3، Audio Formats، Best Videos، Best Audios و Cancel.
همهٔ ویدیوهای پلیلیست در یک پوشه دانلود میشوند و نام هر فایل از عنوان ویدیو (و شمارهٔ فصل و قسمت، ارتفاع و نرخ فریم اگر باشد) ساخته میشود. ویدیوهایی که دانلودشان خطا بدهد رد میشوند و بقیه ادامه پیدا میکنند. اگر مالک PLAYLIST_LIMIT را تنظیم کرده باشد، پلیلیستهایی که تعداد ویدیوهایشان به این عدد برسد برای کاربرانی که سودو نیستند رد میشوند. توجه کنید که ربات فقط اولین سقفِ تنظیمشدهٔ مربوط به تسک را بررسی میکند؛ اگر YTDLP_LIMIT هم مقدار داشته باشد، PLAYLIST_LIMIT بررسی نمیشود.
رد شدن از دکمهها
اگر در گزینههای yt-dlp (از -opt، تنظیمات شما یا مالک) کلید format تعیین شده باشد، دکمهها نمایش داده نمیشوند و همان فرمت دانلود میشود. برای اینکه با وجود format باز هم دکمهها را ببینید، -s بدهید.
مقدار format میتواند یک رشتهٔ فرمت معمولی yt-dlp باشد (مثل bv*[height<=720]+ba/b)، یا شکل ویژهٔ ba/b-<codec>-<quality> که همان کار دکمههای صوتی را میکند؛ مثلاً ba/b-mp3-320 صدا را با بیتریت ۳۲۰ به mp3 تبدیل میکند.
گزینههای yt-dlp
گزینهها یک دیکشنری پایتون از گزینههای API yt-dlp هستند، نه فلگهای خط فرمان؛ نام همهٔ گزینهها در فایل YoutubeDL.py آمده است.
{"format": "bv*+mergeall[vcodec=none]", "nocheckcertificate": True, "playliststart": 10, "writesubtitles": True, "postprocessor_args": {"ffmpeg": ["-threads", "4"]}, "download_ranges": [{"start_time": 0, "end_time": 10}]}
سه جا میتوانید گزینه بدهید و فقط یکی از آنها استفاده میشود، به این ترتیب:
-optهمین تسک.YT-DLP Optionsدر/usettingبخشYT-DLP Settings.- متغیر
YT_DLP_OPTIONSمالک.
چند نکته:
postprocessorsبه پسپردازندههای خود ربات (افزودن متادیتا و فصلها، تبدیل و جاسازی تامبنیل) اضافه میشود و جایشان را نمیگیرد.- با
download_rangesفقط بخشهای مشخصشدهٔ ویدیو دانلود میشوند و هر بخش فایل جدا میشود. - اگر گزینههایی مثل
writesubtitlesیاwriteinfojsonبدهید که فایلهای جانبی میسازند، خروجی در یک پوشه کنار هم قرار میگیرد. - خط اول راهنمای
/ytdlدر خود ربات هنوز قالب قدیمی-opt x:y|x1:y1را نشان میدهد؛ کد فعلی فقط دیکشنری میپذیرد.
کوکیها و ورود به سایت
برای ویدیوهای محدودشده یا سایتهایی که ورود میخواهند، yt-dlp از فایل کوکی استفاده میکند:
- کوکی شخصی: در
YT-DLP Settingsبا دکمهٔCookie Fileیک فایل کوکی (مثلcookies.txt) بفرستید. - کوکی مالک: فایل
cookies.txtکه مالک از بخشPrivate Filesدر/bsettingبارگذاری کرده است.
اگر کوکی شخصی داشته باشید، از آن استفاده میشود و در غیر این صورت از کوکی مالک. با دکمهٔ Use OWNER Cookie میتوانید حتی با داشتن کوکی شخصی، کوکی مالک را انتخاب کنید (و با Use YOUR Cookie برگردید). ربات فایل .netrc را هم برای ورود به سایتها به yt-dlp میدهد؛ این فایل هم در Private Files مالک قرار دارد.
نام فایل و آرگومانهای دیگر
-n nameنام خروجی را تعیین میکند. پسوند را ننویسید؛ ربات پسوند فایل دانلودشده را خودش اضافه میکند. برای پلیلیست، این نام پوشه است.-zو-z passwordخروجی را zip میکند.-eو-jدر این دستورها وجود ندارند.-i،-bو-mمثل میرور برای چند لینک کار میکنند.- پردازشهای رسانهای (
-ss،-sv،-ca،-cv،-ff،-meta) و تغییر نام با-nsهم پذیرفته میشوند. - در
/ytdlمقصد با-upو-gcتعیین میشود؛ در/ytdlleechهمهٔ آرگومانهای لیچ (-ud،-sp،-doc،-med،-t،-tl،-bt،-utو-hl) کار میکنند. جزئیات در راهنمای میرور و راهنمای لیچ.
در /ytdlleech، اگر تامبنیل شخصی، -t یا چیدمان تامبنیل (-tl یا THUMBNAIL_LAYOUT) نداشته باشید، تامبنیلی که yt-dlp از سایت دانلود میکند روی ویدیو گذاشته میشود. سقف حجم دانلودهای yt-dlp با متغیر YTDLP_LIMIT تعیین میشود و برای سودوها اعمال نمیشود.
آپلود در یوتیوب
/ytdl و /ytdlleech آرگومانی برای آپلود در یوتیوب ندارند. در کد، این قابلیت فقط از طریق آرگومان -yt در دستورهای خانوادهٔ /mirror در دسترس است (که در راهنمای ربات نیامده): فایل تکی بهصورت یک ویدیو و پوشه بهصورت یک پلیلیست تازه آپلود میشود.
برای این کار باید token.pickle شخصی خود را با دسترسیهای یوتیوب در /usetting بارگذاری کرده باشید؛ اسکریپت gen_scripts/gen_token_pickle مخزن این دسترسیها را هم درخواست میکند. توضیحات، برچسبها، دسته و وضعیت انتشار از دکمههای YT Description، YT Tags، YT Category ID و YT Privacy Status در YT-DLP Settings میآیند (پیشفرضها: YT_DESP، YT_TAGS، YT_CATEGORY_ID برابر 22 و YT_PRIVACY_STATUS برابر unlisted).
/mirror https://example.com/clip.mp4 -yt
مثالها
| هدف | دستور |
|---|---|
| انتخاب کیفیت با دکمه و آپلود در مقصد پیشفرض | /ytdl https://example.com/watch?v=abc123 |
| فقط صدا با mp3 ۳۲۰، بدون دکمه | /ytdl https://example.com/watch?v=abc123 -opt {'format': 'ba/b-mp3-320'} |
حداکثر 720p، ارسال در تلگرام بهصورت رسانه | /yl https://example.com/watch?v=abc123 -opt {'format': 'bv*[height<=720]+ba/b'} -med |
دکمهها با وجود format ذخیرهشده | /ytdl https://example.com/watch?v=abc123 -s |
| فقط ویدیوهای ۳ تا ۸ پلیلیست | /ytdlleech https://example.com/playlist?list=xyz -opt {'playliststart': 3, 'playlistend': 8} |
| پلیلیست در یک zip رمزدار در گوگل درایو | /ytdl https://example.com/playlist?list=xyz -z secret -up gd |
| ده ثانیهٔ اول ویدیو | /ytdl https://example.com/watch?v=abc123 -opt {'download_ranges': [{'start_time': 0, 'end_time': 10}]} |
همچنین ببینید
- آرگومانها: بهویژه
-opt،-sو-n - تنظیمات کاربری: بخش
YT-DLP Settings - مرجع متغیرها:
YT_DLP_OPTIONS،YTDLP_LIMITوPLAYLIST_LIMIT