Twitterでつぶやき

これは Twitter(ツィッター)というウェブ・サービスです


2008年 9月 15日 (月) 敬老の日

現在聴いている,または最近聴いた音楽の情報(より正確に言うと,聴いたものとして Last.fm に送信された情報)を twitter に投稿するのに,これまで twitterfeed を利用していたのだが,昨夜はサーバーが不調だったようで(しばらく 503 エラーだった)うまく機能していなかった。

そもそも twitterfeed については,最短で 30分おきに最大五つまでの更新情報を捕捉してそれをまとめて一回で twitter に投稿するというものゆえ,Last.fm の更新を追わせるにはやや緩慢に過ぎて不満があったところ,これを機に何かいい他の方法はないかと探して,Stream your Last.fm updates to Twitter という記事を見つけた。要は perl のスクリプトなのだが,もともと私のマシンには perl 環境(ActivePerl)が入っているし試してみようと思った次第。以下は備忘録。

  1. 上記 Stream your Last.fm updates to Twitter に掲載されているコードを,必要事項(各ユーザー名やパスワード)を適宜書き換えた上で perl スクリプト(.pl ファイル)として任意の場所に保存(名前も任意だが,例えば上記サイトにもあるように “twitter_fm.pl” とか。)。文字コードは euc でもいいかもしれないが,カスタマイズ次第では(私は “♪” を表示させるようにしたため)utf-8n で保存すべし(ただし冒頭の “use utf8;” の宣言は不要みたいだ)。
  2. いちいちコマンドを叩くのも面倒なので,コマンドの内容 “perl C:\foo\twitter_fm.pl”(例はスクリプトを C ドライブの foo フォルダに保存した場合)をバッチ・ファイル(.bat)にして,適当な名前をつけてやはり任意の場所に保存(例えば,C:\bar に “Lastfm2Twitter.bat” とか)。
  3. 上記 Lastfm2Twitter.bat を実行すればあとはずっと perl が起動して,twitter_fm.pl 内で設定した時間(標準では 3分)ごとに Last.fm の更新をチェックして twitter に投稿してくれる。ただこれだとコマンド・プロンプトが開きっぱなしになるので,これを避けるため VB スクリプトを使う(参考記事)。すなわち,以下のコードを VB スクリプト・ファイル(例えば “Lastfm2Twitter.vbs”)として任意の場所に保存。

    Dim WShell
    Set WShell = WSCript.CreateObject("WScript.Shell")
    WShell.Run "C:\bar\Lastfm2Twitter.bat",0 '非表示で実行

    あとはこの VBS へのショートカットを作ってクリックするなり,当該ショートカットをスタートアップに入れてコンピューターの起動と同時に実行したり,お好みで(ずっと動かしていてもメモリ使用量は 7.5KB ぐらいなのでほとんど気にならない)。タスクバーに表れないが,タスクマネージャのプロセスに “perl.exe” があれば動いていると思ってよい(終了したい場合もここから)。

最終的に VB スクリプトを使うのであれば上記手順 2 のバッチは要らないかもしれないが(VBS に直接コマンドを書けばいいのかな),まあこれでちゃんと動いているのでよかろう。

ビジネス・ニュース・クリップ

  • 日経 MJ 11面: 携帯販売、不振続く 7月29%減 8月32%減 - 通信事業者 高機能機種で打開狙う iPhone失速感も
  • 日経 MJ 16面: “ブームの予感” 大人だって働く車に夢中 - 現場ツアー盛況/ミニカー売れ筋上位
  • 日経 MJ 9面: アンパンマンと共演! バンダイが手作り絵本 - パソコン使い画像取り込み

見たもの・聴いたもの


この記事に付されたタグ


この記事へのコメント [3件]

※ 新しいものが下に表示されます。 現在コメントは受け付けていません。

関堂幸輔
Posted on 2008-09-17, 15:28:39 JST

上記のスクリプト,職場のネット環境で情報を送れなくてハマった……。ほどなくわかった理由は,職場ではプロキシ・サーバーを使うから。もともとプロキシの切り替えは Proxomitron でしているので,localhost の 8080 ポートさえ経由できればいいのだけど……。

で,いろいろ調べて,次のコードを元の perl スクリプトに追加した。

$lastfm_ua->proxy('http', 'http://localhost:8080');

$twitter_ua->proxy('http', 'http://localhost:8080');

もうちょっとスマートにまとめて記述する方法があるのかもしれないが,とりあえずこれで動いたのでよし。

参照サイト: “戯術者の日記” http://www.jp-z.jp/changelog/2007-07-26.html

関堂幸輔
Posted on 2008-09-17, 18:30:22 JST

スクリプトをいじっていて気づいたのだけど,要するにこれは 「Last.fm の情報を読み取って変更があれば Twitter に送る」 という作業をしているだけなので,別に音楽を再生しているマシン自体でしなければならないことはないのだな。

となると別に研究室のデスクトップ・マシンに perl 入れる必要なかったのだけど,まぁ CGI のチェックとかもできるし,いいか……。

駄菓子
Posted on 2010-02-26, 23:36:25 JST

AudiosurfというゲームがLast.fmに対応しているのでそれを経由してtwitterに今プレイしてる曲名をPostできないものかと色々探していたらこんなやり方があるなんて!うまくいきました本当にありがとうございました。


この記事へのトラックバック

  • 続・Last.fm 2 TwitterM4 (メディア批評日記) : 2008年 9月 26日 (金) 15日付記事 “Last.fm 2 Twitter” の続き。この Perl を動かす VB スクリプトを導入して...

トラックバックの送信

  • あなたのブログがトラックバック機能を備えている場合は記事作成画面等から上記 URL に Ping を送信してください。
  • 手動でトラックバックする場合は下記のフォームからあなたのブログおよびその記事に関する情報を送信してください。手動送信時には別のウィンドウが開きます。元のウィンドウ(記事表示画面)をリロードしてトラックバックが反映されていれば処理がなされています。別に開いたウィンドウは送信処理後は閉じても構いません。


.