1

ブラウザを介して YouTube に動画をアップロードするための API インターフェイスは、すべての OAUTH2 認証を正常に通過し、YouTube に動画を投稿するためのフォームの URL と TOKEN を返します。アップロードが終了したように見えると、次のような URI を持つ「nexturl」ページにリダイレクトされます。

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

考えられる理由の 1 つは、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 に答える