Çalma listesi dışa aktarımında albüm sırasını korumak

这篇内容暂时只有 Türkçe 版本,以下是原文。

Geçen hafta arşivdeki 4.200 parçalık listeyi M3U’dan CSV’ye taşıdım; hedef, albüm içi parça sırasını bozmadan yeni bir oynatıcıya aktarmaktı. İlk denemede tüm şarkılar alfabetik geldi, çünkü dışa aktarımda yalnızca dosya yolu ve başlık vardı; albüm ve parça numarası alanları boştu. Bunu fark ettiğimde listeyi yeniden taramak yerine etiketlerden sıra bilgisini çektim.

Önce mevcut etiketleri kontrol ettim:

ffprobe -v error -show_entries format_tags=album,track \
  -of default=noprint_wrappers=1 "$dosya"

Çoğu dosyada track alanı 3/12 biçimindeydi, bir kısmında ise hiç yoktu. Eksik olanları dosya adındaki 01 - ön ekine göre doldurdum; ama bunu yalnızca albüm adı aynı olan klasörlerde yaptım, çünkü farklı albümlerde aynı parça numarası tekrar ediyor. Ardından M3U’yu şu Python parçasıyla CSV’ye çevirdim:

import csv, os, mutagen
rows = []
for line in open('liste.m3u', encoding='utf-8'):
    p = line.strip()
    if not p or p.startswith('#'):
        continue
    a = mutagen.File(p, easy=True)
    rows.append((a.get('album', [''])[0],
                 a.get('tracknumber', [''])[0],
                 a.get('title', [''])[0], p))
rows.sort(key=lambda r: (r[0], int(r[1].split('/')[0] or 0)))
with open('cikti.csv', 'w', newline='', encoding='utf-8') as f:
    csv.writer(f).writerows(rows)

Bunu yapmamın nedeni, oynatıcıların çoğunun listedeki satır sırasını değil, etiketlerdeki albüm ve parça numarasını esas alması. Sıralamayı dosya adına bırakmak, yeniden adlandırma sonrası kırılgan hale geliyor. Bedeli şu: albüm etiketi tutarsızsa gruplama yanlış oluyor ve tüm listeyi gözden geçirmek gerekiyor; 4.200 parçada bu yaklaşık yarım saat sürdü.

Nerede işe yaramıyor: canlı kayıtlarda ve derleme albümlerde parça numarası çoğu zaman anlamsız; aynı albüm adını taşıyan farklı sürümler (remaster, deluxe) tek gruba düşüyor. Kendi hatam, bazı dosyalarda track alanına A1 gibi plak numarası yazıldığını fark etmemek oldu; int() o satırlarda patladı. Artık önce sayı olup olmadığını kontrol ediyorum.

Sizin arşivinizde albüm sırasını hangi alan taşıyor: etiket mi, dosya adı mı, yoksa listeyi elle mi düzeltiyorsunuz?

0
赞同度 100% · 0 条评论 · 5 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

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