TitaniumでYoutubeRSS取得から再生まで

YoutubeのチャンネルRSSを受信し、YouTubeプレーヤーで再生するまで。

  1. YQL(Ti.Yahoo.yql)で 'SELECT * FROM feed WHERE url="'+youtubeRSSURL+'"' みたいなクエリをキックする。
  2. コールバックの中で
    rssitems = d.data.entry
    みたいな感じで取り出し、
    rssitems[i].updated
    とか
    rssitems[i].title.content
    とかで情報取得。
  3. 動画を選択した際は、
    rssitems[選択されたインデックス].link[]
    の配列の中をスキャンして、「http://m.youtube.com/」で始まるURLを
    rssitems[選択されたインデックス].link[i].href
    から取得する。
  4. 取得したURLから「v=」で始まるビデオIDを取得(JavaScriptの文字列処理なんで割愛)。
  5. 下のような感じでインテントをキックする。
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で開く処理も準備しておいたほうが新設だろうなぁ、とか。