解決済み: Python API は v1 のみをサポートしますが、watch later は v2 で追加されました。ソース
の解決策: 「実験的な」API v3 を使用する
Youtube API を使用して [後で見る] プレイリストにアクセスしようとしています。以下は私が使用しているコードです。
import gdata.youtube
import gdata.youtube.service
yt_service = gdata.youtube.service.YouTubeService()
yt_service.ssl = True
yt_service.developer_key = 'REDACTED'
yt_service.email = 'REDACTED'
yt_service.password = 'REDACTED'
yt_service.ProgrammaticLogin()
playlist_uri = 'https://gdata.youtube.com/feeds/api/users/default/watch_later?v=2'
playlist_video_feed = yt_service.GetYouTubePlaylistVideoFeed(uri=playlist_uri)
for playlist_video_entry in playlist_video_feed.entry:
print playlist_video_entry.title.text
次のエラーが表示されます。
Traceback (most recent call last):
File "Youtube.py", line 21, in <module>
playlist_video_feed = yt_service.GetYouTubePlaylistVideoFeed(uri=playlist_uri)
File "/Library/Python/2.6/site-packages/gdata/youtube/service.py", line 393, in GetYouTubePlaylistVideoFeed
uri, converter=gdata.youtube.YouTubePlaylistVideoFeedFromString)
File "/Library/Python/2.6/site-packages/gdata/service.py", line 1108, in Get
'reason': server_response.reason, 'body': result_body}
gdata.service.RequestError: {'status': 400, 'body': 'Invalid request URI', 'reason': 'Bad Request'}
URI https://gdata.youtube.com/feeds/api/users/default/watch_later?v=2が無効のようです。ただし、これはGoogleドキュメントで使用されると述べられているものです。私はそれを間違って使用していますか、それともここに別の問題がありますか?
さらに、URI を変更するhttp://gdata.youtube.com/feeds/api/playlists/63F0C78739B09958
と、期待どおりに動作します。