我通过浏览器将视频上传到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页面。
答案 0 :(得分:0)
一个可能的原因是nexturl参数不是URL编码的, nexturl参数的值应该是URL编码的
答案 1 :(得分:0)
在我撕裂头发的某个时刻,我添加了一个&amp; (&符号)到 nexturl 网址的末尾。也就是说,nexturl字段/值来自:
nexturl=http://mydomain.com/youtube_fin.htm?finish=Y&state=2220
为:
nexturl=http://mydomain.com/youtube_fin.htm?finish=Y&state=2220&
(为了清晰起见,我故意在上面显示非url编码的版本)
上传立即开始工作。没有更多错误=失败的消息。有趣的是,我删除了&amp;看它是否会再次开始失败,但事实并非如此。所以我仍然对此感到困惑,但它现在正在工作,所以我很高兴。