Youtube API批处理以获取用户的订阅

时间:2013-02-05 07:04:28

标签: jquery youtube-api

我正在尝试获取用户的订阅列表。你一次只能获得50个,所以我想创建一个批处理来一次完成所有操作。

我正在使用Jquery和ajax发送这样的POST请求:

var query = "<feed xmlns='http://www.w3.org/2005/Atom'";
query += "xmlns:media='http://search.yahoo.com/mrss/'";
query += "xmlns:batch='http://schemas.google.com/gdata/batch'"
query += "xmlns:yt='http://gdata.youtube.com/schemas/2007'>";

for(var i = 0; i < loop; ++i)
{
    query += '<entry>';
    query += '<id>http://gdata.youtube.com/feeds/api/users/' + youtube_username + '/subscriptions?max-results=50&start-index=' + ((i * 50) + 1) + '&alt=json</id>';
    query += "<batch:operation type='query'/>";
    query += '</entry>';
}

query += '</feed>';

$.ajax({
    type: 'POST',
    url: 'http://gdata.youtube.com/feeds/api/users/batch?v=2',
    data: query,
    contentType:"application/atom+xml",
    dataType:"xml",
    success: function(data){
        alert(data);
    }
});

当我执行此请求时,我收到错误400(错误的网址请求)。然后我尝试使用此URL输入条目:

query += '<id>http://gdata.youtube.com/feeds/api/users/' + youtube_username + '/subscriptions/</id>';

但我收到了这个错误:

  

元素类型“Feed”必须后跟属性规范“&gt;”或“/&gt;”。

谢谢你,祝你有愉快的一天, 凯文

1 个答案:

答案 0 :(得分:1)

“批处理请求支持查询(GET)操作的订阅源条目,但不支持整个订阅源。例如,如果您要发送播放列表的批处理请求,则可以包含一个或多个条目,以检索有关各个播放列表条目的信息但是,批处理请求无法检索包含这些条目的播放列表供稿。“,如https://developers.google.com/youtube/2.0/developers_guide_protocol_batch_processing中所述

我更喜欢用这种方式解释:

另一个例子是视频,例如:

curl -vLk -d“http://www.w3.org/2005/Atom'xmlns:media ='http://search.yahoo.com/mrss/'xmlns:batch ='http://schemas.google.com/gdata/batch'xmlns: yt ='http://gdata.youtube.com/schemas/2007'&gt; https://gdata.youtube.com/feeds/api/videos/EWKcFuluXpo“-X POST”https://gdata.youtube.com/feeds/api/videos/batch?v=2

用户/频道的信息示例,例如:

curl -vLk -d“http://www.w3.org/2005/Atom'xmlns:media ='http://search.yahoo.com/mrss/'xmlns:batch ='http://schemas.google.com/gdata/batch'xmlns: yt ='http://gdata.youtube.com/schemas/2007'&gt; http://gdata.youtube.com/feeds/api/users/GoogleDevelopers“-X POST”http://gdata.youtube.com/feeds/api/users/batch?v=2

所以,我不认为通过批处理可以查询订阅列表,而不知道首先是条目ID。