2012-12-06 4 views
5

Ich habe 10 Youtube-Kanäle, die ich mag und ich möchte die neuesten Videoinformationen für jeden Kanal erhalten. Im Moment bin ich dabei 10 verschiedene Anrufe wie diese:Batch-Anfrage mit youtube api - Holen Sie sich die neuesten Video-Informationen von mehreren Kanälen

http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?v=2&alt=jsonc&start-index=1&max-results=1 

I unter Verwendung eines Batch-Anforderung, diese 10 Anrufe mit einem einzigen ersetzen wollen.

Ich habe versucht dies:

String xml = "<feed xmlns='http://www.w3.org/2005/Atom' xmlns:batch='http://schemas.google.com/gdata/batch'>" + 
      " <batch:operation type='query'/>" + 
      " <entry>" + 
      "  <id>http://gdata.youtube.com/feeds/api/videos/VIDEO_ID_1</id>" + 
      " </entry>" + 
      " <entry>" + 
      "  <id>http://gdata.youtube.com/feeds/api/videos/VIDEO_ID_2</id>" + 
      " </entry>" + 
      ... 
      " <entry>" + 
      "  <id>http://gdata.youtube.com/feeds/api/videos/VIDEO_ID_10</id>" + 
      " </entry>" + 
      "</feed>"; 

HttpClient httpClient = new DefaultHttpClient(); 
HttpPost httpPost = new HttpPost("https://gdata.youtube.com/feeds/api/videos/batch?v=2"); 
StringEntity se = new StringEntity(xml); 
se.setContentType("text/xml"); 
httpPost.setEntity(se); 
HttpResponse response = httpClient.execute(httpPost); 

Ich bin eine XML mit nützlichen Daten im Httpresponse-Objekt zu bekommen.

Aber wenn ich die 10 neuesten Videos Informationen erhalten möchte, werde ich die videoId nicht kennen.

Weiß jemand, wie man das erreicht?

Antwort

1

Sie können im Anforderungstext keine Stapelanforderung mit 10 verschiedenen http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?v=2 URLs erstellen.

Sie müssten http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?v=2&max-results=1 10 Mal, einmal mit jedem USERNAME anfordern.

Wenn Sie einen serverseitigen Prozess haben, der herausfinden möchte, wann neue Videos in einen bestimmten Kanal hochgeladen werden, können Sie entweder PubSubHubbub oder SUP verwenden, um dieses Szenario effizienter zu behandeln. Da Ihre Frage mit android getaggt wurde, gehe ich davon aus, dass Sie diese Client-Seite trotzdem tun.

+0

Ok! Danke für deine Antwort! –

Verwandte Themen