hoge diary - June 12, 2007

[PC環境改善] iPod の再生履歴を Last.fm へ送信する Ruby スクリプト

iPod で再生した曲の履歴を Last.fm へ送信するツールが何かないかなぁ,と探すと,iPod-last.fm bridge というスクリプトがありました.

アーカイブファイルをダウンロードして展開すると,いくつかの Ruby スクリプトが出てきます.

Cygwin 環境で試しました.まず最初に,config.rb を編集する必要があります.

$user_name = 'username'
$user_name = 'secret'
$ipod_paths = [
    "/cygdrive/e/iPod_Control/iTunes"
]
$ipod_timezone_shift = 8

強調で示した部分が今回私が書き換えた箇所です.

日本は GMT+9 ですから,$ipod_timezone_shift は最初 9 に設定していたのですが,iPod 本体の時刻設定が正しいにも関わらず,再生時刻が 1 時間ずれてしまったので,8 にしています.

とりあえず設定完了です.これで get_play_counts.rb を実行します.これを実行すると,以下のように,1 行に 1 曲分のテキストデータ (UTF-8) が得られます.

$ ./get_play_counts.rb
曲1のアーティスト ; 曲1のタイトル ; 曲1のアルバム ; 曲1の長さ ; 曲1の最終再生時刻
曲2のアーティスト ; 曲2のタイトル ; 曲2のアルバム ; 曲2の長さ ; 曲2の最終再生時刻
...
(中略)
...
$

get_play_counts.rb は曲の再生履歴を出力するだけです.これを Last.fm へ送信するには,as_submit.rb を使用します.パイプで渡すだけ.

$ ./get_play_counts.rb | ./as_submit.rb

これであとは待つばかりです.送信に失敗するとリトライしてくれます.

さて,iPod は再生回数と最終再生時刻しか本体に記録しないわけですが,このスクリプトは,再生回数も考慮してくれます.

ただしデフォルトの設定ですと,再生回数を無視するようになっています.これを有効にするには,config.rb の次の行を編集します.

$add_fake_songs_to_make_playcount_match = true

元々は false と書いてありますので,true に変更します.このスクリプトの作者は true に設定しているようです.

なお,clear_play_counts.rb を実行すると,再生履歴をクリアできます.

コメント

名前(何でも可):

テキスト(http:// を含む内容は投稿できません):

トラックバック

トラックバック URI: https://www.pakunet.jp/hoge/trackback/2007061201

トラックバックはありません.


Valid XHTML 1.1! Valid CSS!
© 2004-2009 ぱくちゃん.
Last modified: Thu Nov 01 01:17:21 JST 2007