Çalma listesi önerilerinde kapak dosyasını değil, gömülü etiketi okumak
这篇内容暂时只有 Türkçe 版本,以下是原文。
Geçen hafta arşivdeki 1.240 parçalık bir klasörden 45 dakikalık bir öneri listesi çıkarmam gerekti. Klasördeki dosyaların yaklaşık üçte biri, farklı albümlerden ama aynı kapak dosyasını (cover.jpg) paylaşıyordu; bir kısmında da klasör adı sanatçı adıyla uyuşmuyordu. Öneri motoru kapak yolunu kimlik sanınca aynı albümden sanılan parçalar listede yan yana düşüyordu.
Önce dosya sistemi yerine gömülü etiketlere baktım. Python tarafında mutagen ile her dosyadan albüm, albüm sanatçısı ve parça numarasını okudum; eksik olanları ayrı işaretledim:
from mutagen import File
from pathlib import Path
def kimlik(p: Path):
f = File(p, easy=True)
if f is None:
return None
return {
"yol": str(p),
"album": (f.get("album") or [None])[0],
"albumartist": (f.get("albumartist") or f.get("artist") or [None])[0],
"track": (f.get("tracknumber") or [None])[0],
}
kayitlar = [k for k in (kimlik(p) for p in Path("arsiv").rglob("*.mp3")) if k]
Sonra gruplamayı (albumartist, album) çifti üzerinden yaptım; albüm alanı boş olanları tek tek “bilinmiyor” grubuna attım ve öneri sırasında bunları en sona bıraktım. Kapak dosyasını yalnızca görsel önizlemede kullandım, sıralamada hiç hesaba katmadım.
Neden böyle: kapak dosyası klasörün mülkü, parçanın değil. Aynı klasöre sonradan atılan bir parça ya da kopyalama sırasında yanlış gelen bir cover.jpg bütün grubu bozuyor. Gömülü etiket parçayla birlikte taşınıyor, taşıma ve kopyalamada da bozulmuyor. Bedeli şu: etiketleri temiz olmayan arşivlerde sonuç daha dağınık görünüyor, çünkü artık klasör adı gibi kaba bir sinyalden de yararlanmıyorum. 1.240 parçanın 190’ında albüm alanı boştu; bu 190’ı ayrı bir listede tutup elle gözden geçirdim, otomatik sıralamaya sokmadım.
Nerede işe yaramıyor: albüm sanatçısı etiketi olmayan derleme albümlerde aynı albüm adı farklı sanatçılarla tekrar ediyor ve gruplama yine karışıyor. Bir de ID3v1 gibi eski etiketlerde albüm adı kısaltılmış oluyor; aynı albümün iki farklı yazımı iki ayrı grup çıkıyor. Bunu yaşadım, çözüm olarak albüm adını küçük harfe çevirip baştaki/sondaki boşlukları kırptım, ama yine de tam eşleşme beklememek gerekiyor.
Sizin arşivinizde albüm alanı boş olan parçaları öneri sırasında tamamen dışarıda mı bırakıyorsunuz, yoksa ayrı bir havuzda mı tutuyorsunuz?


0 条评论
还没有评论,写下第一条。