インターネット経由でのカバーアート取得について
今まで食指があまり動いていなかった部分でしたが、
やっとやる気になりまして一気に拡張できそうかなぁと思っています。
現状の取り組みについて、ご紹介します。
※参考情報webuiでのMusicBrainzID対応について
各楽曲のタグにアルバムのmbidタグが保存されており、mpdで本タグの認識がサポートされている場合はwebuiで活用可能なようにwebui側のプログラムを拡張しました(具体的には楽曲変更時に当該楽曲のアーティスト名・アルバム名・総再生時間などの情報と共にmbidを各端末に返すので、mbidを使用した問い合わせが可能になります)。
ただし、私の手元ではまだ動作確認中です。
(MusicBrainzPicardでタグの書替した楽曲をsmpdのライブラリに転送し、楽曲情報を更新しましたが、smpd は mbid を返してくれませんでした。
後程 Arch Linux AoE の mpd での動作確認と「他のタグエディタ」でそもそもmbidが格納されているのかの確認を行います。)
補足:MusicBrainzPicardでMusicBrainzサーバから情報を取得して書込した楽曲ファイルのうち、mp3ファイルについては以下のタグが追加されることが判明しました(それ以外のフォーマットの楽曲については追って解析)。
| 名称 | 解説 |
|---|---|
| MusicBrainz Album Artist id | アルバムアーティストのid |
| MusicBrainz Album id | アルバム(リリース)のid |
| MusicBranz Album Release Country | リリースされた国(2文字コード) |
| MusicBrainz Album Status | 不明(手元ではofficialと記載) |
| MusicBrainz Album Type | 不明(手元ではalbumと記載) |
| MusicBrainz Artist id | アーティストのid |
| MusicBrainz Release Group id | 不明 |
| MusicBrainz Release Track id | 不明(恐らく個別トラック(楽曲)のid) |
※webui-plusでのカバーアート表示優先度について
カバーアートは css の background-image 属性を使用しており、当該属性内の url文 書込順序に基づき表示されます。
(以下のリスト昇順に表示される。
当然1〜5はフラグが有効な場合はbackground-image属性内にurl文が存在しますが、無効時は存在しません。)
| 順位 | 画像名 |
|---|---|
| 1. | folder.jpg |
| 2. | Folder.jpg |
| 3. | cover.jpg |
| 4. | (アーティスト名) - (楽曲名).jpg |
| 5. | 楽曲ファイル組込画像(/RAM/cover-art.jpg) |
| 6. | インターネットサービス経由で取得したカバーアートのURL |
| 7. | noimage*.jpg ←webui初期起動時などに表示されるお姉さんの画像 |
| また、各インターネットサービスは最終的には5種類のサービスから選択可能ですが、そのうち1個のみ使用できます(インターネットサービスを全く使用しない選択肢もあり) |
※インターネットサービスでのアルバム特定用パラメータについて
どのサービスでも「アーティスト名」+「アルバム名」の2つが必要ですが、今回より「アーティスト名」は「アルバムアーティスト名」が存在する場合は、こちらを使用するアルゴリズムを試験採用しています。
-
last.fm
従来よりサポートしていましたが、追加で解説します。
アルバム情報を取得する album.getinfo で返った結果より カバーアートの URL を抽出して表示します。
当該 API の必須パラメータは「アーティスト名+アルバム名」(従来より継続サポート)と「MusicBrainzのID (mbid) 単独指定」の2種類があります。
今回より、mbidもサポートすることとしました(mbidが正確ならば、間違いないカバーアートが取得可能)。 -
CoverArtArchive
Musicbrainz と internet archive の合同作業成果です。
一旦MusicBrainzのAPIでアルバム情報を取得してmbidを抽出してから、CoverArtArchiveのURLにmbidを埋め込みすればカバーアートは表示されます。 -
Discogs
インディレーベルの販売等で実績がありますが、実はカバーアートが取得できます。
アルバムの指定・カバーアートの抽出方法は last.fm とほぼ同等(アルバム情報をクエリすると、返された結果にカバーアートのURLがふくまれるため、これを抽出)です。Discogs はmbid には対応しません。 -
fanart.tv
内部的には mbid でアーティスト・アルバムを管理しています。
ただし、fanart.tv 単独では last.fm のようなクエリ(検索)のAPIがないため若干の工夫が必要です。
(現在検討中ですが、MusicBrainzで情報検索 → 得たmbidでfanart.tvからカバーアート取得でしょうか?) -
Spotify
独自IDでアーティスト・アルバムを管理しています。
IDクエリ用のAPI + 指定IDを使用したアルバム情報取得方法は判明しましたが、認証の都合で「トークン」が必要です(アプリのIDとパスワードから一時的にアクセスを許可する別パスワードを生成)。
トークンには有効期限(3600秒=1時間)があるため、切れる前に再取得の手続きをするなどちょっとだけハードルが高そうです。
という訳で、今の実装では Spotify を除くインターネットサービスは実装し、利用者に希望のものを選んでもらう方向性でリリースしたいと思います。

上記の仕様に対応するため、web-uiのプラグインを上図のように拡張いたします(fanart.tvがグレーアウトしているのは開発中のため)。








