فکر نمی‌کنم لازم باشه راجع به این که وضع اینترنت تو ایران چقدر داغون هست، توضیح بدم.

یکی از مشکلات اینترنت ما اینه که همه جا اینترنت پایدار نداریم. از طرفی یوتیوب هم فیلتره و خیلی وقت‌ها مشاهده فیلم بصورت منظم ازش خیلی سخته.

برای همین قضیه من روشی برای دانلود از پلی‌لیست‌های یوتیوب استفاده می‌کنم که گفتم به اشتراک بگذارم. البته اگر به قندشکن خوب دسترسی دارید اصلا درگیر این قضایا نشید. خیلی ساده با کتابخانه PyTube کارتون رو راه بندازید. استفاده ازش هم به شدت ساده است.

اول نصبش می‌کنید:

pip install pytube

بعد آدرس پلی‌لیست یا ویدئو یوتیوب رو کپی کنید و اینطوری دانلود کنید:

pytube your-youtube-url

ولی اگر قندشکن‌تون خوب نیست، همراه من باشید!

کولب چیه؟

اولین قدم آشنایی با گوگل کولب هست. گوگل Colaboratory که به اختصار بهش کولب می‌گیم یه سرویس هست که گوگل ارائه میده و معمولا Data Scientistها یا AI Researcherها ازش به عنوان یه محیط برای اجرا گرفتن اولیه از کدهاشون استفاده می‌کنند.

معمولا کارهایی که تو این محیط انجام میشن بیشتر حالت سعی و خطا دارند و معمولا کسی که تحقیق می‌کنه ابزار اصلی‌اش Colab نیست (یا حداقل نباید باشه). ابزار اصلی سروری هست که آزمایشگاه یا اون موسسه‌ای که داخلش کار می‌کنه بهش میدن.

ولی خب خیلی از دانشگاه‌ها و موسسات تو ایران اصلا سرور ندارند. بودجه تهیه‌اش رو هم ندارند. این میشه که ابزار اصلی خیلی از بچه‌ها (حتی تو شریف) همین کولب میشه.

هدف من در اینجا اینه که بگم چطوری میشه از این ابزار استفاده کنیم برای این که پلی‌لیست‌های یوتیوب رو دانلود کنیم. سپس اون رو به کمک کولب به گوگل‌ درایو منتقل کنیم. بعد از اون به سادگی با اینترنت معمولی دانلود کنیم و روی گوشی بریزیم.

روش دانلود

اجرای فایل سخت نیست. کافیه که به یکی از لینک‌های زیر برید و Open in colab رو انتخاب کنید.

بعد از اون برای اجرا و تغییر دادن فایل نوت‌بوک، Copy to Drive را انتخاب کنید.

همه کدهایی که اینجا توضیح میدم داخل فایل نوت‌بوک هم هست. صرفا جاهایی که لازمه تغییر بدید رو تغییر بدید و بذارید اجرا بشه.

آدرس یوتیوب رو داخل سلولی که شبیه زیر لینک یوتیوب داره، ویرایش کنید و بگذارید دانلود بشه.

!pytube https://www.youtube.com/playlist?list=PLLHTzKZzVU9e6xUfG10TkTWApKSZCzuBI

با این روش با اینترنت خود گوگل، از یوتیوب (که باز مال خود گوگل هست) دانلود می‌کنیم.

بعد از اون فایل‌ها داخل یک فولدر (به نام پلی‌لیست خودتون) ذخیره میشن. کافیه که اونها رو Zip کنیم و به گوگل درایو منتقل کنیم. سپس به راحتی از داخل گوگل درایو قابل دانلود هستند.

با استفاده از دستور زیر می‌تونیم نگاه کنیم که فایل‌هامون در چه فولدری ذخیره شده:

!ls -lh

برای زیپ‌کردن داده کافیه که از دستور زیر استفاده کنید. فقط اسم فولدر رو متناسب خروجی مرحله قبل ویرایش کنید. با این دستور اطلاعات فولدر NYU Deep Learning SP21 داخل فایل NYU.zip ذخیره میشن.

!zip -r NYU.zip 'NYU Deep Learning SP21'

نهایتا هم با این دستور به کولب اجازه می‌دید که به گوگل درایو وصل بشه!

from google.colab import drive
drive.mount('/content/drive')

با این دستور هم فایل زیپ‌شده رو به فولدر اصلی گوگل درایو منتقل می‌کنیم.

!cp NYU.zip /content/drive/MyDrive

فقط قبلش چک کنید گوگل درایو‌تون به اون اندازه فضا داشته باشه. اگر فضا نداشتید یک اکانت دیگه بسازید.

پلی‌لیست NYU یه پلی‌لیست کاملا نرمال هست و همه فایل‌ها باهاش به سادگی دانلود میشن. احتمالا پلی‌لیست‌های شما هم مشابه همین هست و با همین روش دانلود میشه.

ولی بعضی پلی‌لیست‌ها مثل دوره یادگیری عمیق مازیار رئیسی خیلی بزرگ هستند (تقریبا ۵۰۰ تا ویدئو). این پلی‌لیست‌ها رو نمیشه تو یه Session کولب دانلود کرد و باید مثلا به سه قسمت تقریبا مساوی تقسیم کنید و هر قسمت رو یک Session جداگانه دانلود کنید.

به شخصه دو تا استفاده از این روش می‌کنم.

  • بعضی وقت ها کورس های بلندمدت‌تر رو دانلود می‌کنم که بتونم سرعت‌شون رو مطابق سلیقه‌ام تنظیم کنم و گم نکنم که کجا بودم.
  • بعضی کورس ها هم هستند که آدم دانلود می‌کنه هر وقت بیکار شد چیز برای دیدن و مطالعه کردن داشته باشه.