Youtubevideo使用javascript上传

我正在尝试使用javascript制作基于浏览器的youtubevideo上传器。

我在这里使用示例代码

在我上传video后进行身份validation后,对youtube服务器的POST请求永远不会结束,video也不会上传。

这也发生在谷歌提供的示例中 。

这是我用来上传video的function:

$('#upload').click(function(){ $('#upload').attr('disabled', true); var title = escapeXmlEntities($('#title').val()); var description = escapeXmlEntities($('#description').val()); var category = escapeXmlEntities($('#category option:selected').val()); var xmlBody = '   ' + title + ' ' + description + ' ' + category + '  '; showMsg("Submitting metadata of video to get upload token."); $.ajax({ dataType: 'xml', type: 'POST', url: 'https://gdata.youtube.com/action/GetUploadToken', contentType: 'application/atom+xml; charset=UTF-8', processData: false, headers: generateYouTubeApiHeaders(), data: xmlBody, success: function(responseXml) { var xml = $(responseXml); var nextUrl = window.location.href; var submissionUrl = xml.find('url').text() + '?nexturl=' + encodeURIComponent(nextUrl); var token = xml.find('token').text(); showMsg("Uploading Video..."); $('#form_upload').attr('action', submissionUrl); $('').attr({ type: 'hidden', name: 'token', value: token }).appendTo('#form_upload'); $('#form_upload').submit(); }, error: function(jqXHR) { showMsg('Metadata submission failed: ' + jqXHR.responseText); $('#upload').removeAttr('disabled'); $('#upload').val('Upload'); } }); }); 

以下是对youtube服务器发出的最后一个POST请求的firebug屏幕截图,该请求永无止境。

错误画面

此外,我想获得video上传的进度,并使用javascript显示它,但我不知道如何实现它我google搜索并找到了许多方法,但没有什么是成功的我。

现在支持在YouTube Data API v3中使用CORS进行可恢复上传。

https://youtube-api-samples.googlecode.com/git/yt-upload-javascript/index.html上的一个粗略但有效的示例( https://code.google.com/p/youtube上的源文件-api-samples / source / browse /#git%2Fyt-upload-javascript )显示上传流程,使用Google+登录按钮处理OAuth 2(如果您使用的话,可以使用正常的OAuth 2浏览器客户端流程喜欢)和进度指示器。 它还显示了如何在上传后轮询video处理状态,并在处理后将结果video嵌入到页面中。