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