YouTube 動画からすべてのコメント (最大 999) を取得したい。送りたいURLです
http://gdata.youtube.com/feeds/api/videos/1EEFydL6ooA/comments?start-index=1&max-results=50
この URL を送信すると、com.google.gdata.util.ParseException [Line 1, Column 279] Invalid root element, expected (namespace uri:local name) of ( http://www.w3.org/2005/ Atom:entry )、見つかりました ( http://www.w3.org/2005/Atom:feed
実際、私のURLが「http://gdata.youtube.com/feeds/api/videos/1EEFydL6ooA」のとき、コメントがあったとしても25件ありました。ただし、これは 1 つのビデオに関するものであるため、max-results と start-index パラメーターを設定できませんでした。私のコードは次のとおりです。
String str = "http://gdata.youtube.com/feeds/api/videos/" + videoId
+ "/comments";
YouTubeQuery youtubeQuery = new YouTubeQuery(new URL(str));
youtubeQuery.setMaxResults(50);
youtubeQuery.setStartIndex(1);
String videoEntryUrl = youtubeQuery.getUrl().toString();
VideoEntry videoEntry = service.getEntry(new URL(videoEntryUrl),
VideoEntry.class);
if (videoEntry.getComments() != null) {
String commentUrl = videoEntry.getComments().getFeedLink()
.getHref();
System.out.println(commentUrl);
CommentFeed commentFeed = service.getFeed(new URL(commentUrl),
CommentFeed.class);
for (int i = 0; i < commentFeed.getEntries().size()
&& commentFeed.getEntries().get(i) != null; i++) {
String author=commentFeed.getEntries().get(i).getAuthors().get(0)
.getUri().substring(41)
String commentId=commentFeed.getEntries().get(i).getId().substring(47);
String comment=commentFeed.getEntries().get(i).getPlainTextContent();
parseException が発生するのはなぜですか? おそらく、このコードは VideoEntry オブジェクトに応じて機能し、解析はこの方法で行われるためです。CommentEntryのようなものはありますか?もしあれば、どのように初期化できますか?
私の例外は「 com.google.gdata.util.ParseException: [Line 1, Column 101152, element yt:state] Invalid value for attribute : 'name' 」ではないことに注意してください。これはライブラリが間違っているためです。
ありがとう