Python ile altyazı işlemleri

Regex ile uğraşmaya ve anime izlemeye başladıktan sonra altyazılardaki sorunlarımı Python ile çözmeye uğraşıyorum. Bundan önceki yazıda bazı gereksiz etiketleri kaldırmıştım altyazıdan, bu sefer de tüm altyazıyı 82 saniye ileri almam gerekti. Normalde her seferinde VLC’den ileri alınabiliyor. Altyazının formatı diğerinden farklı olarak şu şekilde:

  1. 13
  2. 0:2:6,920 –> 0:2:9,280
  3. Niye? Bence iyi bir plan.

Ve kod da şu:

import os, re

dosyalar = os.listdir(os.getcwd())
ara = re.compile("([0-9]{2}):([0-9]{2}):([0-9]{2}),([0-9]{3})")
for dosya in dosyalar:
    file = open(os.getcwd() + "/" + dosya, "r")
    liste = file.readlines()
    file.close()
    print dosya
    for satir in liste:
        yer = ara.findall(satir)
        if yer:
            yeni = ""
            for parca in yer:
                saat, dakika, saniye, salise = (int(parca[0]),
                int(parca[1]), int(parca[2]), int(parca[3]))
                yeniDakika = dakika + 1
                if saniye < 38:
                    yeniSaniye = saniye + 22
                elif saniye >= 38:
                    yeniSaniye = saniye - 38
                    yeniDakika = dakika + 2
                yeni += "%s:%s:%s,%s " % (saat, yeniDakika,
                                         yeniSaniye, salise)
            yeni = yeni.split(" ")
            yeniSatir = str(yeni[0]) + " --> " + str(yeni[1]) + "\n"
            liste[liste.index(satir)] = yeniSatir
    yeniDosya = open(os.getcwd() + "/yeni" + dosya.capitalize(), "w")
    yeniDosya.writelines(liste)
    yeniDosya.close()

Kod biraz uzun oldu, aklıma daha kısa bir yol gelmedi. Bundan sonra altyazı işlemlerimi yapmak için bir program yazmaya karar verdim, hem bu sayede GUIe de giriş yapmış olacağım. Genel olarak altyazıyı ileri-geri alma, etiketlerden temizleme özellikleri olacak(bu özellik zaten hazır sayılır).

Alakalı Yazılar

1 Yorum / Yorum yaz

Trackback/Pingback

  1. [...] Python’da regex kullanarak altyazılar üzerinde bazı değişiklikler yapmıştım(ilk yazı burda). Bu seferki kod altyazılar srt formatlı altyazılar için birkaç fonksiyon [...]