کل ویدیو های پلی لیست آپارات رو یه جا دانلود کن!

download video and image and make it offline from social media and save in laptop. make it modern and dark theme with details
download video and image and make it offline from social media and save in laptop. make it modern and dark theme with details

با این کد میتونیم به راحتی تمام ویدیو های یه پلی لیست از آپارات رو با بالاترین کیفیت دانلود کنیم.

چی شد که این رو نوشتم؟

خب امروز نیاز داشتم تمام ویدیو یه پلی لیست از آپارات رو دانلود کنم. از اونجایی که میدونید معمولا میشه تک تک ویدیو هارو دانلود کرد ولی یه پلی لیست رو یکجا نمیشه دانلود کرد. برای همین تعداد ویدیو ها هم زیاد بودن. حالا دو تیپ برخورد میشه با این کار:

  1. افرادی هر ویدوی رو باز میکنن و دانلود میکنن. خب مجبور هم هستن هر بار آگهی ویدیو رو نگاه کنند.
  2. تیپ دوم بیکار میشن و میرن روشی رو پیدا میکنن که خودکار این کار رو انجام بده.

قسمت یک: از کجا شروع کنیم؟

خب ما نیاز داریم کاربر لینک پلی لیست رو به ما بده. ما موضف هستیم اول کل لینک ویدیو های موجود توی اون پلی لیست رو دربیاریم. بعدش میتونیم دانلود کنیم ولی به این راحتی ها نیست!

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

روش دوم اینه خلاقیت به خرج بدیم و یه خرده بگردیم ببینیم چه ریکوئست هایی زده میشه و میشه API لازم رو پیدا کرد یا نه. این روش رو انتخاب میکنیم چون قشنگه!

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

قسمت اول
قسمت اول

خب اگه دقت کنیم، API که کلیه اطلاعات ویدیو های پلی لیست رو میده رو پیدا کردیم:

https://www.aparat.com/api/fa/v1/video/playlist/one/playlist_id/11520789

که به صورت زیر دیتا رو میده بهمون. اینجا دقت کنیم لینک مستقیم ویدیو هارو بهمون نمیده! خب یعنی این روش نشد؟ نه یه خرده خلاقیت به خرج بدیم میتونیم هندل کنیم. اگه به لینک ویدیو ها نگاه کنیم:

لینک مستقیم ویدیو
لینک مستقیم ویدیو

خب این لینک از سه قسمت تشکیل شده. که ساختمانش رو به صورت زیر زیر میتونیم بگیم:

https://www.aparat.com/v/qfd4uj4?playlist=11520789
{https://www.aparat.com/v/}{video_uid}{?playlist=playlist_id}

خب پس ما فقط کافیه uid هر ویدیو رو بگیریم و این لینک مستقیم رو خودمون درست کنیم. بعد همه لینک هارو توی فایل متنی ذخیره میکنیم که بعدا بتونیم دانلود کنیم.

قسمت سه: حالا دانلود رو چیکار کنیم؟

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

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

قسمت سوم
قسمت سوم

بعد چند دیقه تونستیم api رو پیدا کنیم. خب حالا چطور لینک این رو بسازیم؟ دیگه خودتون اوستا شدین مثل قبلی از سه قسمت ساخته شده و ما اون قسمت هارو میسازیم!

https://www.aparat.com/api/fa/v1/video/video/show/videohash/k589r1g?playlist=213323
{https://www.aparat.com/api/fa/v1/video/video/show/videohash/}{video_uid}{?playlist=playlist_id}
قسمت چهارم
قسمت چهارم

خیلی تر و تمیز لینک دانلود هارو با کیفیت های مختلف نشون میشه. کافیه اینارو بگیریم و دانلود کنیم تمام!

قسمت چهار: نهایی چی شد؟

ورودی برنامه از کاربر لینک پلی لیست رو میخواد. بعدش لینک ویدیو هارو میگیره و توی فایل متنی ذخیره میکنه بعد از کاربر میخواد که دانلود کنم یا نه.

خروجی برنامه
خروجی برنامه

البته آپشن های مختلفی میشه براش گذاشت. مثلا کیفیت ویدیو هارو کاربر انتخاب کنه. کاور ویدیو هارو دانلود کنه. ساعت خاصی برای دانلود کردنش انتخاب کنه. به صورت موازی دانلود کنه و ...

قسمت آخر: سورس کد

باز طبق همیشه به صورت عکس میزارم بعدا خوشگل ترش میکنم :)

سورس کد برنامه
سورس کد برنامه

طبق معمول کد هارو میزارم توی github, gist و اگه دوست داشتین میتونید استفاده کنید و حتی فالو کنید :)

این کد رو برای راحتی کارم نوشتم و گفتم شاید به درد افراد دیگه هم بخوره.


پیام بازرگانی🎥: زندگی آدما رو از رو ظاهر قضاوت نکن. خیلیا از تو افسرده ان از بیرون شاد. خیلیا از تو شادن از بیرون افسرده...