Character-Encoding

MP3 標記西里爾字元

  • December 10, 2019

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 標籤都將被修改:

  在此處輸入圖像描述

引用自:https://unix.stackexchange.com/questions/114382