はじめに
動画共有サイトのYouTubeが公開しているAPIを利用しやすくするために、C#のラッパークラスを作成します。
YouTube API
YouTubeが公開しているAPIについては、下記を参照してください。
対象読者
- C#およびネットワークプログラミングが分かる。
- ウェブサービスを利用したマッシュアップに興味がある。
YouTubeのAPIの分析
YouTubeが提供するAPIは以下のものがあります。
- get_profile
- list_favorite_videos
- list_friends
- get_detail
- list_by_tag
- list_by_user
- list_featured
- list_by_related
- list_by_playlist
- list_popular
- list_by_category_and_tag
それぞれのAPIによって取得できるXMLのデータの種類はいくつかあります。取得できるXMLのデータには共通部分があります。例えばレスポンス情報を格納するurl_response
タグは全ての種類のXMLデータに含まれています。
添付したファイルの中にAPI・「list_featured」を呼び出した際に取得できるXMLデータをテキストファイルに出力したものがあります(YouTubeSimple.txtファイル)。
このファイルの中から開発者にとって有用な部分を取り出すと
<video> <author>SteveAgee</author> <id>oc9q1H6Y6QM</id> <title>VIDEO BLOG #2 - HATS</title> <length_seconds>99</length_seconds> <rating_avg>3.00</rating_avg> <rating_count>58</rating_count> <description>a blog about my hats. have fun</description> <view_count>653</view_count> <upload_time>1163973051</upload_time> <comment_count>42</comment_count> <tags>hats video blog steve agee stupid waste</tags> <url>http://www.youtube.com/?v=oc9q1H6Y6QM</url> <thumbnail_url> http://sjc-static12.sjc.youtube.com/vi/oc9q1H6Y6QM/2.jpg </thumbnail_url> <embed_status>ok</embed_status> </video>
の部分となります。
APIの中には同じデータが取得できるものもあり(例えば、list_featuredとlist_popular)、全てのAPIについて分類すると4種類になります。ここでは、「UserProfileRecord」「FriendRecord」「ListRecord」「DetailRecord」というように命名します。また、それぞれに含まれる属性は以下の図のようになります。
APIと取得できるデータの種類の対応は次のとおりです。
これらの結果セットのうち、例としてlist_featuredとget_detailの結果セットをDataSetに読み込んだ場合のDataSetスキーマ図を以下に示します。
Visual Studioを持っているのであれば、ウォッチウィンドウを利用するとスキーマを調べやすいと思います。
今回の記事ではlist_featuredを利用したときを例にして説明をしていきます。