<p>我相信您需要使用YouTube API的2.0版本,各种特定语言的API,包括Python,目前只提供1.0版本。但是,更新一个视频以使用裸机2.0操作来更改访问控制并不难,即使您正在通过特定于语言的API执行其他所有操作。<a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_updating_and_deleting_videos.html" rel="nofollow noreferrer">The docs</a>(对于2.0 API)解释:</p>
<blockquote>
<p>To update a video, send an HTTP PUT
request to the URL identified in the
video entry's <code><link></code> tag where the <strong>rel</strong>
attribute value is <strong>edit</strong>:</p>
</blockquote>
<pre><code><link rel='edit' type='application/atom+xml'
href='http://gdata.youtube.com/feeds/api/users/USER_ID/uploads/VIDEO_ID'>
</code></pre>
<blockquote>
<p>The body of the PUT request is an Atom
XML entry that contains information
about the video. You can include any
of the following elements and their
subtags in your request. Required
elements are marked with an asterisk
(*).</p>
</blockquote>
^{pr2}$
<blockquote>
<p>Note that excluding an element will
delete the information that already
exists for that video.</p>
</blockquote>
<p>…因此,您必须重复上载时提供的一些信息(以避免删除该信息),以便能够添加<code>yt:accessControl</code>元素。在</p>
<p>上传的文档有一个<a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_uploading_videos.html" rel="nofollow noreferrer">complete example</a>标题、<code>multipart-related</code>格式和您将要发送的XML(根据文档的<a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_uploading_videos.html#Setting_Access_Controls" rel="nofollow noreferrer">this part</a>添加访问控制标记),但示例是<code>POST</code>,而不是<code>PUT</code>,因为它上载的是视频,而不是更改其信息(和访问控制)。要通过Python的标准库发送GET和POST以外的HTTP方法,请使用<a href="http://docs.python.org/library/httplib.html?highlight=httplib#httpconnection-objects" rel="nofollow noreferrer">httplib</a>:生成一个<code>HTTPConnection</code>,然后调用其<a href="http://docs.python.org/library/httplib.html?highlight=httplib#httplib.HTTPConnection.request" rel="nofollow noreferrer">request</a>方法,其中<code>PUT</code>作为第一个参数,然后是URL(</em>主机之后的<em>部分,请参阅Python联机文档本节末尾的示例),正文(Youtube 2.0API文档中的示例部分</p>
<pre><code> f93dcbA3
Content-Type: application/atom+xml; charset=UTF-8
<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom"
</code></pre>
<p>最后是标题)。在</p>
<p>是的,它绝对没有gdataapi那么方便,但是,在gdataapi更新为支持2.0api功能之前,我怀疑这是最好的方法。主要的替代方法是调整PythonAPI源代码(找到<a href="http://gdata-python-client.googlecode.com/svn/trunk/src/gdata/youtube/" rel="nofollow noreferrer">here</a>),以添加您需要的2.0位功能,但是,我觉得这项工作要做得更多。在</p>