YouTube API集成ASP.NET – 使用单页上传video
我们正在尝试使用Google YouTube API直接通过浏览器将video从我们的网站上传到YouTube。
API分两步完成,第一步我们需要创建一个Video对象,其中包含标题,标签,描述,类别等所有元数据。然后我们需要将带有此对象的请求发送到YouTube并生成令牌对象作为回应。 此令牌对象具有令牌值和令牌URL作为其成员。
在第二步中,他们建议我们应该创建一个Form,其action属性设置为Token URL。 此表单应具有文件上载控件和隐藏字段,其中标记值为其值。 发布此表单后,会将video上传到YouTube。
如果我们将它作为一个两步过程,首先向用户询问元数据,然后将它们重定向到第二页以进行实际的video上传,这非常有用。 但是,我们尝试在单个页面中完成此操作,向用户显示为单个步骤。
我们有一个MasterPage,其中指定了’aspnetForm’,因此我们不能使用runat='server'
属性的另一个表单。
我们尝试使用JavaScript /代码隐藏来修改aspnetFrom的action属性,但无论我们做什么,它都保持不变。
在收到带有令牌的YouTube的第一个回复后,我们还尝试放置另一个嵌套表单,其操作标记将设置在按钮点击事件上。 但即使这样也行不通,因为在调用此方法时不会创建表单。
我们已经尝试了几种方法,但似乎没有一种方法。任何有关这方面的建议都会很棒。
如果您有任何疑问需要清楚了解情况..请告诉我..
更新:
谢谢你们的回应。
我们稍微改变了业务逻辑以解决问题。 它很久以前了,我现在还没有找到解决方案。
但是,问题仍然是开放的并得到回应。 我非常感谢所有的帮助,因此,我们可以将问题留待进一步讨论。
我将创建一个表单,向用户显示元数据的文本字段和video的文件上载控件。
然后,在处理回发的代码中,您可以将元数据提交到YouTube API以获取令牌值。
然后,您Create
一个HttpWebRequest ,并将令牌值传递给WebRequest
对象的Create
方法,并将Method
属性设置为Post
。 然后添加上传的video(请参阅dr evil的回答“使用HTTPWebrequest上传文件(multipart / form-data)”以获取更多信息),当您调用GetResponse()
您的文件将被提交。
需要注意的事项:
-
ScriptTimeout
:如果您允许用户将大型文件上传到YouTube – 如果您需要一段时间来传输它,那么您的脚本可能会提前终止。 - 带宽:您可以同时上传到您的服务器,然后上传到YouTube进行注册 – 允许用户通过两个步骤直接上传到YouTube,您从不触摸video,而且它永远不会靠近您的服务器 – 对于您或您的托管服务提供商而言,这可能是一个问题 – 例如,我的主机不会在我的月带宽中通过FTP计算流量,但包括通过网站上传/下载的文件。
您可以以编程方式发布到YouTube表单。 我最近修改了http://www.codeproject.com/KB/cs/uploadfileex.aspx上的示例,编写了一些代码,将一个文件发布到第三方网站作为夜间工作。
这会导致性能下降,因为文件必须上传到您的服务器,然后上传到YouTube而不是直接上传到YouTube,但这是一个选项。