خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

این ابزار yt-dlp را از یک دستور ترمینالی به یک پخش‌کننده دلپذیر تبدیل می‌کند

نمای ترمینال هنگام دریافت و اجرای کانتینر Docker برای YT-DLP Web Player.
YT-DLP Web Player قدرت yt-dlp را پشت یک رابط وب خودمیزبان می‌گذارد؛ با Docker راه‌اندازی می‌شود، ویدیوها را پخش یا دانلود می‌کند و بدون حذف نیاز به احتیاط حقوقی، کار با yt-dlp را ساده‌تر می‌سازد.

yt-dlp از آن ابزارهایی است که وقتی درست از آن استفاده کنید، خیلی از دانلودرهای پرزرق‌وبرق کنار می‌روند؛ اما تجربه روزمره‌اش هنوز با ترمینال شروع می‌شود. باید گزینه‌ها را به خاطر داشته باشید، سراغ دستورهای قبلی بروید یا به تنظیمات پیش‌فرض رضایت بدهید. برای کسی که فقط می‌خواهد یک ویدیو را پخش کند، این شروع همیشه خوشایند نیست.

نمای ترمینال هنگام دریافت و اجرای کانتینر Docker برای YT-DLP Web Player.

YT-DLP Web Player دقیقاً همین فاصله را هدف می‌گیرد. این پروژه قرار نیست قدرت مخفی تازه‌ای به yt-dlp اضافه کند؛ بلکه موتور آن را پشت یک صفحه وب و یک پخش‌کننده آشنا می‌گذارد تا کارهای رایج، از پخش گرفته تا دانلود و انتخاب کیفیت، کمتر شبیه یادآوری دستورهای ترمینال باشند.

خروجی ترمینال با لاگ‌های راه‌اندازی سرویس YT-DLP Web Player.

با Docker تقریباً همه چیز در یک دستور جمع می‌شود

اول باید تکلیف نام پروژه را روشن کرد: YT-DLP Web Player نسخه رسمی، فورک یا حالت گرافیکی داخلی yt-dlp نیست. این یک برنامه خودمیزبان جداگانه از توسعه‌دهنده‌ای با نام Matszwe02 است. در پشت صحنه از yt-dlp برای استخراج رسانه، از Video.js برای پخش، و در صورت نیاز از FFmpeg و تبدیل HLS استفاده می‌کند تا مرورگر بتواند محتوایی را که مستقیم پخش نمی‌شود اجرا کند.

ساده‌ترین مسیر راه‌اندازی، مخصوصاً روی ویندوز، نصب Docker Desktop و اجرای کانتینر آماده است. بعد از بالا آمدن Docker، کافی است ترمینال را باز کنید و این دستور را بزنید:

docker run -p 5000:5000 matszwe02/ytdlp_web_player:stable

این دستور تصویر پایدار پروژه را دریافت می‌کند، کانتینر را اجرا می‌کند و پورت ۵۰۰۰ داخل کانتینر را به همان پورت روی سیستم شما وصل می‌کند. بعد از آن، رابط وب از طریق http://localhost:5000 در دسترس است؛ صفحه‌ای محلی که ورودی و پخش را نشان می‌دهد و کانتینر در پس‌زمینه استخراج و آماده‌سازی رسانه را انجام می‌دهد. تگ latest هم وجود دارد، اما ماهیت آزمایشی‌تری دارد و برای استفاده روزمره معمولاً همان stable منطقی‌تر است.

اگر کنترل بیشتری می‌خواهید، مسیر نصب Python هم در دسترس است؛ اما قطعات بیشتری دارد. باید فایل example.env را به .env تبدیل کنید، داخل پوشه src محیط مجازی بسازید، وابستگی‌های requirements.txt را نصب کنید و سپس main.py را اجرا کنید. پروژه می‌تواند در نبود بعضی وابستگی‌ها مثل FFmpeg، Node.js یا Deno برای نصبشان کمک کند؛ این وابستگی‌ها تزئینی نیستند، چون نسخه‌های جدید yt-dlp برای عملکرد کامل به FFmpeg، اجرای JavaScript و ابزارهای مرتبط نیاز جدی دارند.

مطلب مرتبط:   10 روشی که فناوری می تواند به کندی زندگی کمک کند
داشبورد Docker Desktop که کانتینر در حال اجرای YT-DLP Web Player را نشان می‌دهد.

جایی که ترمینال بالاخره دکمه Play پیدا می‌کند

صفحه اصلی برنامه کار اصلی را پنهان نمی‌کند: می‌توانید یک URL پشتیبانی‌شده را بچسبانید، عبارت جست‌وجو وارد کنید یا وقتی لینکی در کلیپ‌بورد دارید، در کادر خالی Enter بزنید تا همان لینک استفاده شود. همین میان‌بر کوچک تجربه را عوض می‌کند؛ کاری که قبلاً با باز کردن ترمینال و نوشتن دستور yt-dlp شروع می‌شد، حالا به «کپی، Enter، پخش» نزدیک می‌شود.

خود پخش‌کننده هم آشناست، اما توانایی‌های مهم yt-dlp را پنهان نمی‌کند. کنترل پخش، صدا، جابه‌جایی در ویدیو، حالت تصویر در تصویر، تمام‌صفحه و بزرگ‌نمایی در جای قابل انتظار قرار دارند. منوی تنظیمات امکانات بیشتری مثل انتخاب رزولوشن، زیرنویس، سرعت پخش، دانلود مستقیم، حالت تکرار و حتی تقویت صدا را اضافه می‌کند. ویدیوهای عمودی هم به نسبت تصویر طبیعی‌تری می‌رسند و مجبور نیستید همیشه با قاب عریض و نوارهای سیاه کنار بیایید.

مسیر پخش چندلایه طراحی شده است. وقتی منبع و قالب رسانه اجازه بدهند، ویدیو مستقیم در مرورگر پخش می‌شود. اگر این مسیر جواب ندهد، برنامه سراغ تبدیل HLS با FFmpeg می‌رود. در نهایت هم ممکن است بخشی از رسانه پیش از شروع پخش دانلود شود. توسعه‌دهنده برای بسیاری از ویدیوهای معمولی زمان بارگذاری حدود سه تا چهار ثانیه را تخمین می‌زند، اما این عدد قطعی نیست؛ سایت منبع، قالب فایل، سرعت شبکه و نیاز یا عدم نیاز به transcoding همگی روی انتظار شما اثر می‌گذارند.

نمای لاگ‌های کانتینر در Docker Desktop برای سرویس YT-DLP Web Player.

قابلیت‌های جذاب، اما هنوز با تنظیمات دستی

پشتیبانی از SponsorBlock داخل پروژه وجود دارد؛ بخش‌های علامت‌گذاری‌شده روی خط زمان دیده می‌شوند و می‌توان آن‌ها را دستی رد کرد. این قابلیت تبلیغات معمولی تحویل‌شده از سمت سرور را حذف نمی‌کند و پرش خودکار هم به شکل پیش‌فرض برای همه دسته‌ها خاموش است. برای فعال‌سازی باید سراغ تنظیمات پروژه بروید و مثلاً در فایل .env چنین مقداری بگذارید:

AUTOSKIP_SB_SEGMENTS="sponsor,intro,outro"

مصورساز موسیقی هم همین منطق را دارد. تا وقتی AUDIO_VISUALIZER=true را به تنظیمات اضافه نکنید فعال نمی‌شود و رنگ پوسته را هم می‌توان با مقداری مثل THEME_COLOR=”#ff7300″ تغییر داد. این گزینه‌ها هنوز پشت صحنه‌اند، نه در یک پنل تنظیمات کاربرپسند؛ بنابراین طبیعی است که شخصی‌سازی رابط کاربری هنوز در نقشه راه پروژه دیده شود.

مطلب مرتبط:   ایجاد یک پروژه TypeScript از ابتدا

اگر کانتینر را با دستور مستقیم docker run اجرا می‌کنید، دو راه ساده برای اعمال این تنظیمات دارید. روش اول تزریق متغیرها با گزینه -e است:

docker run -p 5000:5000 -e AUTOSKIP_SB_SEGMENTS="["sponsor","intro"]" -e AUDIO_VISUALIZER=true matszwe02/ytdlp_web_player:stable

روش دوم ساخت یک فایل .env روی سیستم میزبان و معرفی آن به Docker است؛ مثلاً پوشه‌ای مثل C:\ytdlp-player بسازید، فایل متنی با نام دقیق .env داخل آن قرار دهید و سپس کانتینر را با گزینه زیر اجرا کنید:

docker run -p 5000:5000 --env-file="C:\ytdlp-player\.env" matszwe02/ytdlp_web_player:stable

پروژه از Media Session API برای کنترل‌های سیستمی پخش استفاده می‌کند و در مرورگرهای سازگار می‌تواند مثل یک PWA نصب شود. افزونه مرورگر هم تجربه را کامل‌تر می‌کند: در Chrome Web Store و Firefox Add-ons در دسترس است، گزینه Open in YT-DLP Player را به منوی راست‌کلیک اضافه می‌کند و حتی می‌تواند پخش‌کننده بومی بعضی سایت‌ها را با نمونه متصل به سرویس خودمیزبان شما جایگزین کند.

همین بخش آخر نیازمند احتیاط است. جایگزینی پخش‌کننده معمولاً یعنی افزونه باید player سایت را غیرفعال کند و یک iframe متصل به نمونه محلی شما وارد صفحه کند. بنابراین بهتر است آن را فقط برای سایت‌هایی فعال کنید که واقعاً به آن نیاز دارید. مجوزهایی مثل دسترسی به تب‌ها و داده‌های وب‌سایت‌ها برای چنین افزونه‌ای قابل توضیح است، اما یادآوری می‌کند که نباید هر افزونه مرورگری را بی‌قید و شرط به همه سایت‌ها راه داد.

رابط وب YT-DLP Player در مرورگر برای پخش و مدیریت ویدیو.

محدودیت‌ها را نباید نادیده گرفت

YT-DLP Web Player هم قدرت yt-dlp را به ارث می‌برد و هم دردسرهایش را. اگر یک سایت ساختار پخش یا محدودیت‌هایش را تغییر دهد، ممکن است استخراج رسانه موقتاً از کار بیفتد. به‌روزرسانی‌های روزانه yt-dlp کمک می‌کنند، اما تضمین نمی‌کنند که همه extractorها همیشه بی‌وقفه کار کنند.

مطلب مرتبط:   نحوه ایجاد نمودار آبشاری در اکسل

فقط رسانه‌هایی قابل استفاده‌اند که خود yt-dlp از آن‌ها پشتیبانی کند. تغییر بی‌وقفه کیفیت هنوز در برنامه‌های آینده است، و برای رفتار قابل اعتمادتر PWA، embedding و افزونه ممکن است به HTTPS نیاز داشته باشید. کوکی‌های احراز هویت هم حساس‌اند؛ چون در عمل می‌توانند مثل اعتبار حساب شما عمل کنند. اگر حسابی برایتان مهم است، نباید فایل کوکی آن را بی‌فکر وارد چنین ابزارهایی کنید.

نکته مهم‌تر این است که ابزارهایی مثل yt-dlp یا رابط‌های وب آن مجوز حقوقی تولید نمی‌کنند. اینکه پخش یا دانلود یک محتوا مجاز است یا نه، به خود محتوا، قوانین سرویس، حق نشر و مجوزی که شما دارید بستگی دارد. استفاده مسئولانه از این پروژه، بخشی از ارزش واقعی آن است.

جمع‌بندی: مغز yt-dlp، با چهره‌ای قابل استفاده‌تر

YT-DLP Web Player برای کاربری مناسب است که قدرت yt-dlp را می‌خواهد، اما نمی‌خواهد هر بار برای پخش یا دانلود ساده، از خط فرمان شروع کند. هنوز کمی راه‌اندازی، نگهداری و صبر در برابر تغییرات سایت‌ها لازم دارد؛ اما وقتی کانتینر بالا آمد، بخش زیادی از پیچیدگی پشت یک رابط وب تمیز پنهان می‌شود.

نتیجه این است که همان موتور قدرتمند و انعطاف‌پذیر yt-dlp را نگه می‌دارید، ولی با تجربه‌ای که برای استفاده روزمره خوشایندتر است: لینک را می‌چسبانید، پخش می‌کنید، در صورت نیاز دانلود می‌کنید و فقط زمانی سراغ تنظیمات عمیق‌تر می‌روید که واقعاً لازم باشد.

منبع: این مطلب یک بومی‌سازی و بازنویسی تحریریه‌ای بر اساس مقاله‌ای از MakeUseOf است: مشاهده مقاله اصلی.