iTunesで再生中の曲をTwitterに垂れ流す

id:ymotongpooSongBirdのTwitterプラグインでやっているとのこと。しかしTwitterに垂れ流すためだけにiTunesやめたりと大袈裟なことするのもアレなので僕は素直にiTunesをいじる方法を探したら、ADCでそれっぽいのが見つかったので適当にほげほげしていたらできた。Mac的に何やってるのかは全然理解していない。

任意の文字列をTwitterに垂れ流すのは、以前やったリアルつぶやきをTwitterに投稿するという小ネタと同様、今回もpython-twitterを使えば簡単。というわけでコード

from Foundation import *
from ScriptingBridge import *
import time, twitter

iTunes = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")
prev = current = iTunes.currentTrack().name()
api = twitter.Api("kuenishi", "***********")

while(True):
    if (current != prev): # new track has came!
        post = "now playing: \"%s\" by %s" % (current, iTunes.currentTrack().artist() )
        status = api.PostUpdate(post)

    prev = current
    current = iTunes.currentTrack().name()
    time.sleep(5)

ちゃんとsimplejsonも入れてね。

本当はiTunesにプラグイン機構みたいなのがあって曲が変わった瞬間をコールバックか何かでフックできるはずなんだけど、そんなの関係ねぇ、ってか分からんです。エロい人が教えてくれたところで別に改善するわけでもないのですが、Macの各種アプリケーションはこんな風に庶民でもhackできるようになっているのがいいですね。

関連