videos/insert(upload)

今度は、動画のアップロードをする場合。

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