abcde が Can’t call method “count” on an undefined value at /usr/bin/abcde-musicbrainz-tool line 99.No Musicbrainz match. でCDDBの問い合わせに失敗する時

abcde (A Better CD Encoder: リッピングのフロントエンド) が

Can't call method "count" on an undefined value at /usr/bin/abcde-musicbrainz-tool line 99.
No Musicbrainz match.

でCDDBの問い合わせに失敗する時は以下のパッチを当てれば良いです。

upstreamでもバグレポートがされています。 https://abcde.einval.com/bugzilla/show_bug.cgi?id=62

--- a/abcde-musicbrainz-tool    2016-01-18 23:06:40.000000000 +0900
+++ b/abcde-musicbrainz-tool    2017-06-02 20:15:16.000000000 +0900
@@ -96,7 +96,8 @@
         if ($a_artist =~ /Various Artists/) {
             $va = 1;
         }
-   if ($release->release_event_list()->count() > 0) {
+   if ($release->release_event_list() and
+            $release->release_event_list()->count() > 0) {
        my @events = @{$release->release_event_list()->events()};
        $rel_year =  substr($events[0]->date(),0,4);
    }

(おまけ) abcde って何?

いわゆるCDのリッピングソフトです。正確にはリッピングのフロントエンドです。

shで書かれているので、コンソール(ターミナルエミュレータ)で動きます。GUIではないです。この点がマニアックです。

起動するとCDのデータからCDDBに問い合わせて、気に入らなければアーティスト・曲目情報を修正して、リッピング・mp3などへの変換が始まります。

エンコーダーさえあれば複数のフォーマットに変換できます。ぼくはflacとmp3の二種類に変換しています(ロスレスとロッシーのフォーマット)。

使い方はCDをドライブに入れて

~% abcde

でOKです。このコマンドだけでリッピングが開始されるのがとてもお手軽で気に入っています。ぼくは2000年くらいからずっと使い続けています。

かなり細かく設定が可能で、CDのリッピング・ソフト(cdda2wav, cdparanoiaなど)、エンコーダー(lame, flac, vorbisなど)、IDタグソフトを個別に指定できます。変換後のファイル名の書式も指定できます。

唯一の不満と言えば、ジャケットは自動で入れてくれないことです。ジャケットの登録だけは別に作業が必要です。 ぼくの場合、最終的なタグ編集はEasyTAG を使っています。

いまどきはCDを買う人も少ないでしょうから、あまり需要がないのでしょうね。結構便利なツールですよ。