Character-Encoding
MP3 標記西里爾字元
我
mp3
在文件名及其標籤上有一些帶有西里爾字元的文件。我
audacious
用來玩它們。請參閱下面的文件資訊:是否可以更改某些編碼以正確顯示內容?
High應該是High,我猜。
我的音樂收藏中沒有任何西里爾字元,但我可以使用最新版本的
eyed3
安裝者來毫無問題地做希臘語sudo pip install --upgrade eyed3
:$ eyeD3 Μπεστ\ οφ/Τζίμης\ Πανούσης\ -\ Κάγκελα\ Παντού.mp3 Τζίμης Πανούσης - Κάγκελα Παντού.mp3 [ 3.43 MB ] ------------------------------------------------------------------------------- Time: 03:45 MPEG1, Layer III [ 128 kb/s @ 44100 Hz - Joint stereo ] ------------------------------------------------------------------------------- ID3 v2.4: title: Tzimis Panousis-Kagkela Pantou.mp3 artist: Tzimis Panousis album: Unknown
在上面的範例中,我有一個名為的目錄(專輯名稱)
Μπεστ οφ
,其中包含一首名為 的Κάγκελα Παντού
歌曲Τζίμης Πανούσης
。正如您在id3tool
上面的輸出中看到的那樣,標籤不是希臘語。讓我們解決這個問題:$ eyeD3 -A "Μπεστ οφ" \ -t "Κάγκελα Παντού" \ -a "Τζίμης Πανούσης" \ "./Μπεστ οφ/Τζίμης Πανούσης - Κάγκελα Παντού.mp3"
使用希臘字母正確設置標籤:
$ eyeD3 Μπεστ\ οφ/Τζίμης\ Πανούσης\ -\ Κάγκελα\ Παντού.mp3 Τζίμης Πανούσης - Κάγκελα Παντού.mp3 [ 3.43 MB ] ------------------------------------------------------------------------------- Time: 03:45 MPEG1, Layer III [ 128 kb/s @ 44100 Hz - Joint stereo ] ------------------------------------------------------------------------------- ID3 v2.4: title: Κάγκελα Παντού artist: Τζίμης Πανούσης album: Μπεστ οφ
好的,但是由於資訊是在文件名中編碼的,因此可以自動化。在上面的範例中,文件名具有以下格式:
Album/Artist - Title.mp3
因此,我們可以使用一點shell 魔術來解析和添加所有文件的標籤:
find . -type f -name "*mp3" | while read file; do album="$(basename "$(dirname "$file")")"; filename="$(basename "$file")"; artist=${filename%%-*}; title=${filename##*-}; title=${title%%.mp3}; eyeD3 -A "$album" -t "$title" -a "$artist" "$file"; done
執行此命令後,所有文件的 id3 標籤都將被修改: