خب، خیلی وقتا پیش یک برنامه نوشتم که بهش لینک ویدیو یوتیوب رو میدی و اون رو وارد گوگل درایو میکنه. البته دلیلش هم این بود که بعضی اوقات پیش میومد که میخواستم یک ویدیو از توی یوتیوب رو به دوستام نشون بدم و با این کار فقط لینک گوگل درایو رو براشون میفرستادم. خوبیش اینه که توی Colab نوشته شده و برای دانلود و آپلود ویدیو، هیچ اینترنتی از شما کسر نمیشه!
یکمی گذشت و یک برنامه نوشتم که کل پلی لیست رو دانلود میکرد.
بعد از گذشت مدت زیادی که برگشتم به اسکریپت، دیدم یکسری مشکل هایی با کتابخونه ای که باهاش ویدیو هارو دانلود میکردم (Pytube) به وجود اومده و دیگه کار نمیکنه.
یکمی گشتم و دیدم یک فرد خوبی یک نسخه اصلاح شده از اون رو توی گیتهاب گذاشته و من، از اون استفاده کردم.
چند وقت پیش دوستم ازم خواست لینک برنامه که روی کولب نوشته بودم رو براش بفرستم و متوجه شدیم اون هم کار نمیکنه، فهمیدم طرف کلا برنامه رو از روی گیتهاب برداشته بود.
یکمی سرچ کردم و یک کتابخونه پیدا کردم بنام pytubefix و خب ازش استفاده کردم.
این کتابخونه قابلیت های زیادی داشت مثلا دانلود ویدیو و پلی لیست و کل ویدیو های چنل و دانلود mp3 اونها و...
اما ازونجایی که بیشتر نیازم به دانلود ویدیو بود، اون اسکریپت رو نوشتم. شما اگه میخواهید میتونید به راحتی اونو به دانلود پلی لیست تغییر بدید با توجه به چیزی که توی داکیومنت های گیتهابش گفته.
خب بدون معطلی برم که اسکریپت رو باهاتون به اشتراک بزارم.
!pip install pytubefix
from google.colab import drive
from pytubefix import YouTube
from pytubefix.cli import on_progress
url = input('Enter your youtube url : ')
print()
yt = YouTube(url, on_progress_callback = on_progress)
print(yt.title)
print()
print('Downloading With Max Quality...')
print()
drive.mount('/content/drive')
ys = yt.streams.get_highest_resolution()
ys.download('/content/drive/My Drive/Youtube/')
print() print("Download Completed!")
چند تا نکته:
این اسکریپت برای اجرا روی Colab نوشته شده و با استفاده از این اسکریپت در محیط کولب، اینترنت دانلود و آپلود ویدیو از شما حساب نمیشه.
ممکنه گاهی اوقات یکمی دیرتر آپلود انجام بشه حتی بعد از تموم شدن برنامه که عادیه.
این ویدیو رو با حداکثر کیفیت دانلود میکنه و در فولدر YouTube درایوتون قرار میده.
قبلش یک صفحه براتون باز میشه و ازتون اجازه دسترسی به درایو رو میخواد که باید تایید کنید.
این برنامه، اشتباه وارد کردن لینک را بررسی نمیکند پس اگه لینک اشتباهی بهش بدید برنامه خراب اجرا میشه.
قابل استفاده برای ویدیو های short هم هست.
میتونید یک پروژه کولب بسازید و اونو پابلیک کنید تا همه بتونن ازش استفاده کنن(من این کارو کردم ولی به دلایلی لینک پروژه رو نمیفرستم(اسکریپت ها همینا هستند) ولی شما میتونید اینکارو کنید)
طبیعتا چون روی کولب اجرا میشه هیچ دغده ای جهت روشن کردن ابزار های رفع تحریم ندارید.
آپدیت:
اینم دانلود پلی لیست
!pip install pytubefix
from google.colab import drive
from pytubefix import Playlist
from pytubefix.cli import on_progress
url = input('Enter your PlayList url : ')
print()
pl = Playlist(url)
print(pl.title)
print()
print('Downloading With Max Quality...')
print()
drive.mount('/content/drive')
for video in pl.videos:
ys = video.streams.get_highest_resolution()
ys.download(f'/content/drive/My Drive/Youtube/{pl.title}')
print(f'Downloaded {ys.title}')
print()
print()
print('Download Completed!')
لذت ببرید :)
احتمالا بعدا اگه حال داشتم یکسری تغییرات روی اسکریپت میدم و قابلیت هاشو اضافه میکنم ولی فعلا همین خوبه.
راستی ای کاش ویرگول این قابلیت رو اضافه کنه که تصاویری که در کلیپ برد هستند به راحتی به داخل نوشته پیست بشن.