2011-03-12 137 views
4

我對理解V2 ID3標籤的格式有點困難。我只想獲得MP3文件的'Genre'ID3標籤,但是id3v2工具返回的信息比我需要的要多,我不明白這些數據代表什麼。使用id3v2獲取MP3 ID3(V2)標籤

例如,我用下面的bash代碼:

id3v2 -l "$FILE" | grep -i "content type" 

其中上線返回的東西:

TCON (Content type): Jazz (8)

真的,我只是想知道,如果它是安全的我假設這將始終是格式,因此我可以安全地做以下事情嗎?:

id3v2 -l "$FILE" | grep -i "content type" | sed "s/^.*: //" | sed "s/ (.*$//" 

(這將導致「爵士」。)

我試圖找到獲得ID3'流派'標記的最佳方法。非常感謝您的任何建議。

回答

3

我認爲可以安全地假設該行會以TCON作爲前綴,所以我寧願搜索它(這也將是國際化的)。

id3v2 -l "$FILE" | sed -n '/^TCON/s/^.*: //p' | sed 's/ (.*//' 

(無需運行的grep)


從/usr/share/doc/id3lib-3.8.3/doc/id3v2.3.0.txt

TCON

'內容類型',其中 以前僅存儲爲一個字節的 數值,現在是 ric字符串。您可以使用一個或 幾個類型作爲ID3v1.1做了 或者由於類別列表將是 不可能保持與準確 和最新類別,定義 您自己的。

引用到的ID3v1流派可以通過 ,作爲第一個字節輸入進行「(」隨後從 流派列表(附錄A數字)和一個結束 「)」字符。這是 ,可選地接着是改進,例如 。 「(21)」或 「(4)Eurodisco」。幾個參考文獻可以在相同的框架中製作,例如,可以是 。 「(51)(39)」。如果細化應以 開頭爲「(」字符,則應將其替換爲「((」,例如「((I 可以算出任何類型)」或「(55)((I 認爲...) 」。以下新 內容類型中的ID3v2定義和 被以相同的方式實現爲 的numerig內容類型,例如 ‘(RX)’。

RX Remix 
CR Cover