2013-04-30 1 views
4

Je développe une application vidéo simple qui déclenchera une intention d'aller chercher toute nouvelle mise à jour de vidéos à partir d'un canal spécifique, en utilisant Youtube Api V3.Youtube API ne pas retourner les résultats mis à jour

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(); 

Problème: Il me renvoie une liste de résultats non mis à jour.

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

Description du problème:

  1. Pour quelques jours de suivi ce comportement, je trouve que, d'une part, il y a toujours une autre vidéo que je pouvais trouver dans ce canal en allant sur le site Web de Youtube lui-même. Et la vidéo a juste besoin de 30 ou 60 minutes supplémentaires pour être dans mes résultats de recherche. Eh bien le retard est vraiment bien pour moi, ce que je ne comprends pas est, parfois, dire qu'il ya vidéo 1, vidéo 2, et vidéo 3, où 1 est téléchargé avant 2, et 2 est téléchargé avant 3. Donc, dans le cas ci-dessus je m'attendrais à un résultat de (dans l'URL que j'ai spécifié pour commander par date desc) 3-2-1, ou 2-1, ou seulement 1. Mais ce que je reçois est étrangement, 3-1. 2 viendra plus tard à peut-être une autre demi-heure. Je veux dire, si le retard est un problème, au moins il devrait apparaître dans la liste avec un bon ordre?

Solution prévue: Pour avoir un résultat de recherche qui seront triés par date précise, de sorte que chaque fois que j'essaie de actualisez les vidéos, je viens d'obtenir ce qui est publié après ma dernière vidéo récupéré. Pas la manière comme dans mon exemple de tout avoir depuis hier.

Merci pour votre temps, je suis vraiment à la recherche d'une solution.

+0

Pour tous ceux qui ont besoin d'une capture d'écran de ce qui s'est passé, veuillez vous reporter à la section des commentaires sur la réponse d'Ahmed. –

Répondre

0

Donc d'abord V3 de l'API est actuellement expérimentale et je ne recommanderais pas de l'utiliser jusqu'à ce qu'il soit signé et que non. Deuxièmement, je ne suis jamais un fan des bibliothèques clientes et préfère faire des appels API directement, de cette façon vous pouvez vous assurer que l'appel est fait comme vous le souhaitez. Ainsi, par exemple, voici un simple appel pour récupérer les vidéos de ma chaîne dans l'ordre où elles ont été publiées: http://gdata.youtube.com/feeds/api/videos?orderby=published&author=ahmednuaman

Je vous recommande d'utiliser cette méthode pour l'instant et d'avoir un aperçu de la démo de l'API interactive (http://gdata.youtube.com/demo/index.html) pour préparer votre appel et confirmer que les tests renvoient les données que vous désirez.

+0

Merci d'avoir répondu, mais à la première tentative d'essayer cette API, j'ai toujours un résultat incorrect. C'est ce que je vois de YouTube http://i.imgur.com/KAfxP3l.png, et voici ce que j'ai de l'API http://i.imgur.com/dHG5gEP.png. Comme vous pouvez le voir, mon premier résultat pointe en fait vers une deuxième vidéo sur la chaîne. C'est l'appel de l'API que j'ai fait http://gdata.youtube.com/feeds/api/videos?orderby=published&author=AssociatedPress –

+0

Ah ça pourrait être un cas de restrictions concernant la distribution de la vidéo: http: // apiblog. youtube.com/2011/12/understanding-playback-restrictions.html?m=1 –

+0

Pas vraiment, comme vous pouvez le voir, j'ai aussi mentionné que j'ai utilisé l'appel API direct si vous ne l'avez pas remarqué. Ces vidéos seront éventuellement incluses dans la liste des résultats, juste après. Il en va de même pour votre exemple d'appel d'API, la vidéo exclue plus tôt, est maintenant incluse –

Questions connexes