쉘에서 mp3 태그를 읽는 방법은 무엇입니까?


53

쉘에서 파일의 mp3 태그를 읽는 방법이 있습니까? 같은 뭔가 : mp3tags MyFile.mp3 author해야 출력은 MP3 파일의 저자 태그.

답변:


47

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은 id3v2ID3v1 및 ID3v2- 태그의 형식이 다르기 때문에 ID3 v2 태그에만 작동합니다.

    Title  :                                 Artist:    
    

    ID3v2 vs.

    TIT2 (Title/songname/content description): 
    
  • 이 5 가지 프로그램 중 eyeD3두 가지 파일에 대해 빨간색 경고가 인쇄됩니다.

    Invalid mode/bitrate combination for layer II
    No ID3 v1.x/v2.x tag found!
    

    이 두 파일이 바람 쐬 태그가 같은 두 파일이 어디있는 유일한 사람이기 때문에 그것은 보인다 lltagmp3info제목을 얻을 수 있습니다. 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또한 매우 빠르지 만 getTitleId3ID3v1 태그와 함께 작동하려면 이 기능을 조정해야하며 최악의 경우 요소 2만큼 느려질 수 있습니다.


1
와. 나는 몇 년 동안 exiftool 고급 사용자였으며 사운드 파일의 메타 데이터도 읽을 수 있다는 것을 몰랐습니다! ffprobe (또는 필자의 경우 avprobe) 솔루션도 훌륭합니다. 이것이 가장 좋은 답변입니다!
marlar

1
거대한 작업에 감사드립니다! 이 도구 중 일부는 Fedora의 패키지 관리자에서 사용할 수 없습니다. id3info비교에 포함 시켜 주시겠습니까?
Vytenis Bivainis

ffmpeg또 다른 장점이 있습니다 : aac/ m4a파일 과 함께 작동 합니다. 다른 도구는 보이지 않는 것 같습니다 (또는 다른 방법을 알고 있습니까?). 또한 FORMAT스트림에 title등 이있는 경우를 피하기 위해 섹션을 검색하는 것이 좋습니다 ffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'.
Jonathan Y.

@JonathanY. 맞습니다 .M4A-containter 파일에 저장된 AAC 인코딩 오디오에는 비 ID3 메타 데이터가 있으므로 내 답변에서 선택하지 않은 경우 ffmpeg 및 추가로 exiftool로만 읽을 수 있습니다.
mxmlnkn

FLAC는 MP4 / M4A와 다른 메타 데이터 형식, 즉 vorbis 주석 메타 데이터를 갖지만 태그를 exiftool또는 로 읽을 수도 있습니다 ffprobe. 이 작업을위한보다 전문화 된 도구 metaflac --listflac패키지 에서 제공 됩니다. OGG의 경우 exiftool도 작동하지만도있다 vorbiscomment -l으로부터 vorbis-tools패키지로 제공된다. 이상하게 vorbiscommentmetaflacFLAC 및 OGG 모두 보비스 COMENT 메타 데이터에도 불구하고, 교환 할 수없는 이유는 무엇입니까?
mxmlnkn

26

좋아, 나는 혼자서 프로그램을 찾았다. mp3info라고하며 다음에 의해 설치됩니다.

sudo apt-get install mp3info

파일에서 하나의 mp3 태그를 가져 오려면

mp3info -p %a file.mp3

파일의 아티스트를 제공합니다. % a는 아티스트를 원하고 다른 태그에 대한 다른 키가 있다는 것을 의미합니다.


20
추가 정보 : mp3 태그 id3v1, id3v2.2 (사용되지 않음), id3v2.3, id3v2.4 en.wikipedia.org/wiki/ID3의 4 가지 표준이 있습니다. 파일은 v1 및 / 또는 v2 태그를 가질 수 있습니다 (예 v1 및 v2는 공존 할 수 있지만 v2.x 및 v2.y는 공존 할 수 없습니다). v2.3이 가장 널리 사용되는 것으로 생각합니다. ibiblio.org/mp3info(Todo 참조) 에 따르면 v2 태그는에서 지원되지 않습니다 mp3info. 보고 싶을 수도 id3v2있습니다. v2를 편집 / 추가하고 v1과 v2를 표시 할 수 있습니다. 태그가 표시되는 방식이 마음에 들지 않으면 id3v2출력을 적절히 실행 하고 처리 하는 스크립트를 작성할 수 있습니다 .
S Prasanth

@SPrasanth 특정 태그를 표시하는 방법. 예를 들어 : mp3 파일의 아티스트 만?
Gowtham Gopalakrishnan

@ SPrasanth 나는 그것을 얻었다. 덕분 에 지정된 출력을 얻기 위해 -Rwith 플래그를 사용 grep하고 있습니다.
Gowtham Gopalakrishnan

트랙 제목을 % t로 인쇄하면 잘린 상태로 인쇄됩니다.
Tulains Córdova

1
불행히도 : Only ID3 versions 1.0 and 1.1 are supported.
simlev

11

eyed3 을 사용할 수 있습니다 . 먼저 터미널에서 다음을 설치하십시오.

sudo apt-get install eyed3

그런 다음 다음을 실행하십시오.

eyeD3 song.mp3

grep한 줄에 특정 태그를 가져 오려면 이 를 결합하십시오 .

eyeD3 song.mp3 | grep artist

(모든 mp3 태그를 제거하려면 여기를 참조하십시오 )


1
나는 이것을 시도했고, 사용하는 명령은 대문자 D와 함께 eyeD3이다;). 그러나 mp3info라는 내 요구에 더 잘 맞는 다른 도구를 찾았습니다. grep을 사용하지 않고도 mp3 태그를 출력 할 수 있습니다.
red_trumpet

이 ID3V2 작동하지만 @red_trumpet를 잘하기 때문에 eyeD3 나를 위해 잘 작동, 명령은해야 eyeD3하지eyed3
bmaupin

디스플레이 플러그인을 사용하여 원하는 형식으로 태그를 출력하십시오 eyeD3 --plugin display -p "%t% by %a%" *.
simlev

ISRC와 같은 모든 태그를 표시하지는 않습니다. 아래 언급 된 프로그램 ID3V2 또한 ISRC,하지만 시간 ... 반환
minyves

8

id3v2를 사용하는 것을 선호합니다 id3v2 -l somefile.mp3. 보다 구체적인 사용을 위해 id3v2 매뉴얼 페이지를 볼 수도 있습니다.


이것은 훌륭하고 잘 작동합니다
jpo38

확실히 최선의 대답이어야합니다. 다른 모든 도구에는 일부 배포판에 대한 종속성 문제가 있습니다.
Sergio

다음은 권장 mid3v2대신 때문에 유니 코드 지원의 부족. 또한 id3v2의 마지막 업데이트 는 2013 년에 있었습니다.
Pablo A

2

exiftool (메타 정보를 읽고 파일에 기록)을 사용해보십시오.

"ExifTool은 플랫폼 독립적 인 Perl 라이브러리와 다양한 파일에서 메타 정보를 읽고 쓰고 편집 할 수있는 명령 줄 응용 프로그램입니다. ExifTool은 EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC 등 다양한 메타 데이터 형식을 지원합니다. Canon, Casio, FLIR, FujiFilm, GE, HP, JVC / Victor, Kodak, Leaf, Minolta / Konica-Minolta, Motorola의 많은 디지털 카메라 제작자 노트, 프로파일, Photoshop IRB, FlashPix, AFCP 및 ID3, Nikon, Nintendo, Olympus / Epson, Panasonic / Leica, Pentax / Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma / Foveon 및 Sony. " - 필 하비에 의해 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)

1

lltagmp3 / ID3 이상을 지원하는 솔루션을 찾고 있는지 확인하십시오 .

다음과 같이 설치하십시오.

sudo apt-get install lltag

그것으로 모든 태그를 보려면 : ( -S쇼 용)

lltag -S somefile.mp3

특정 태그를 보려면 :

lltag --show-tags artist,album,title,number somefile.mp3

0

사탕무

당신은 시작할 수있다 이 스크린 캐스트시작하기 가이드

다음 중 하나를 설치하십시오.

pip install beets  # latest version
apt install beets  # repo version

또한:

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.