前回書いた記事
JScriptで現在再生中の曲をTwitterに投稿する
ここから少し進化してYoutube連携しました。
連携といっても、「曲名」と「歌手名」をキーにYoutubeの検索結果のURLを貼るってだけです。
結局 #nowplaying ってそこで終わってるので何かと連動しなきゃ意味ないなぁ、と思って作りました。
こんな風な投稿。
http://twitter.com/jojonki/status/9965743653
本当はAmazonでやろうとしてたんだけど、Amazon.co.jpがShift JIS。JScriptのencodeURI()は
Unicode変換で固定なのできっぱり諦めますた。
まぁYoutube悪くないな、と思った結果でもあったり。
getShortURL()は結局使ってません。goo.glの短縮URL使おうと思ったけど、Twitterが勝手に
bit.lyにしてくれるし、文字化けめんどいしでやめました。
var url = "http://twitter.com/"; var user = "twitterのID"; var pass = "上記IDのパスワード"; var ytube_url = "http://www.youtube.com/results?search_category=10&search_type=videos&suggested_categories=10&uni=3&search_query="; var methods = { //friends_timeline: "statuses/friends_timeline.json", update: "statuses/update.json" }; function post(data){ var req = WScript.CreateObject("Msxml2.XMLHTTP"); req.open("POST", url + methods.update, false, user, pass); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.setRequestHeader("X-Twitter-Client", "jonkiTunes"); req.setRequestHeader("X-Twitter-Client", "0.1"); req.send("status=" + encodeURIComponent(data)); } function getNowPlayingTweet(){ var iTunesApp = WScript.CreateObject("iTunes.Application"); var track = iTunesApp.CurrentTrack; var name = track.Name; var artist = track.Artist; var ytubeSearchURL = ytube_url + encodeURIComponent(artist + " " + name); //var short_ytubeSearchURL = getShortURL(ytubeSearchURL); var str = "[jonkiのiTunes] " + name + " ♪ " + artist + " " + ytubeSearchURL + " #nowplaying #JScript"; return str; } function getShortURL(longURL){ var url = "http://ggl-shortener.appspot.com/?url=" + longURL; var req = WScript.CreateObject("Msxml2.XMLHTTP"); req.open("GET", url, false); req.send(null); var json_obj = eval("("+req.responseText+")"); return json_obj.short_url; } function init(){ tweet = getNowPlayingTweet(); post(tweet); WScript.Echo(tweet); } init();