سینک کردن اتوماتیک زیرنویسها به کمک Subsync

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

اما حالا برنامه ای به نام Subsync پیدا کردم که به مطابقت دادن وجود صدا با زیرنویس در بازه های زمانی مشخصی میتوئنه زیرنویس هارو به طور اتوماتیک با فیلم سینک کنه. طی تست هایی که کردم این برنامه برای زیرنویس هایی که حداکثر 2، 3 ثانیه عقب یا جلو هستن، جواب میده.

نصب این برنامه دو پیش نیاز داره:

  • کتابخونه ffmpeg که اونو باید از اینجا برای ویندوز دانلود کنید.
  • و زبان پایتون که نسخه اخرش برای ویندوز رو میتونید از اینجا دانلود کنید.

* نکته پایین مربوط به نسخه 0.2.1 و ما قبل هست و در نسخه 0.2.2 حل شده. برای اپدیت کردن به اخرین نسخه از دستور زیر استفاده کنید:

pip install -U git+https://github.com/smacke/subsync

بعد از نصب اینها و قبل از شروع به کار، باید مطمئن بشیم که اینکودینک فایل زیرنویس UTF-8 باشه. برای اینکار باید فایل زیرنویس رو در نوت پد باز کنید و گزینه save as رو بزنید. در پنجره ای که باز میشه به قسمت Encoding نگاه کنید، اگر UTF-8 بود، فایل زیرنویس مشکلی نداره و میتونید به مرحله بعد برید. ولی اگر مثل تصویر زیر، غیر از اون بود، باید در قسمت Encoding گزینه UTF-8 رو انتخاب و فایل زیرنویس رو ذخیره و جایگزین فایل قبلی بکنید.

برای شروع به کار باید به کامندلاین (در ویندوز همون cmd) برین و دستور زیر رو برای نصب وارد کنید و اینتر بزنید:

pip install -U git+https://github.com/smacke/subsync

بعد از نصب اون، فقط کافیه مطابق دستور زیر زیرنویس هاتون رو سینک کنید:

subsync "مکان فایل ویدیویی فیلم" -i "مکان زیرنویس سینک نشده" -o "مکان موردنظر برای ذخیره زیرنویس سینک شده"

مثلا اگر فیلم مدنظر شما داخل پوشه movies در درایو d باشه و زیرنویس هم نام اون هم در داخل اون پوشه باشه، دستور بالا به شکل زیر تغییر میکنه:

subsync "d:\movies\Replicas (2018).mkv" -i "d:\movies\Replicas (2018).srt" -o "d:\movies\Replicas (2018)-synced.srt"

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

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

subsync "مکان زیرنویس سینک شده انگلیسی" -i "مکان زیرنویس سینک نشده فارسی" -o "مکان موردنظر برای ذخیره زیرنویس فارسی سینک شده"


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