쉘에서 파일의 mp3 태그를 읽는 방법이 있습니까? 같은 뭔가 :
mp3tags MyFile.mp3 author
해야 출력은 MP3 파일의 저자 태그.
쉘에서 파일의 mp3 태그를 읽는 방법이 있습니까? 같은 뭔가 :
mp3tags MyFile.mp3 author
해야 출력은 MP3 파일의 저자 태그.
답변:
의 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- 태그의 형식이 다르기 때문에 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!
이 두 파일이 바람 쐬 태그가 같은 두 파일이 어디있는 유일한 사람이기 때문에 그것은 보인다 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 태그와 함께 작동하려면 이 기능을 조정해야하며 최악의 경우 요소 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 모두 보비스 COMENT 메타 데이터에도 불구하고, 교환 할 수없는 이유는 무엇입니까?
좋아, 나는 혼자서 프로그램을 찾았다. 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
한 줄에 특정 태그를 가져 오려면 이 를 결합하십시오 .
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 등 다양한 메타 데이터 형식을 지원합니다. 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)
당신은 시작할 수있다 이 스크린 캐스트 및 시작하기 가이드
다음 중 하나를 설치하십시오.
pip install beets # latest version
apt install beets # repo version
또한:
exiftool -v3 *.mp3
mid3v2
(에서 python-mutagen
(패키지) 대신에id3v2
, 최종 업데이트는 2013 년이었다 !)id3
-ID3 태그 편집기 ( 이 id3 과 동일하지 않음 )id3tool
-id3 태그 용 명령 줄 편집기id3ren
-id3 태그 및 이름 바꾸기