Go + anaconda でツイッターにビデオをアップロード

メモ。

github.com/ChimeraCoder/anaconda は、media_category に現時点では対応していない。
仮にこのパラメーターを指定すると、アップロードが非同期になる。docs/upload-finalize

append は1つ5MBに制限されているので、大きなビデオファイルを取り扱うときは5MB毎に分割してあげる必要がある。 docs/upload-append

// e.g.
mediaMaxLen := 5 * 1024 * 1024 // 5MB
segment := 0
for i := 0; i < totalBytes; i += mediaMaxLen {
    var mediaData string
    if i+mediaMaxLen < totalBytes {
        mediaData = base64.StdEncoding.EncodeToString(bytes[i : i+mediaMaxLen])
    } else {
        mediaData = base64.StdEncoding.EncodeToString(bytes[i:])
    }
    if err = api.UploadVideoAppend(media.MediaIDString, segment, mediaData); err != nil {
        break
    }
    segment += 1
}
if err != nil {
    log.Fatal("Failed to UploadVideoAppend")
}

サンプル