YouTube API浏览器基于进度栏的上传



我已经成功实现了"基于Ajax Progress Bar"的" YouTube API浏览器上传"(得益于最近实现了YouTube API的CORS支持" uploads.gdata.youtube.com"团队)

但是,有一个障碍...在YouTube API的最终响应中,它试图通过发送一个位置重定向标头(302)...

来重定向浏览器。

虽然这可能在非Ajax方案下的预期工作,但在Ajax请求中不允许使用...

我看到了3个可能的解决方案,其中任何一个都可以正常工作...

  1. ,如果YouTube API允许使用一种简单地恢复刚刚上传的视频的"视频ID",而无需在任何地方重定向我忽略了API中有任何这样的选择?

  2. 或AJAX中是否有办法告诉请求,不要遵循重定向标题?

  3. 或有什么方法,通过这些方式,我可以在AJAX请求方案中"允许"跨域重定向?(重定向是由youtube.com启动的,而用户在另一个域,因此跨域重定向问题)

这将不支持GDATA API的V1/V2。

对于YouTube数据API V3,我有一个粗糙但有效的示例,请访问https://youtube-api-samples.googlecode.com/git/yt/yt-upload-javascript/index.html(源文件在https://code.google.com/p/youtube-api-samples/source/source/browse/#git/yt-upload-javascript)显示上传流,使用Google 登录按钮来处理Oauth 2(如果您愿意,可以使用普通的OAuth 2浏览器客户端流)并且具有进度指示器。它还显示了如何在上传后进行视频处理状态进行轮询,并在处理后将结果视频嵌入到页面上。

这是一个已知的问题,该问题应该是固定的,但实际上不是固定的。基于浏览器的上传方法(仅在V2上可用)并不能完全支持CORS。您唯一的选择是通过服务器上传视频(很可能),或要求用户注册Google帐户并登录使用V3 API(不好)上传视频。

最新更新