Playlist Tree と playback statistics custom で複数回再生に対応した再生履歴を表示する

本当は wiki とかに書こうと思ってたんだけど、ちょっとバグ?っぽいものを利用してる感があるのでここにチラ裏として書きます。

Playlist Tree で再生履歴を表示させようと思ったら %last_played% あたりを使うのがよくあるパターンだと思いますが、これだと最後に再生した日時しか表示されなくて不便なんですよね。例えば3回連続で同じ曲を再生したのに履歴に表示されるのは1回分だけとか。

まあ Navigator とか使えばすむ話かも知れませんが、普段 Playlist Tree 使ってる人には Playlist Tree で履歴を表示できるってのも便利かもしれません。

というわけで、複数回の再生も記録する方法を紹介します。ただし使うには playback statistics custom でプレイスタンプ機能を利用し、再生日時を記録していることが条件です。

Playlist Tree で新しいクエリを作り、Format 欄に

$puts(a,%%)

$left($get(a),4)|

$substr($get(a),6,7)|

$substr($get(a),9,10)|

$substr($get(a),12,19) / %title%[ @ %artist%]

と書けば表示できます。

sort by name after populating ... にはチェックを入れてください。更新するときにモッサリするので注意してください。

仕組みはいたって簡単で、%% を使って表示させようというわけです。ただそのままではうまく表示できないので $puts() をわざわざ使ってます(使わないとフリーズ)。何でこれだとうまく動作するかはよく分かりません。$puts() を使うと %play_stamp% の値が変化しないからかな?ちなみに Playlist tree mod の方でも試してみましたが、こちらでも使えるようです。Album List では %<...>% の動作の仕方が違うようで使えません。

なお、上のスクリプトではフォルダごとに分けて表示されますが、フォルダごとに分けたくない場合は

%% / %title%[ @ %artist%]

などのようにしてももちろん構いません。

私の環境では
Label

History (@format<$num(%_itemcount%,5)> count) [@format<$replace($cwb_wdhms($sum('%_length_seconds%')),d, d,wk, wk)>]

Format

$puts(a,%%)

$left($get(a),4) '('@quote<@format<$num(%_itemcount%,5)>> count')' '['@quote<@format<$replace($cwb_wdhms($sum('%_length_seconds%')),d, d,wk, wk)>>']'|

$substr($get(a),6,7) '('@quote<@format<$num(%_itemcount%,4)>> count')' @quote<@format<'['%_play_length%']'>>|

$substr($get(a),9,10) '('@quote<@format<$num(%_itemcount%,3)>> count')' @quote<@format<'['%_play_length%']'>>|

$substr($get(a),12,19) / %title%[ @ %artist%]

として、総再生数や、年、月、日ごとに合計何回再生したかを表示させています。こっちは更新時にくぁなりモッサリするのでロースペックな方は気を付けて下さい。なおこれの方では cwb_hooks が必要です。