4

Youtube Api V3を使用して、特定のチャネルから新しいビデオの更新を取得するインテントをトリガーする単純なビデオ アプリを開発しています。

search.setKey(Constant.DEVELOPER_KEY);
search.setChannelId(channelID);
search.setOrder("date");
search.setPublishedAfter(new DateTime(yesterday));
search.setType("video");
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/publishedAt)");
search.setMaxResults((long) 50);
SearchListResponse searchResponse = search.execute();

List<SearchResult> searchResultList = searchResponse.getItems();

問題:更新されていない結果のリストが返されます。

URL の例: https://www.googleapis.com/youtube/v3/search?part=snippet&order=date&type=video&channelId=UC52X5wxOL_s5yw0dQk7NtgA&key=your_api_key&maxResults=50

問題の説明:

  1. この動作を数日間監視していると、最初に、YouTube Web サイト自体にアクセスすると、このチャネルで見つけることができる他のビデオが常にあることがわかりました。動画が検索結果に表示されるまで、さらに 30 ~ 60 分かかります。

  2. 遅延は実際には問題ありませんが、私が理解できないのは、ビデオ 1、ビデオ 2、およびビデオ 3 があり、1 が 2 の前にアップロードされ、2 が 3 の前にアップロードされているということです。 (日付の降順に並べ替えるために指定した URL で) 3-2-1、または 2-1、または 1 のみの結果を期待します。2 は、おそらくさらに 30 分後に到着します。つまり、遅延が問題である場合、少なくとも適切な順序でリストに表示されるはずですか?

期待される解決策:正確に日付順に並べ替えられた検索結果を取得して、ビデオを再クエリしようとするたびに、最後のビデオを取得した後に公開されたものを取得する必要があります。私の例のように、昨日からすべてを取得する方法ではありません。

お時間をいただきありがとうございます。私は本当に解決策を探しています。

4

1 に答える 1

0

まず、API の V3 は現在実験段階であり、サインオフされるまで使用することはお勧めしません。

第 2 に、私はクライアント ライブラリのファンではなく、API 呼び出しを直接行うことを好みます。そうすれば、呼び出しが希望どおりに行われていることを確認できます。たとえば、公開された順に私のチャンネルから動画を取得する簡単な呼び出しを次に示します: http://gdata.youtube.com/feeds/api/videos?orderby=published&author=ahmednuaman

今のところこのメソッドを使用し、インタラクティブな API デモ ( http://gdata.youtube.com/demo/index.html ) を見て、呼び出しを作成し、テストがデータを返していることを確認することをお勧めします。あなたが望む。

于 2013-05-10T13:36:19.230 に答える