6

我们正在尝试使用 Google YouTube API 直接通过浏览器将视频从我们的网站上传到 YouTube。

该 API 分两步工作,第一步我们需要创建一个包含所有元数据(如标题、标签、描述、类别等)的 Video 对象。然后我们需要向 YouTube 发送带有此对象的请求并生成一个 Token 对象作为回应。这个令牌对象有一个令牌值和一个令牌 URL 作为它的成员。

在第二步中,他们建议我们应该创建一个将 action 属性设置为 Token URL 的表单。这个表单应该有一个文件上传控件和一个以 Token Value 作为其值的隐藏字段。发布此表单后,它会将视频上传到 YouTube。

如果我们将其作为一个两步过程,首先向用户询问元数据,然后将他们重定向到第二页以进行实际视频上传,这将非常有效。但是,我们试图在一个页面中完成此操作,向用户显示为一个步骤。

我们有一个 MasterPage,其中指定了“aspnetForm”,因此我们不能拥有另一个具有runat='server'属性的表单。

我们已经尝试使用 JavaScript/code-behind 修改 aspnetFrom 的 action 属性,但无论我们做什么,它都保持不变。

我们还尝试放置另一个嵌套表单,在收到来自 YouTube 的第一个带有令牌的响应后,其动作标签将设置在按钮单击事件上。但即使这样也行不通,因为在调用此方法时还没有创建表单。

我们已经尝试了几种方法,但似乎都没有奏效。任何关于此的建议都会很棒。

如果您还有任何问题要清楚地了解情况..请告诉我..


更新:

谢谢你们的回应。

我们稍微改变了业务逻辑来解决这个问题。很久以前,我现在还没有寻找解决方案..

然而,这个问题仍然是开放的,并得到了回应。我真的很感谢所有的帮助,因此,将把这个问题留给任何进一步的讨论。

4

3 回答 3

4

http://code.google.com/apis/youtube/2.0/developers_guide_dotnet.html#Direct_Upload

于 2010-01-11T10:08:10.800 回答
2

我将创建一个向用户显示的表单,其中包含元数据的文本字段和视频的文件上传控件。

然后在处理回发的代码中,您可以将元数据提交到 YouTube API 以获取令牌值。

然后,您制作一个HttpWebRequest,并将令牌值传递到对象的Create方法中,并将属性设置为. 然后,您添加上传的视频(有关详细信息,请参阅evil 博士对“使用 HTTPWebrequest(multipart/form-data)上传文件”的回答),当您调用时,您的文件将被提交。WebRequestMethodPostGetResponse()

需要注意的事项:

  1. ScriptTimeout:如果您允许您的用户将大文件上传到 YouTube - 如果您需要一段时间才能传输它,那么您的脚本可能会过早终止。
  2. 带宽:您将同时上传到您的服务器,然后上传到 YouTube - 通过允许用户在两​​步过程中直接上传到 YouTube,您永远不会接触视频,它永远不会靠近您的服务器 -这对您或您的托管服务提供商来说可能是个问题 - 例如,我的主机不会在我的每月带宽中计算通过 FTP 的流量,但确实包括通过网站上传/下载的文件。
于 2010-01-21T10:10:08.220 回答
0

您可以以编程方式发布到 YouTube 表单。我最近修改了http://www.codeproject.com/KB/cs/uploadfileex.aspx上的示例,以编写一些代码,将文件发布到第三方网站作为夜间工作。

这会影响性能,因为文件必须先上传到您的服务器,然后再上传到 YouTube,而不是直接上传到 YouTube,但这是一种选择。

于 2009-03-11T14:31:42.050 回答