TitaniumでYoutubeRSS取得から再生まで
YoutubeのチャンネルRSSを受信し、YouTubeプレーヤーで再生するまで。
- YQL(Ti.Yahoo.yql)で 'SELECT * FROM feed WHERE url="'+youtubeRSSURL+'"' みたいなクエリをキックする。
- コールバックの中で
rssitems = d.data.entry
みたいな感じで取り出し、
rssitems[i].updated
とか
rssitems[i].title.content
とかで情報取得。 - 動画を選択した際は、
rssitems[選択されたインデックス].link[]
の配列の中をスキャンして、「http://m.youtube.com/」で始まるURLを
rssitems[選択されたインデックス].link[i].href
から取得する。 - 取得したURLから「v=」で始まるビデオIDを取得(JavaScriptの文字列処理なんで割愛)。
- 下のような感じでインテントをキックする。
var vpInt = Ti.Android.createIntent({ action: Ti.Android.ACTION_VIEW, data: 'vnd.youtube:' + V_ID, packageName: 'com.google.android.youtube' }); Ti.Android.currentActivity.startActivity(vpInt);
ビデオIDの取得がちと面倒ではあるけど、それさえ取得できれば上記のインテント処理一発で専用プレーヤーが起動してくれるっぽい。
もちろん、上記のインテントを理解するyoutubeのアプリが入っていないとエラーになる。
そういう場合に備えて、取得したm.youtube.comのURLをWebViewで開く処理も準備しておいたほうが新設だろうなぁ、とか。