有馬総一郎のブログ

(彼氏の事情)

2021年11月22日 00:01:17 JST - 3 minute read - Linux

コマンドライン(CLI)でCDを取り込む(リッピングする)ツール`abcde`

音楽配信が当たり前、CDを買ったことがない世代が成人しているご時世だが、それでもCDを買ってる私なので abcdeの使い方についてメモしておく。

インストールしたら、設定ファイルを自分の好みに合わせておく。

$ cp /etc/abcde.conf ~/.abcde.conf
$ nvim ~/.abcde.conf

設定ファイル

変更点は以下のとおり。

--- /etc/abcde.conf	2021-05-07 17:30:17.000000000 +0900
+++ /home/arimasou16/.abcde.conf	2021-11-21 22:27:38.179062772 +0900
@@ -10,16 +10,17 @@
-CDDBMETHOD=cddb
+CDDBMETHOD=musicbrainz,cddb
 
-#CDDBURL="http://freedb.freedb.org/~cddb/cddb.cgi"
+CDDBURL="http://gnudb.gnudb.org/~cddb/cddb.cgi"
 
-#CDDBPROTO=6
+CDDBPROTO=6
 
-#SHOWCDDBFIELDS=year,genre
+SHOWCDDBFIELDS=year,genre
 
-#FLAC=flac
+FLAC=flac
 
-#VORBISCOMMENT=vorbiscomment
+VORBISCOMMENT=vorbiscomment
 
-#GLYRC=glyrc
+GLYRC=glyrc
 
-#FLACOPTS="--silent"
+FLACOPTS="--silent -8"
 
-#ID3TAGV=id3v2.4
+ID3TAGV=id3v2.3
 
-#ACTIONS=cddb,read,encode,tag,move,clean
+ACTIONS=cddb,getalbumart,embedalbumart,read,encode,tag,move,clean
 
-#CDROM=/dev/cdrom
+CDROM=/dev/cdrom
 
-#OUTPUTDIR=`pwd`
+OUTPUTDIR="$HOME/Music/"
 
-#WAVOUTPUTDIR=`pwd`
+WAVOUTPUTDIR=/tmp
 
-#OUTPUTTYPE=ogg
+OUTPUTTYPE=flac
 
-#OUTPUTFORMAT='${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
+OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM}_${TRACKFILE}'
 
-#ALBUMARTFILE="cover.jpg"
-#ALBUMARTTYPE="JPEG"
+ALBUMARTFILE="folder.jpg"
+ALBUMARTTYPE="JPEG"
 
-#mungefilename ()
-#{
-#	echo "$@" | sed -e 's/^\.*//' -e 's/ /_/g' | tr -d ":><|*/\"'?[:cntrl:]"
-#}
+mungefilename ()
+{
+	echo "$@" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]"
+}
 
-#EJECTCD=y
+EJECTCD=y

思った以上に自動でやってくれる感じである。タグ編集する?複数アーティスト?取得した画像ファイルのURL埋め込む?みたいな質問ぐらい。

flacにおいては、foobar2000でのタグ編集と比べての差分はTrack Numberのゼロサプレス(埋め)ぐらいかな?CDDBというタグが付いてるが、これもタグ編集時にDISCID=9d0a910bをコメントアウトすれば良さそうな気がする。

タグもEDITORで設定されたエディタも編集できるのはありがたい。これは大きな利点。

タグ編集

タグ編集内容

# xmcd CD database file
#
# Track frame offsets:
#	150
#	14353
#	33934
#	50146
#	66036
#	84688
#	102631
#	121537
#	140005
#	156429
#	179128
#
# Disc length: 2709 seconds
#
# Submitted via: cddb-tool 0.4.7
#
#blues,classical,country,data,folk,jazz,newage,reggae,rock,soundtrack,misc
#CATEGORY=misc
DISCID=9d0a910b
DTITLE=Inglorious / Heroine
DYEAR=2021
DGENRE=Hard Rock
TTITLE0=Queen Of The Night
TTITLE1=Barracuda
TTITLE2=Midnight Sky
TTITLE3=Nutbush City Limits
TTITLE4=Bring Me To Life
TTITLE5=Fighter
TTITLE6=I'm With You
TTITLE7=I Hate Myself For Loving You
TTITLE8=I Am The Fire
TTITLE9=Time After Time
TTITLE10=Uninvited
EXTD=
EXTT0=
EXTT1=
EXTT2=
EXTT3=
EXTT4=
EXTT5=
EXTT6=
EXTT7=
EXTT8=
EXTT9=
EXTT10=
PLAYORDER=

遭遇したエラー

まずは、CD読取機器が接続されてない、もしくはパスが/dev/cdromでない場合、出るエラー。

[ERROR] abcde: CDROM has not been defined or cannot be found
$ ls /dev/cdrom
lsd: /dev/cdrom: No such file or directory (os error 2).

ACTIONSgetalbumart,embedalbumartなどを追加しながらglyrcをインストールしてないと、出るエラー。yay -S glyrcで解決。

[ERROR] abcde: glyrc is not in your path.
[INFO] Define the full path to the executable if it exists on your system.

CDDBMETHODmusicbrainzを明示的に指定した場合、出るエラー。デフォルトはmusicbrainzとなっているのだけど、指定してないと出ない。

Can't locate MusicBrainz/DiscID.pm in @INC (you may need to install the MusicBrainz::DiscID module) (@INC contains: /usr/lib/perl5/5.34/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/5.34/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/5.34/core_perl /usr/share/perl5/core_perl) at /usr/bin/abcde-musicbrainz-tool line 18.
BEGIN failed--compilation aborted at /usr/bin/abcde-musicbrainz-tool line 18.
[ERROR] abcde: abcde-musicbrainz-tool failed to run; ABORT

AUR (en) - abcde-musicbrainz-meta

@dpflug try to rebuild both perl-musicbrainz-discid and perl-webservice-musicbrainz, maybe there was a Perl update since you installed them

にあるとおり、下記2コマンドで解決した。

yay -S perl-musicbrainz-discid
yay -S perl-webservice-musicbrainz

参考サイト

以下、参考にしたサイト。