我希望能够做到这一点:
$ pwd
/home/$USER/music/ripped_music/Monty_Python-Instant_Record_Collection
$ ls
01.The_Executive_Intro.mp3
...
16.The_Lumberjack_Song.mp3
$ mystery_command_or_script .
$ ls
01.The_Executive_Intro.mp3
...
16.The_Lumberjack_Song.mp3
album_cover.jpg
$
在 Rhythmbox、totem 等软件的某个部分,已经有人实现了这个功能。我希望自己也能实现这个功能。
我不需要帮助来编写脚本。我只是想知道是否有类似 CDDB 的专辑封面。(抓取 albumart.org 是目前可行的解决方案。)
答案1
甘氨酸是您要查找的 CLI 程序。一旦您编译并安装它,此脚本就会执行您想要的操作
#!/bin/ksh
if [[ $# -eq 0 ]]; then
echo "Usage: $(basename $0) music_file.mp3"
exit 1
fi
FILE="$1"
ALBUM="$( id3v2 --list "$FILE" |sed -n 's/TALB[^:]*: *//p' )"
ARTIST="$( id3v2 --list "$FILE" |sed -n 's/TPE1[^:]*: *//p' )"
glyrc cover --artist "$ARTIST" --album "$ALBUM"
编译 glycorc 如下作者的指示你必须先
sudo apt-get install libsqlite3-dev libcurl3-dev cmake libglib2.0-dev
答案2
当我尝试做同样的事情时,我发现了 Coverlovin,https://launchpad.net/coverlovin/+download对我来说效果还不错。
感谢 webupd8 发出此信号。
http://www.webupd8.org/2011/02/recursively-download-cover-art-for-all.html
答案3
答案4
目前这种方法可行。除非出现某种“官方”方法,否则 nathwill 的方法才是最佳选择。
#!/bin/ksh
if [[ $# -eq 0 ]]; then
echo "Usage: $(basename $0) music_file.mp3"
exit 1
fi
FILE="$1"
SEARCHTERM="$( \
/usr/bin/id3v2 --list "$FILE" |sed -n '/^Album *: */ {
s///
s/ *Year: *\([^,]*\),.*$/ \1/
s/ */+/g
p
}' )"
TOP="http://www.albumart.org/index.php?searchkey="
BOT="&itempage=1&newsearch=1&searchindex=Music"
URL="$TOP""$SEARCHTERM""$BOT"
IMGURL="$(wget -O - "$URL" |grep 'View larger image' |head -1 |sed 's/^.*<a href="\([^"]*\)" *title="View larger image".*$/\1/')"
wget -O cover.jpg "$IMGURL"