Github: @EhsanShahbazii - Telegram: @ehsandevv
کست باکس دانلودر شیک و مجلسی!
توضیح علت نوشتن اسکریپت
چند سالیه که برای گوش دادن به پادکست و کتاب صوتی، از اپلیکیشن کست باکس (castbox) استفاده میکنم. گاهی وقتا نیاز بود فایلی رو دانلود کنم و به موزیک پلیر یا فلش بزنم و تو ماشین یا جایی که دسترسی بهش ندارم گوش کنم ولی این امکان وجود نداشت. یه راه دیگه بود که تو گوشی های اندرویدی میشد از داخل برنامه فایل هارو دانلود کرد بعد از پوشه برنامه پیداشون کرد.
برای دانلود فایل از کست باکس، مثل اپلیکیشن های اسپاتیفای، ساوندکلاد و بقیه که دانلودر و api دارن، این نداشت. برای همین سخت بود دانلود کرد فایل از اون. برای همون دیگه گفتم بشینم تلاش کنم ببینم چطوری میتونم براش دانلودر بنویسم. برای همین نتیجه این اسکریپت در اومد.
توضیح کلی اسکریپت
چون api و کد خاصی وجود نداشت مجبور به نوشتن و تکیه به خود کردیم. ورودی لینک اپیزود یا فایل صوتی که میخواین دانلود کنید رو میگیره. بعد ازتون یه timeout میگیره که چقدر صبر کنه تا فایل لود بشه. این بستگی به وضعیت اینترنتتون داره. اگه اینترنتتون مشکلی نداره default میشه و اگه لینک دادین و دانلود نشد میتونید عدد رو بیشتر کنید.
به طور مثال میخوایم یه فایل موسیقی رو از یه کانال کست باکس دانلود کنیم:
یه قطعه موسیقی رو از sleep token که انرژی میده میخوایم دانلود کنیم. لینک رو از گوشی یا از سایت کپی میکنیم و به برنامه میدیم. (کاور آهنگ ها هم خیلی خوشگلن، برای همین اونارو هم نوشتم دانلود کنه)
بعدش فایل صوتی رو با بالاترین کیفیت و کاور آهنگ رو دانلود میکنه:
خواستم توضیح بدم که چطوری دانلود کردم و دسترسی به فایل هارو پیدا کردم ولی حوصله اش رو ندارم. در آینده اگه وقت و حوصله پیدا کردم حتما ادیت میکنم و مینویسم.
دوباره بگم همه این اسکریپت ها مصرف شخصی بوده و برای همین کلا یه بار نوشتم و برنگشتم بهینه دوباره یا دیباگ عمیق کنم. البته باز امکانات خیلی زیادی میشه اضافه کرد مثل دانلود کلیه فایل های یه کانال، پادکست و ... یا دانلود تایم دار، لیست کامنت ها، اطلاعات کامل یه کانال، کاربر و ... ولی خب دیدم در این زمان به اینا نیاز ندارم ننوشتم.
نمای کلی از سورس کد
در آینده وقت کنم براش ربات تلگرام مینویسم که استفاده عمومی بشه چون توی این دو سال که چند تا چنل داشتم و آهنگ هارو میزاشتم خیلی از دوستان پرسیده بودن چطوری میتونیم دانلود کنیم.
سورس کد رو میتونی توی github پیدا کنی :)
مطلبی دیگر از این انتشارات
شی گرایی قسمت اول (چهار اصل شی گرایی در جاواسکریپت)
مطلبی دیگر از این انتشارات
محیط های برنامه نویسی پایتون + راهنمایی انتخاب
مطلبی دیگر از این انتشارات
پوسته زی(zsh) چیست؟ + alias ها