2012年3月26日月曜日

Google Data APIがいまいち使いこなせない


hitoisとYouTubeの連携をしようとしているのだけど、プレイリストのフィードを取得までは出来るのだが、フィードのパースで苦労している。

というか、勝手にパースされていて、通常のオブジェクトのようにアクセスできるはずなのに、どうしてもプレイリストのサムネイルが取得できない。

user = users.get_current_user()
playlistVideos = []

client = gdata.youtube.service.YouTubeService()
gdata.alt.appengine.run_on_appengine(client)

feed = client.GetYouTubePlaylistFeed(username=user)
for playList in feed.entry:
    playlistVideos.append({
        "title" : playList.title.text,
        "url" : playList.link[1].href,
        "description" : playList.description.text,
        "thumbnail" : playList.media.thumbnail[1].url
    })


これだとエラーになってしまう。

AttributeError: 'YouTubePlaylistEntry' object has no attribute 'media'

フィードは取れているわけだから、DOMとかでサムネイルのURLを取ろうと思えば取れるけど、一度パースされているわけだから、再度それをDOMに展開して取得というのはどうも気にいらない。

どうやったらうまくいくのだろう。