今度は、動画のアップロードをする場合。
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