Post

Subtitle Deduplicator: Otomatik Oluşturulan Altyazılar İçin Temizleyici

🇹🇷 subtitle-deduplicator, otomatik oluşturulan SRT altyazılarındaki 'ghost' girdileri ve karmaşık tekrarları silerek dosyayı temizleyen terminal tabanlı bir araçtır.

Subtitle Deduplicator: Otomatik Oluşturulan Altyazılar İçin Temizleyici

YouTube gibi platformlardan veya Whisper gibi yapay zeka transkripsiyon modellerinden otomatik olarak oluşturulan SRT altyazıları erişilebilirlik açısından harikadır, ancak bunları doğrudan okumak ya da kullanmak istediğinizde çok karmakarışık bir “kayan karaoke” formatına (scrolling karaoke) dönüşebiliyorlar. Sıkıcı metin tekrarları, “hayalet” (ghost) satırlar ve şişmiş dosya boyutları gibi sorunları kalıcı olarak aşmak için subtitle-deduplicator aracını geliştirdik. | 🇬🇧 English

Neden subtitle-deduplicator?

subtitle-deduplicator 🎬 otomatik oluşturulan SRT dosyalarındaki “ghost” adı verilen tekrarlanan ve çakışan girdileri silen, oldukça hafif bir komut satırı aracıdır. Başka hiçbir harici kütüphaneye bağımlı olmadan, tamamen standart Python kütüphaneleri kullanılarak kodlanmıştır.

Otomatik oluşturulan altyazılarda genellikle “kayan karaoke” yapısına benzeyen tekrarlar bulunur. Temiz bir metin akışı göstermek yerine, her anlamlı girdi her defasında 2 satır birden gösterir (önceki satır + yeni okunan satır) ve bunların arasında da önceki metni tekrarlayan 10 milisaniyelik “ghost” girdiler yer alır.

Bu durum, dosyanın boyutunu normalin yaklaşık 3 katına çıkarır ve altyazı dosyalarının insanlar tarafından okunmasını ya da diğer metin işleme araçlarıyla düzenlenmesini bir eziyete dönüştürür.

subtitle-deduplicator ise bütün bu temizlik sürecini otomatikleştirerek tamamen arındırılmış, son derece düzgün ve okunabilir bir SRT çıktısı üretir.

Kurulum ve Yükleme

pip ile (Tüm Platformlar)

1
pip install subtitle-deduplicator

Arch Linux (AUR)

1
yay -S subtitle-deduplicator

Nasıl Kullanılır?

Aracın kullanımı doğrudan komut satırı üzerinden yapılır ve oldukça basittir:

flowchart TD
    A(["📄 video.srt\n(Otomatik oluşturulan)"]) --> B["subtitle-dedup video.srt"]
    B --> C{Deduplication\nFiltreleri}
    C -- "Ghost entries (10ms)" --> D[Kısa süreli tekrar girdilerini sil]
    C -- "Carry-over lines" --> E[Girdiler arası kesişen satırları sil]
    C -- "Identical entries" --> F[Art arda gelen aynı metinleri birleştir]
    D --> G(["✅ video_clean.srt"])
    E --> G
    F --> G

Temel ve Gelişmiş Kullanım

Herhangi bir SRT dosyasını varsayılan ayarlarıyla anında temizleyebilirsiniz:

1
2
3
4
5
6
7
8
# Temel kullanım (çıktıyı video_deduped.srt olarak kaydeder)
subtitle-dedup video.srt

# Çıktı dosyasının adını kendiniz belirlemek için
subtitle-dedup video.srt -o video_clean.srt

# Orijinal dosyanın doğrudan üzerine yazdırmak için
subtitle-dedup video.srt --in-place

Ayrıca “ghost” girdilerin süreleri farklılaşabilen veya alışılmışın dışında (farklı encoding) kodlanmış dosyalarla çalışıyorsanız, bu ayarları parametre atayarak değiştirebilirsiniz:

1
2
3
4
5
# Özel ghost sınırı (varsayılan: 20 ms)
subtitle-dedup video.srt -t 50

# Dosyanın karakter kodlamasını (encoding) belirtmek için
subtitle-dedup video.srt -e latin-1

Örnek Terminal Çıktısı:

1
2
3
4
5
6
✔ Deduplication complete!
ℹ Input:               video.srt
ℹ Output:              video_clean.srt
ℹ Original entries:    1559
ℹ Deduplicated:        760
ℹ Removed:             799 (51.3%)

Ne Tür Verileri Siliyoruz?

Bu araç, tertemiz bir SRT dosyası bırakmak üzere kapsamlı bir filtreleme prosedürü uygular:

Kopya Veri TipiAçıklaması
Ghost entriesÇok kısa (genellikle 10 ms; varsayılan süzgeç ≤ 20 ms) süren ve sadece bir önceki metnin tekrar ettiği hayalet aktarımlar.
Carry-over linesKaydırmalı / karaoke tipi altyazılarda, her yeni girdinin ilk satırına yapışan, “bir önceki girdinin son satırı” niteliğindeki aynı metinler.
Identical entriesBirebir çakışan, arka arkaya yazılmış tamamen aynı satırlar.
Empty entriesİçi tamamen boş ya da sadece boşluk karakterinden ibaret anlamsız girdiler.

Sıfır Harici Bağımlılık Garantisi

Projenin en güçlü yönlerinden biri ağır ve hantal harici paketlere ihtiyaç duymamasıdır. Tamamen standart Python kütüphaneleri kullanılmıştır, bu sayede bilgisayarınızda sadece Python 3.8 veya üzeri özelliklerin (ör. argparse, pathlib) yüklü olması araç için yeterlidir.

Tekilleştirme işlemi tamamlandıktan sonra elinizdeki altyazı dosyaları dosya boyutu açısından muazzam hafiflemiş, okunaklı şekilde yapılandırılmış olur ve doğrudan herhangi bir medya oynatıcısı ya da video düzenleme programında sorunsuz yüklenmeye hazır hale gelir.

Kaynak Kod: fr0stb1rd/subtitle-deduplicator
PyPI Paketi: pypi.org/project/subtitle-deduplicator
AUR Paketi: aur.archlinux.org/packages/subtitle-deduplicator

This post is licensed under CC BY 4.0 by the author.