محاسبه مدت زمان ویدیو ها با یه دکمه!

python script for calcuating the durations of videos from directory in os. make it dark mode and modern
python script for calcuating the durations of videos from directory in os. make it dark mode and modern

توضیح دلیل نوشتن اسکریپت

خب مدت ها بود وقتی میخواستم ببینم کل یه سریال/پلی لیست ویدیو چند ساعت هست، همش رو یه پوشه میریختم بعد راست کلیک و ...

ولی وقتی چند تا پوشه بود دوباره همین کار رباتی و تکراری رو انجام میدادم. سرانجام امروز من با هفده پوشه مواجه شدم با بیش از پنجاه گیگ ویدیو. به خودم گفتم همون کار تکراری رو انجام بدم اسکلم :)

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

راستی من نگشتم ببینم همچین امکانی توی سیستم عامل وجود داره یا نه!

توضیح کلی اسکریپت

ورودی اسکریپت: آدرس محلی که قراره جستجو کنه + فرمت هایی که باید جستجو کنه

ورودی برنامه
ورودی برنامه

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

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

توضیح با جزئیات بیشتر:

خب ترجیح دادم با پایتون بنویسم چون برام راحت تره. سه مدل میتونیم پیاده سازی کنیم. اولی به صورت عادی و بدون استفاده از Thread (نخ) که خیلی وقت میگیره. دومی با خود threading توی پایتون و سومی هم با concurrent (همزمانی) که دومی و سومی خیلی تفاوت آنچنانی نداشتن ولی تا اونجایی که آزمایش کردم مدل threading بهتر عمل کرد.

اطلاعات پوشه مورد نظر و حجم فایل ها:

اطلاعات و حجم ویدیو ها
اطلاعات و حجم ویدیو ها

خروجی پوشه و زیر پوشه هدف:

اسامی پوشه ها و زیرپوشه های حذف
اسامی پوشه ها و زیرپوشه های حذف

جزئیات خروجی توی مدل threading:

خروجی برای مدل threading
خروجی برای مدل threading

جزئیات خروجی توی مدل concurrent:

خروجی برای مدل concurrent
خروجی برای مدل concurrent

خلاصه که اگه مثل من خواستین یه موقع کل زمان ویدیو هاتون رو یکجا حساب کنید و ویدیو هاتون توی پوشه های مختلفی هست، میتونید استفاده کنید ازش:

عکس اسکریپت get_all_duration.py:

get_all_durationس اسکریپت
get_all_durationس اسکریپت

برای دسترسی به اسکریپت میتونید توی github یا gist پیداش کنید. اگه ایده هم داشتین میتونید توی کامنت gist یا اینجا بگید :)