دانلود فیلم از یوتیوب با PHP

php
تیر 14, 1398
بازدید : 740 بازدید

حتما میدونید که نمیشه از youtube در حالت عادی چیزی دانلود کرد
و اگه بخوایم چیزی دانلود کنیم باید از سایت های استفاده کرد که به ما لینک دانلود ویدیو رو میدن

توی این آموزش میخوام بگم که این جور سایت ها چطوری میان اینکار انجام میدن.
برای اینکار یه لابیری به اسم youtube-dl وجود داره که خیلی قدرتمند هست
و تحت Command-line کار میکنه
لایبری youtube-dl به غیر یوتیوب از کلی سایت دیگه هم پشتیبانی میکنه که میتونید لیست کاملش رو در این لینک ببیند

این لایبری با زبان پایتون نوشته شده و قابل اجرای روی ویندوز،لینوکس،مک و…هست
خبر خوب اینکه اصلا نیازی نیست پایتون بلد باشید و میتونید توی هر زبانی ازش استفاده کنید حتی PHP چون لایبری به صورت Command-line کار میکنه

توی این آموزش من فرض رو بر این میگرم که شما از ویندوز استفاده میکنید
برای شروع وارد این لینک میشم و نسخه مخصوص به ویندوز رو دانلود میکنم
حتما مطمئن بشید که Microsoft Visual C++ 2010 روی سیستم نصب دارید

خب حالا چطوری میشه از یه فایل exe توی PHP استفاده کرد؟

به راحتی با استفاده از تابع shell_exec میشه اینکارو انجام داد
این تابع عملکردش مثل cmd هست
نکته:تابع shell_exec به دلایل امنیتی روی هاست های اشتراکی فعال نیست و باید روی لوکال هاست(زمپ) یا روی هاست های اختصاصی باشید

برخی از دستورات youtube-dl

دانلود کیفیت بالا(حداکثر 720)

youtube-dl -f best https://www.youtube.com/watch?v=Xnuv61SqCYI

دانلود بالاترین کیفیت ممکن
توی یوتیوب فیلم های با کیفیت بالاتر از 720 مثلا 1080 بدون صدا هستن
و صوت و تصویر باید جداگونه دانلود بشن و بعد باهم میکس بشن که این میکس توسط ffmpeg انجام میشه
باید اف‌اف‌امپگ رو هم دانلود کنید و فایلش رو کنار لایبری قرار بدید

youtube-dl -f bestvideo+bestaudio --merge-output-format mp4 https://www.youtube.com/watch?v=Xnuv61SqCYI

لیست بقیه کامنت های که لایبری داره رو میتونید از توی داکیومنتش توی این لینک ببیند

استفاده توی PHP

توجه داشتید باشید که youtube-dl باید فایلش کنار فایل php توی یک دایرکتوری باشه
البته میتونید به صورت Global درش بیارید
برای اینکار باید Path لایبری رو به Windows Environment اضافه کنید

shell_exec("youtube-dl -f best https://www.youtube.com/watch?v=Xnuv61SqCYI");
13
امتیاز :
بدون رای!
دیدگاهتان را بنویسید