Aynı çalma listesini üç cihazda aynı sırada tutmak

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

Evde eski bir Linux kutusu var; müzik arşivi orada duruyor. Telefonda ve iş bilgisayarında da aynı listeyi dinlemek istiyorum ama listeyi her yerde ayrı ayrı elle güncellemek yorucu. Arşiv yaklaşık 4000 dosya, çoğu FLAC, dosya adları “01 - sanatçı - parça.flac” gibi. Sorun şuydu: listeyi bir cihazda değiştirince diğerlerinde sıralama bozuluyordu, çünkü oynatıcılar listeyi kendi kafalarına göre yeniden sıralıyordu.

Çözümü basit tuttum: liste artık bir metin dosyası değil, yol listesi. Her satır arşive göre göreli bir yol. Sıralamayı dosya içindeki satır sırası belirliyor, oynatıcıya bırakmıyorum.

# ~/muzik/liste.m3u8
#EXTM3U
#EXTINF:-1,Kayıt A
rock/2019/01 - grup - parca.flac
#EXTINF:-1,Kayıt B
caz/2021/04 - trio - parca.flac

Bunu üretmek için kullandığım betik:

#!/bin/sh
# kullanim: ./liste-yap.sh > liste.m3u8
cd "$HOME/muzik/arsiv" || exit 1
printf '#EXTM3U\n'
for f in $(cat "$HOME/muzik/sira.txt"); do
  [ -f "$f" ] || { echo "eksik: $f" >&2; continue; }
  printf '#EXTINF:-1,%s\n%s\n' "$(basename "$f")" "$f"
done

sira.txt tek doğru kaynak; sadece satır ekleyip çıkarıyorum. Sonra dosyayı rsync -a ile telefona ve diğer makineye atıyorum. Oynatıcı tarafında M3U8’i “konum koru” seçeneğiyle açmak gerekiyor; bazı uygulamalar varsayılan olarak alfabetik sıralıyor, o ayarı kapatmadan dosyayı okumak anlamsız.

Neden böyle: liste bir veri, oynatıcının iç durumu değil. Sıralamayı dosyaya sabitleyince cihazlar arası fark kalmıyor, ayrıca listeyi git diff ile görebiliyorum. Bedeli şu: her değişiklikte betiği yeniden çalıştırmak ve dosyayı kopyalamak gerekiyor; anlık senkron yok. Ayrıca sira.txt içinde yol yazımı tutarsız olursa (büyük/küçük harf, Türkçe karakter) betik o satırı sessizce atlıyor, bunu eksik: çıktısından yakalamak lazım.

Nerede bozuluyor: dosya adlarında # veya \n varsa M3U8 biçimi karışıyor. Bir de aynı parçanın iki farklı kopyası varsa (örneğin hem FLAC hem MP3) liste yolu tek bir kopyayı gösterdiği için diğer cihazda o dosya yoksa satır atlanıyor; bunu bilerek yapıyorum ama ilk seferde kafa karıştırıyor.

Sizin listenizde sıralamayı neye emanet ediyorsunuz: dosya adına, etiketlere mi, yoksa ayrı bir sıra dosyasına mı?

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

0 条评论

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

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