【问题标题】:YouTube API integration ASP.NET - upload video with a single pageYouTube API 集成 ASP.NET - 单页上传视频
【发布时间】:2010-10-12 09:08:46
【问题描述】:

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

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

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

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

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

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

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

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

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


更新:

感谢大家的回复。

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

但是,问题仍然存在并且正在收到回复。我真的很感谢所有的帮助,因此,将把这个问题留给任何进一步的讨论。

【问题讨论】:

    标签: c# asp.net youtube-api


    【解决方案1】:
    【解决方案2】:

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

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

    然后您制作一个HttpWebRequest,并将令牌值传递给WebRequest 对象的Create 方法,并将Method 属性设置为Post。然后,您添加上传的视频(请参阅dr evil's answer to "Upload files with HTTPWebrequest (multipart/form-data)" 了解更多相关内容),当您致电GetResponse() 时,您的文件将被提交。

    注意事项:

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

    【讨论】:

    • 是的..这种方法似乎是我们最终做的最接近的方法.. :0)
    【解决方案3】:

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

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

    【讨论】:

    • 是的..我正在考虑将其作为最后的手段.. :( 感谢您的帮助..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2014-05-25
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多