YouTube API集成ASP.NET - 使用单页上传视频

Dan*_*han 6 c# asp.net youtube-api

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

API分两步完成,第一步我们需要创建一个Video对象,其中包含标题,标签,描述,类别等所有元数据.然后我们需要将带有此对象的请求发送到YouTube并生成令牌对象作为回应.此令牌对象具有令牌值和令牌URL作为其成员.

在第二步中,他们建议我们应该创建一个Form,其action属性设置为Token URL.此表单应具有文件上载控件和隐藏字段,其中标记值为其值.发布此表单后,会将视频上传到YouTube.

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

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

我们尝试使用JavaScript /代码隐藏来修改aspnetFrom的action属性,但无论我们做什么,它都保持不变.

在收到带有令牌的YouTube的第一个回复后,我们还尝试放置另一个嵌套表单,其操作标记将设置在按钮点击事件上.但即使这样也行不通,因为在调用此方法时不会创建表单.

我们已经尝试了几种方法,但似乎没有一种方法.任何有关这方面的建议都会很棒.

如果您有任何疑问需要清楚了解情况..请告诉我..


更新:

谢谢你们的回应.

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

但是,问题仍然是开放的并得到回应.我非常感谢所有的帮助,因此,对于任何进一步的讨论都会留下问题.

Zha*_*uid 2

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

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

然后,您可以使用传递到对象方法中的令牌值创建HttpWebRequest,并将属性设置为。然后添加上传的视频(请参阅邪恶博士对“使用 HTTPWebrequest 上传文件(多部分/表单数据)”的回答以了解更多详情),当您调用时,您的文件将被提交。CreateWebRequestMethodPostGetResponse()

需要注意的事项:

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