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:
- 13
- 0:2:6,920 –> 0:2:9,280
- 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).