1

我通过浏览器将视频上传到 Youtube 的 API 接口成功通过了所有 OAUTH2 身份验证,并返回表单的 URL 和 TOKEN 以将视频发布到 Youtube。当上传似乎完成时,它会重定向到我的“nexturl”页面,其 URI 类似于:

http://mynexturl.com?status=400&error=FAILED

而且 Youtube 上没有视频。

当在不同的浏览器上登录不同的 Google 帐户时,就会发生这种情况。我的代码曾经可以工作,然后它开始偶尔出现此错误,现在它总是出现此错误。

我能找到的关于这个问题的唯一论坛参考是没有答案的。真的很感激任何想法。

仅供参考,我没有使用框架。所有代码都是本地开发的。

这是生成的基本形式。我相信 URL 编码没问题。

<form name="vidform"
action="https://uploads.gdata.youtube.com/action/FormDataUpload/AIwbFAT3znCsDfC_Be
5RiqMy2L4xpBqTsxrRbG5Q7iiKJweoXHl3b6UyVM9fLJTNTuKAptTiQY0hrVzYArABtKOGgCAxNYHa8BbsjQrWokwSp51HUckPI56amf4xeaMask7G9B5Gttsh
?nexturl=http%3A%2F%2Fmydomain.com%2Fcs%2Fbuild%2Fquilt%2Fyoutube_fin%2Ehtm
%3Ffinish%3DY%26state%3D2220" method="post" enctype="multipart/form-data" 
onsubmit="return chkYouFile(this);">
<input name="file" type="file">
<input type="hidden" name="token" value="AIwbFARRkinNm2Hey6JBCgxIO3mReNLQDoxLAoDBK_jq6FT1-epwRt2tfRECeONF9QQRHcLJsxKAzbHIQEvNJC-c1P1aqoFvK1jTkl4U94vMgdHGrkDuSAfKws1IU-GpkvNeMYVoI223lL3r0FP28KU4xef3K6Hmg6TJjyf9u4HxoIW7FHqQybZuGRpR3mdfkVfl0pObgfX9uj2J1m2DwPnWU0kOBw0Q4hezzczitsEi1b_cE-E7o0miJP2xTLB-kZTv6aPSvTtbgr7w-57Q09igVcOrhsrmu9tfhnHWTi6peXdvu5BeRnoWAXhz_ZKeH_Q0FN2-SzW0">
<input id="UpNow" type="submit" value="Upload Now!" style="font-weight:bold;font-size:11pt;">
</form>  

它正在正确返回到 nexturl 页面。

4

2 回答 2

0

一个可能的原因是 nexturl 参数不是 URL 编码的,nexturl 参数的值应该是 URL 编码的

于 2012-10-26T12:59:02.187 回答
0

在我撕扯头发的某个时刻,我在nexturl URL的末尾添加了一个 &(与号) 。也就是说,nexturl 字段/值来自:

nexturl=http://mydomain.com/youtube_fin.htm?finish=Y&state=2220

至:

nexturl=http://mydomain.com/youtube_fin.htm?finish=Y&state=2220&

(为了清楚起见,我特意展示了上面的非 url 编码版本)

上传立即开始工作。不再有 error=FAILED 消息。有趣的是,我删除了 & 以查看它是否会再次开始失败,但事实并非如此。所以我仍然对此感到最困惑,但它现在正在工作,所以我很高兴。

于 2012-10-27T03:42:40.230 回答