2011年6月18日

Ubuntu Linux - 用mid3iconv及exfalso批次整理舊MP3的ID3標籤

最近在整理十多年前燒錄的音樂光碟,這些陳年的MP3檔案,不是沒有設定ID3標籤(即歌曲名稱、演唱者、專輯名稱等),就是ID3標籤都是BIG5(MS950)的格式,以前使用Winamp播放並沒什麼問題。

但現在要加入Linux的音樂播放軟體,例如Banshee或Rhythmbox,播放清單會顯示成一堆亂碼。
MP3匯入Banshee後播放清單顯示亂碼
要大量修正MP3檔案的ID3標籤,可以借助Linux下的mid3iconv指令和Ex Falso工具。

首先用apt-get完成python-mutagen(提供mid3iconv指令)及exfalso安裝。
sudo apt-get install python-mutagen exfalso

將BIG5(MS950)編碼的ID3標籤,批次轉換成UTF8格式,將find及mid3iconv兩個指令組合使用。在Console模式下,先用cd指令切換到檔案mp3儲存的路徑,然後使用以下指令測試轉換。
find . -iname "*.mp3" -exec mid3iconv -e big5 -d -p {} \; -print

其中-d指令代表要顯示轉換過程的除錯訊息,以方便檢查轉換是否正確執行。而-p指令表示僅作測試,不會真正把轉換結果儲存回MP3檔案。如果沒問題,把-p參數拿掉,就可以正式完成轉換作業。
find . -iname "*.mp3" -exec mid3iconv -e big5 -d {} \; -print

如果是採GB2312編碼的簡體中文,則只要修改-e參數的設定。
find . -iname "*.mp3" -exec mid3iconv -e gb2312 -d {} \; -print

完成編碼轉換後,對於缺少ID3資訊的MP3檔案,或是ID3資訊不完整,就沒辦法直接透過指令自動完成。但是可以用Ex Falso輔助我們快速進行批次設定,Ex Falso的參數是MP3儲存目錄的路徑,以下指令請把~/musics替換成實際的路徑。
exfalso ~/musics

Ex Falso對中文的支援度很好,不但視窗介面有提供繁體中文的語系,讀取檔案的中文ID3標籤也沒問題。(另外一套也很常用的工具tagtool,讀取中文ID3就有點問題)

執行exfalso程式後,左上方會顯示資料夾清單,針對已經包含軌道編號、歌曲名稱的檔名,可以用「從路徑名設定標籤」進行批次轉換。
Ex Falso從路徑名設定標籤

「從路徑名設定標籤」的操作步驟如下:
  1. 先選擇「資料夾」其中一個項目。
  2. 點「曲目」其中一個項目,並用Ctrl + A全部選取。
  3. 切換到「從路徑名設定標籤」的頁籤,在下拉式選單選擇一個比較接近的檔案命名格式,並修改成完全符合檔案命名的格式。例如有個檔案名稱是「10-小情歌.mp3」,則檔案格式設定就是「<tracknumber>-<title>」,空白、符號字元都必須一致。
  4. 按「預覽」按鈕,在清單中會顯示從檔案名稱中擷取出來的標籤資訊。
  5. 如果是英文歌曲,可以打勾「標籤英文首字大寫」,檔案名稱若用底線取代空白,則將「以空白替換底線」勾選。
  6. 最後按下「儲存」按鈕,就批次完成ID3標籤編輯作業了。
「編輯標籤」的功能,可以批次增加或修改標籤,例如將多首歌曲設定演出者。
  1. 將需要修改的多個曲目選取。
  2. 切換到「編輯標籤」頁籤。
  3. 按下「加入」按鈕。
  4. 選擇「標籤」(例如:演出者artist、專輯album),並自行輸入「設定值」(例如:五月天)。
  5. 按下「儲存」完成編輯。
如果ID3標籤很完整,可以用「重新命名檔案」重新整理MP3檔案命名。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!