今度は、動画のアップロードをする場合。
Videos: insert | YouTube Data API (v3) | Google Developers
前回のプログラムで、成功した場合、UPLOAD_IDがレスポンスで返ってきたとおもう。
これを動画本体のアップロードで使う。
main.cppで、
ファイルサイズも取得するけど、ファイル自体は開いたままで、
UPLOAD_IDとACCESS_TOKENでリクエスト作成。
ファイルから読み込んだバイト列をそのままSSLソケット側に書き込む。
WSAStartup success! soc = 532 connect success! ctx = 00262c38 ssl = 0027c808 SSL_set_fd success! SSL_connect success! SSL_write written = 430 HTTP/1.0 200 OK X-GUploader-UploadID: xxx ETag: "m2yskBQFythfE4irbTIeOgYYfBU/rtjWaqrIEi2nVbogja7NHmlLzCI" Vary: Origin Vary: X-Origin X-Goog-Correlation-Id: lc1OynhT080 Content-Type: application/json; charset=UTF-8 Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: Mon, 01 Jan 1990 00:00:00 GMT Date: Mon, 11 Sep 2017 07:16:12 GMT Content-Length: 865 Server: UploadServer Alt-Svc: quic=":443"; ma=2592000; v="39,38,37,35" { "kind": "youtube#video", "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/rtjWaqrIEi2nVbogja7NHmlLzCI\"", "id": "lc1OynhT080", "snippet": { "publishedAt": "2017-09-11T07:12:01.000Z", "channelId": "UCYE61NR1q3chykYt1BY2m_w", "title": "test.mp4", "description": "videos/insert", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/lc1OynhT080/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/lc1OynhT080/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/lc1OynhT080/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "st bg", "tags": [ "test", "video" ], "categoryId": "22", "liveBroadcastContent": "none", "localized": { "title": "test.mp4", "description": "videos/insert" } } } 続行するには何かキーを押してください . . .
成功すると、こんなレスポンス。
サーバ側も、
ここから、
こうなって、
情報もちゃんと付加されてる。
このようにアップロードできる。
Sample/youtube/videos/insert_upload/src/videos at master · bg1bgst333/Sample · GitHub