این پروژه از دو module تشکیل شده یک ماژول برای دانلود فیلم از طریق فایل m3u8 که برای اکثر سرور های استریمی که فایل ts اشون رمز نگاری داره کاربرد داره که داخل فایل downloader هست که شما به اون بعنوان ورودی باید آدرس فایل m3u8 ای رو بدید که شامل آدرس فایل های ts هستش
و ماژول بعدی هم برای گرفتن دیتا از سایت نماوا هستش که با گرفتن آیدی فیلم یا یک قسمت از سریال آدرس انواع کیفیت های پخش اون فایل رو بهتون برمیگردونه از طریق متد get_play_info و get_m3u8_urls و البته متد های دیگه هم داره که میتونید داخل کد ببنید که البته برای استفاده از این ماژول باید اشتراک نماوا رو داشته باشید و کوکی های خودتون رو ست کنید
اول از هرچیزی ماژول هارو داخل کد خودتون ایمپورت میکنید و کوکی و هدر خودتون داخل سایت namava رو هم ست کنید توجه داشته باشید که برای دانلود و دسترسی به فایل های m3u8 باید اشتراک خریداری کرده باشید از قبل
و در ادامه کلاینت Namava رو با استفاده از کوکی و هدر instantiate میکنید
from downloader import Downloader
from namava import NamavaClient
cookies = {
}
headers = {
}
client = NamavaClient(cookies=cookies, headers=headers)
و در ادامه آیدی اون مدیایی که میخواید از سایت نماوا دانلود کنید رو تعریف میکنید یا از هر سورسی که میخواید دریافت کنید در ادامه با استفاده از متد get_play_info یکسری اطلاعات راچب اون media داخل سایت نماوا میگیرید از جمله آدرس فایل m3u8 ای که داخلش ادرس فایل های m3u8 با کیفیت های مختلف وجود داره بعد اون آدرس رو میدید به متد get_m3u8_urls و ادرس های مختلف رو با کیفیت های مختلف در قالب یه دیکشنری میگیرید
media_id = 232802
play_info = client.get_play_info(media_id=media_id)
m3u8_urls = client.get_m3u8_urls(master_url=play_info['absolutePath']).values()
بعد با توجه به کیفیتی که میخواید دانلود کنید یکی از اون url های خروجی رو میدید به کلاس Downloader که کارش دانلود فایل های ts رمزنگاری شده هست و منتظر میشینید که فیلمتون دانلود بشه
downloader = Downloader(m3u8_url=tuple(m3u8_urls)[3], uniqe_identifier=media_id)
downloader.main()
توصیه میکننم کد این کلاس رو بخونید تا بفهمید چیکار میکنه