シェルからファイルのmp3タグを読み取る方法はありますか?次のようなもの:
mp3tags MyFile.mp3 author
mp3-fileのauthor-tagを出力する必要があります。
シェルからファイルのmp3タグを読み取る方法はありますか?次のようなもの:
mp3tags MyFile.mp3 author
mp3-fileのauthor-tagを出力する必要があります。
回答:
のffprobe
一部を使用することもできffmpeg
ます。
sudo apt-get install ffmpeg
ffprobe file.mp3
トラックの長さなど、他の情報が必要ない場合は、出力をgrepと組み合わせることができます。
ffprobe file.mp3 2>&1 | grep -A90 'Metadata:'
または、著者のみを取得するには:
ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 file.mp3
他のタグは、などのカンマで区切って選択できますformat_tags=title,album
。
フォルダー内のすべてのmp3ファイルでキーワードを検索したかった。フォルダーには486個のファイルがあったため、ここで言及した解決策のどれが最も速いかを知ることは興味深いものになりました。私が使用したループは次のとおりです。
# sudo apt-get install ffmpeg lltag eyed3 mp3info id3v2 libimage-exiftool-perl libid3-tools id3tool
keyword='fill_me_in'
getTitleFF() { ffprobe "$1" 2>&1 | sed -E -n 's/^ *title *: (.*)/\1/p'; }
getTitleLL() { lltag --show-tags title "$1" | sed -nE 's/^ TITLE=(.*)/\1/p'; }
getTitleEyed() { eyeD3 2>&1 "$1" | sed -n 's|\x1b\[[0-9;]*mtitle[^:]*: ||p'; }
getTitleInfo() { mp3info -p %t "$1"; }
getTitleId3() { id3v2 -l "$1" | sed -nE 's/^(TIT2 \([^)]*\)|Title *): (.*)/\2/p'; }
getTitleExif() { exiftool -title -b "$1"; }
getTitleId3i() { id3info "$1" | sed -nE 's/^=== TIT2 \([^)]*\): //p'; }
getTitleTool() { id3tool "$1" | sed -n 's|^Song Title:\t||p'; }
for prog in FF LL Eyed Info Id3 Exif Id3i Tool; do
echo "=== getTitle${prog} ==="
time \
for file in *.mp3; do
if "getTitle${prog}" "$file" | grep -q "$keyword"; then
echo "$file"
fi
done
done
ノート:
lltag
そして、mp3info
:私が持っていたID3v2のタグを使用していたファイルは、@ S-prasanthでのコメントを見るので、タイトルを見つけることができませんシェルでmp3タグを読み取るためにどのように?eyeD3
カラーコード(太字)を使用するため、プログラムで使用するには問題があります。eyeD3
またid3v2
(ただし、ID3 v1タグの場合のみ)タイトルとアーティストを同じ行に返すため、さらに複雑になります。そのためgetTitleEyed
、場合によってgetTitleId3
はタイトルとアーティストの両方を返すため、これらの関数をコピー&ペーストしないでください。getTitleId3はid3v2
、ID3v1タグとID3v2-tagsの形式が異なるため、ID3 v2タグに対してのみ機能します。
Title : Artist:
vs. ID3v2:
TIT2 (Title/songname/content description):
これらの5つの唯一のプログラムはeyeD3
、2つのファイルに対して赤い警告を出力します。
Invalid mode/bitrate combination for layer II
No ID3 v1.x/v2.x tag found!
これら2つのファイルが唯一のもの場所であるため、これら2つのファイルは、はID3v1タグを持っているように思えるlltag
とmp3info
タイトルを取得することができます。eyeD3
ここに記載されている他のプログラムにはこれらのファイルに問題がないため、これがバグかどうか疑問に思っています...
結果(リアルタイム):
Program | Version | Time / s
----------+------------+-----------
exiftool | 10.25 | 49.5 ± 0.5
lltag | 0.14.5 | 41 ± 1.0
ffprobe | 3.1.3-1+b3 | 33 ± 0.5
eyeD3 | 0.6.18 | 24 ± 0.5
id3info | 3.8.3 | 4.2 ± 0.1
id3v2 | 0.1.12 | 2.9 ± 0.1
id3tool | 1.2a | 1.7 ± 0.1
mp3info | 0.8.5a | 1.4 ± 0.1
ここでの勝者は時間的に賢明ですid3tool
(mp3infoは高速ですが、ID3 v2では機能しません)。
id3v2
また、非常に高速ですが、getTitleId3
関数はID3v1-tagsでも機能するように調整する必要があり、最悪の場合、係数2で遅くなる可能性があります。
id3info
あなた比較して?
ffmpeg
もう一つの利点があります:aac
/ m4a
ファイルで動作します。他のツールはそうではないようです(または、他のツールを知っていますか?またFORMAT
、そのセクションを検索することをお勧めします。これには、ストリームにtitle
なども含まれる場合を避けるためffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'
です。
exiftool
またはで読み取ることもできますffprobe
。このジョブに特化したツールはmetaflac --list
、flac
パッケージにあります。ogg exiftool
でも動作vorbiscomment -l
しvorbis-tools
ますが、パッケージからもあります。変なふうvorbiscomment
とmetaflac
FLACやOGG Vorbisのは、両方のCOMENTメタデータが持っているにもかかわらず、交換することができないのですか?
OK、私は自分でプログラムを見つけました。これはmp3infoと呼ばれ、インストールされます
sudo apt-get install mp3info
ファイルから単一のmp3タグを取得するには、
mp3info -p %a file.mp3
ファイルのアーティストを提供します。%aは、アーティストを取得したいことを意味し、他のタグには他のキーがあります。
mp3info
。ご覧になりたいかもしれませんid3v2
-v2を編集/追加し、v1とv2を表示できます。タグの表示方法が気に入らない場合はid3v2
、出力を適切に実行および処理するスクリプトを作成できます。
-R
with grep
を使用していることに感謝します。
Only ID3 versions 1.0 and 1.1 are supported
。
eyed3を使用できます。まず、ターミナルからインストールします。
sudo apt-get install eyed3
次に、実行します:
eyeD3 song.mp3
それと組み合わせて、grep
特定のタグを1行で取得します。
eyeD3 song.mp3 | grep artist
(すべてのmp3タグを削除するには、こちらを参照してください)
eyeD3
ではないeyed3
eyeD3 --plugin display -p "%t% by %a%" *
。
exiftool(ファイル内のメタ情報の読み書き)を試すことができます。
「ExifToolは、プラットフォームに依存しないPerlライブラリであり、さまざまなファイルのメタ情報の読み取り、書き込み、編集を行うコマンドラインアプリケーションです。ExifToolは、EXIF、GPS、IPTC、XMP、JFIF、GeoTIFF、ICCプロファイル、Photoshop IRB、FlashPix、AFCP、ID3、およびCanon、Casio、FLIR、FujiFilm、GE、HP、JVC / Victor、Kodak、Leaf、Minolta / Konica-Minolta、Motorolaによる多くのデジタルカメラのメーカーノート、ニコン、任天堂、オリンパス/エプソン、パナソニック/ライカ、ペンタックス/アサヒ、フェーズ1、レコニクス、リコー、サムスン、三洋、シグマ/フォビオン、ソニー。- フィル・ハーヴェイExifTool
コマンドの例を次に示します。
exiftool test.mp3
ExifTool Version Number : 10.00
File Name : test.mp3
Directory : .
File Size : 8.2 MB
File Modification Date/Time : 2016:03:02 21:44:58+01:00
File Access Date/Time : 2016:04:06 21:34:01+02:00
File Inode Change Date/Time : 2016:03:02 21:45:36+01:00
File Permissions : rw-rw-r--
File Type : MP3
File Type Extension : mp3
MIME Type : audio/mpeg
MPEG Audio Version : 1
Audio Layer : 3
Sample Rate : 44100
Channel Mode : Stereo
MS Stereo : Off
Intensity Stereo : Off
Copyright Flag : False
Original Media : False
Emphasis : None
VBR Frames : 9544
VBR Bytes : 8467680
ID3 Size : 115419
Band : Tech N9ne Collabos
Album : Strangeulation (Deluxe Edition)
Composer : Tech N9ne Collabos
Genre : Rap & Hip-Hop
Copyright : 2014 Strange Music, Inc
Title : American Horror Story (feat. Ces Cru)
Artist : Tech N9ne Collabos
Track : 10
Year : 2014
Comment :
Lyrics :
Private : (Binary data 8192 bytes, use -b option to extract)
Picture MIME Type : image/jpeg
Picture Type : Front Cover
Picture Description :
Picture : (Binary data 104371 bytes, use -b option to extract)
Audio Bitrate : 272 kbps
Date/Time Original : 2014
Duration : 0:04:09 (approx)
あなたが開始することができ、このスクリーンキャストと取得開始ガイド
次のいずれかをインストールします。
pip install beets # latest version
apt install beets # repo version
また:
exiftool -v3 *.mp3
mid3v2
from(python-mutagen
package)(代わりにid3v2
、最後の更新は2013でした!)id3
-ID3タグのエディター(このid3とは異なります)id3tool
-id3タグのコマンドラインエディターid3ren
-id3 taggerおよびrenamer