我正在尝试使用YouTube v2 API批量删除用户的YouTube收藏夹中的视频。 (另见https://developers.google.com/youtube/2.0/developers_guide_protocol_batch_processing)
批量发布视频到收藏夹很有效;我也可以毫无问题地从收藏夹中删除单个视频(这排除了身份验证问题)。
我的请求正文如下,其中VIDEOID1
和VIDEOID2
是在相应视频xml中找到的<yt:favoriteId>
ID:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns='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'>
<batch:operation type="delete"/>
<entry><id>VIDEOID1</id></entry>
<entry><id>VIDEOID2</id></entry>
</feed>
这是我得到的回复,其中UserID
ofcourse是用户的userID,BatchID
是服务给出的BatchID:
<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom'>
<id>https://gdata.youtube.com/feeds/api/users/USERID/favorites/batch/BATCHID</id>
<updated>2014-01-31T14:50:54.948Z</updated>
<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#favorite'/>
<title>Batch Feed</title>
<entry xmlns:batch='http://schemas.google.com/gdata/batch'>
<id>VIDEOID1</id>
<updated>2014-01-31T14:50:54.948Z</updated>
<title>Error</title>
<content>Invalid entry Id/Uri</content>
<batch:status code='400' reason='Invalid entry Id/Uri'/>
</entry>
<entry xmlns:batch='http://schemas.google.com/gdata/batch'>
<id>VIDEOID2</id>
<updated>2014-01-31T14:50:54.949Z</updated>
<title>Error</title>
<content>Invalid entry Id/Uri</content>
<batch:status code='400' reason='Invalid entry Id/Uri'/>
</entry>
</feed>
它为我尝试删除的视频指出Invalid entry Id/Uri
,而当我通过具有相同ID的单一删除请求删除它时,它可以正常工作。
是批量删除不受支持的收藏夹中的视频,还是我遗漏了什么?
答案 0 :(得分:0)
由于这个问题和答案:Batch deleting videos using YouTube API and HTTpWebRequest
,我已经开始工作了诀窍是使用用户userId
而不是default
,并用来完成id
的视频网址。
批处理网址如下所示:
https://gdata.youtube.com/feeds/api/users/USERID/favorites/batch?v=2&alt=json
请求如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns='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'>
<batch:operation type="delete"/>
<entry>
<id>https://gdata.youtube.com/feeds/api/users/USERID/favorites/VIDEOID1?v=2</id>
</entry>
<entry>
<id>https://gdata.youtube.com/feeds/api/users/USERID/favorites/VIDEOID2?v=2</id>
</entry>
</feed>