API仕様hereに続いて、curlを使用してYouTubeにバッチアップロードをしようとしています。要するに、XML形式のメタデータとContent-Typeのapplication/atom+xml; charset=UTF-8
のマルチパートPOSTリクエストが必要で、その後にビデオデータが続きます。curl:マルチパートPOST(YouTube API)のファイルごとのコンテンツタイプ
(upl.xmlとupl.mkvからの映像からメタデータをフェッチする)私の現在のコマンドラインは、このようなものになります。私は--trace
で送信されているの実際の要求をチェックすると
curl -s -F "[email protected]" -F "[email protected]" -H 'GData-Version: 2' -H 'Authorization: GoogleLogin auth=<AUTH>' -H 'Slug: upl.mkv' -H 'X-GData-Key: key=<KEY>' http://uploads.gdata.youtube.com/feeds/api/users/default/uploads
を、それが見えます両方のファイルが正しい順序で送信されているものの、メタデータのContent-Typeがapplication/octet-stream
に設定されている場合と同様です。アップロードは正常に完了しますが、YouTubeは動画の処理を拒否します。
私は--data
、--data-ascii
、--form-string
などでupl.xmlを提出しようとした場合、私はちょうどそれがダウンして、誤ったコンテンツタイプのだと信じて私をリードして他のエラーの品揃えを取得。メタデータを無視してビデオファイルを送信するだけでうまくいきますが、残念ながらこれで問題は解決しません。
私はここに何か不足していますか?そうでない場合は、libcurlを打ち破ることなくこれを行うことが可能ですか?