twitterで投稿ボタンをサイトに設置したいのですが、そのツィートに動画を埋め込みたいと思っています。twitter
cardではなく、動画そのものを埋め込んで投稿したいと思っています。  
動画自体はサーバー上にあるものではなく、ユーザーがポストする形にしたいです。  
やり方ご存知の方、ご教示お願いします。
CC BY-SA 4.0
2019-06-15T09:23:36.097
55807
2019-06-15T10:35:30.833
2019-06-15T10:16:48.093
8593
8593
question
twitter
twitter動画付き投稿ボタン
Twitter API の `media/upload` エンドポイントを用いることで、画像、動画や GIF
アニメーションなどのメディアオブジェクトをアップロードすることが出来ます。

`media/upload` エンドポイントを使い動画をアップロードする手順は、以下のようになっています。

  1. [`INIT` コマンド](https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload-init)を使用し、アップロードする動画のサイズや MIME タイプなどの情報を渡します。この API 応答で返されるメディア識別子 (`media_id`) は、後続リクエストの実行時に必要です。
  2. [`APPEND` コマンド](https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload-append)を使用し、動画のアップロードを行ないます。動画は分割してアップロードすることが可能です。もし動画を分割してアップロードする場合、分割した数だけ [`APPEND` コマンド](https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload-append)を用いたリクエストを行なわなければなりません。
  3. 動画のアップロードが完了した後、[`FINALIZE` コマンド](https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload-finalize)を使用し、アップロードが完了したことを知らせます。もし、 [`FINALIZE` コマンド](https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload-finalize)の応答に `processing_info` フィールドが含まれる場合、[`STATUS` コマンド](https://developer.twitter.com/en/docs/media/upload-media/api-reference/get-media-upload-status)を使い、[`STATUS` コマンド](https://developer.twitter.com/en/docs/media/upload-media/api-reference/get-media-upload-status)が `succeeded` を返すまで待機します。この手順が完了すれば、`media_id` を他のエンドポイントで使用することが出来ます。

このエンドポイントに関するより詳しい情報は、[Twitter
のドキュメント](https://developer.twitter.com/ja/docs/media/upload-
media/overview)に書かれているので、一度読んでみると良いと思います。また、非同期的にサイズの大きいメディアファイルをアップロードするコードのサンプルが
[GitHub に存在する](https://github.com/twitterdev/large-video-upload-
python)ため、コードを記述するときの参考になるかもしれません。

* * *

参考:

  * [メディアのアップロード 概要 — Twitter Developers](https://developer.twitter.com/ja/docs/media/upload-media/overview)
CC BY-SA 4.0
2019-06-15T10:35:30.833
55810
2019-06-15T10:35:30.833
32986
55807
answer