Last.fmにはお気に入りの曲をLoveトラックに登録できる機能があるが、とりあえず付けてはいるものの、今ひとつ使い道が無かった。しかしsynchronise last.fm playback statsを使えば、Last.fmに記録されている曲情報(Loveトラック・再生回数)を取得し、Title Formatとして出力することができる。
必要なコンポーネントとファイル
- synchronise last.fm playback stats (playcount sync.zip)
- Soft Playlists
- WSH Panel Mod
- Custom Database (※ 取得した曲情報を外部データベースに記述したい場合)
導入の手順
- Last.fmから自分のライブラリ情報を取得するにはAPIキーが必要になるので、API – Last.fmから発行する。
- Soft PlaylistsのLast.fm User、Last.fm Passwordを設定する。
- playcount sync.zipを解凍して、中にあるscript、imagesフォルダをfoobar2000のインストールフォルダにコピーする。
- WSH panel modを配置してcode.txtをインポートし、ユーザーネームとAPIキーを設定する。
これでLast.fmから再生中の曲情報を取得して、ファイルのタグに直接、またはCustom Databaseで外部データベースに記述される。
外部データベースを使う場合はCustom Databaseで設定する項目が多いので、同梱してある設定ファイル(foo_customdb.dll.cfg)を使うように進められている。しかし、コンポーネント別に設定ファイルを生成するのはfoobar2000 v1からなので、それ以前のバージョンでは手動で項目の設定が必要になる。
まずFieldsタブに以下の値を作る。
LFM_U・T・H・THは再生回数の値で、それぞれ一・十・百・千の位になる。
Display | Name | Key (Custom) |
---|---|---|
LASTFM_LOVED_DB | LASTFM_LOVED_DB | %artist%,%title% |
LFM_U | LFM_U | %artist%,%title% |
LFM_T | LFM_T | %artist%,%title% |
LFM_H | LFM_H | %artist%,%title% |
LFM_TH | LFM_TH | %artist%,%title% |
次にActionタブに以下の値を作る。
Updateの項目は全てContext menuになる。
Display | Field | Set Value |
---|---|---|
Customdb Love 1 | LASTFM_LOVED_DB | 1 |
Customdb Love 0 | LASTFM_LOVED_DB | |
CustomdbU 0 | LFM_U | 0 |
CustomdbU 1 | LFM_U | 1 |
CustomdbU 2 | LFM_U | 2 |
CustomdbU 3 | LFM_U | 3 |
CustomdbU 4 | LFM_U | 4 |
CustomdbU 5 | LFM_U | 5 |
CustomdbU 6 | LFM_U | 6 |
CustomdbU 7 | LFM_U | 7 |
CustomdbU 8 | LFM_U | 8 |
CustomdbU 9 | LFM_U | 9 |
CustomdbU Erace | LFM_U | |
CustomdbT 0 | LFM_T | 0 |
CustomdbT 1 | LFM_T | 1 |
CustomdbT 2 | LFM_T | 2 |
CustomdbT 3 | LFM_T | 3 |
CustomdbT 4 | LFM_T | 4 |
CustomdbT 5 | LFM_T | 5 |
CustomdbT 6 | LFM_T | 6 |
CustomdbT 7 | LFM_T | 7 |
CustomdbT 8 | LFM_T | 8 |
CustomdbT 9 | LFM_T | 9 |
CustomdbT Erace | LFM_T | |
CustomdbH 0 | LFM_H | 0 |
CustomdbH 1 | LFM_H | 1 |
CustomdbH 2 | LFM_H | 2 |
CustomdbH 3 | LFM_H | 3 |
CustomdbH 4 | LFM_H | 4 |
CustomdbH 5 | LFM_H | 5 |
CustomdbH 6 | LFM_H | 6 |
CustomdbH 7 | LFM_H | 7 |
CustomdbH 8 | LFM_H | 8 |
CustomdbH 9 | LFM_H | 9 |
CustomdbH Erace | LFM_H | |
CustomdbTH 0 | LFM_TH | 0 |
CustomdbTH 1 | LFM_TH | 1 |
CustomdbTH 2 | LFM_TH | 2 |
CustomdbTH 3 | LFM_TH | 3 |
CustomdbTH 4 | LFM_TH | 4 |
CustomdbTH 5 | LFM_TH | 5 |
CustomdbTH 6 | LFM_TH | 6 |
CustomdbTH 7 | LFM_TH | 7 |
CustomdbTH 8 | LFM_TH | 8 |
CustomdbTH 9 | LFM_TH | 9 |
CustomdbTH Erace | LFM_TH |
そしてWSH panel modで外部データベースへの記述を有効にし、foobar2000を再起動すれば、customdb_sqlite.dbに取得した曲情報が記述される。
ファイルのタグに記述する場合のTitle Format
- Loveトラック
$ifequal(%LASTFM_LOVED%,1,♥,)
- 再生回数
%LASTFM_PLAYCOUNT%
外部データベースに記述する場合のTitle Format
- Loveトラック
$ifequal(%LASTFM_LOVED_DB%,1,♥,)
- 再生回数
$replace(%LFM_TH%%LFM_H%%LFM_T%%LFM_U%,?,)
WSH panel modには再生中の曲がLoveトラックならばハートアイコンが表示され、そうでなければ再生中の曲をLoveトラックにするボタンが表示される。
なお、取得した曲情報が書き込まれるのは初期設定では曲再生中の0:10のタイミングなので、変えたい場合は次のコードの2行目の数値をいじればよい。
function on_playback_time(time) {
if(t.eval() == 10) {
if(old_userloved != 1 && auto_love == 1 && auto_love_condition.eval() == 1) {
fb.trace("Playcount sync: Auto-love is on. Triggering soft_playlists....");
fb.RunContextCommand(love_command);
}
sync();
}
}
今回はsynchronise last.fm playback statsを使うためにSoft Playlistsを入れたが、他にもLast.fmから曲情報を取得して様々なプレイリストを作成する機能などもあるので、単体でも優秀なコンポーネントだ。
また、有料メンバーならばLast.fm Radioを有効に使えて、更に連携を強化できるだろう。
2 Coment:
foobar2000のカスタマイズにFirefoxの設定情報、どれもとても洗練されて勉強になりました
foobar2000への移行を考えている初心者なのですが、code.txtというのは外部からダウンロードして用意するものなのでしょうか?それとも自身で作成するものなのでしょうか?
もしよければ教えていただけませんでしょうか?
これは便利ですね。参考にします。もっと分かり易ければ…なお
Post a Comment