有人知道是否可以使用Python API禁用YouTube评级/评论?我知道你可以使用XML请求中的'yt:accessControl'标签来完成它,但我不知道如何手动构建请求。任何帮助将不胜感激:)
答案 0 :(得分:2)
我认为您需要使用2.0版本的YouTube API,而各种语言特定的API(包括Python)目前只提供1.0版本。但是,通过裸机2.0操作更新视频以更改访问控制并不困难,即使您通过特定语言API执行的其他操作也是如此。 The docs(对于2.0 API)解释:
要更新视频,请发送HTTP PUT 请求到中标识的URL 视频条目的
<link>
标记,其中 rel 属性值为编辑:
<link rel='edit' type='application/atom+xml'
href='http://gdata.youtube.com/feeds/api/users/USER_ID/uploads/VIDEO_ID'>
PUT请求的主体是Atom 包含信息的XML条目 关于视频。你可以包括任何 以下要素及其内容 您的请求中的子标签。需要 元素标有星号 (*)。
media:title*
media:description*
media:category*
media:keywords*
yt:accessControl
yt:location
yt:private
georss:where
请注意,排除元素会 删除已经存在的信息 存在该视频。
...因此,您必须重复上传时已经提供的一些信息(以避免删除该信息),以便能够添加yt:accessControl
元素。
上传文档包含complete example标题,multipart-related
格式和您要发送的XML(根据文档的this part添加了访问控制标记) - 但示例是POST
,而不是PUT
,因为它正在上传视频,而不是更改其信息(和访问控制)。要通过Python的标准库发送除GET和POST之外的HTTP方法,请使用httplib:创建HTTPConnection
,然后使用PUT
作为第一个参数调用其request方法,然后URL(部件在主机之后,请参阅Python在线文档本节末尾的示例),body(Youtube 2.0 API文档示例中的部分
--f93dcbA3
Content-Type: application/atom+xml; charset=UTF-8
<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom"
最后是标题。)
是的,它肯定不和GData API一样方便,但是,在更新后者以支持2.0 API功能之前,我确实认为这是最好的方法。主要的替代方案是调整Python API源(找到here)以添加您需要的2.0位功能,但是,在我看来,这似乎是更多的工作。
答案 1 :(得分:0)
评分,评论,列表都是yt:accessControl
的一部分