ブログ

またTwitterAPIで遊んでしまった

2018年11月03日
TwitterAPIのどツボにハマって遊んでしまいましたでブログ更新時に、更新お知らせ写真付きツイートができるようにしました。
あのときは静止画だけでとりあえずは終了したのですが、やっぱりビデオも投稿できた方が便利だなと思うようになってしまいました。
ブログ更新後、ツイッターから動画をアップしてツイートしてみたのですが、やっぱり面倒なんです。しかもちょっとではなくて、かなり面倒に感じるんです。

前回と同じで、以前からお世話になっている、
GitHub - abraham/twitteroauth: The most popular PHP library for use with the Twitter OAuth REST API.
を利用させていただきました。

いざアップロード!できません。

Overview — Twitter Developers
どうやらチャンクに分けてアップロードをするようです。もしかすると、分けなくてもできるのかもしれませんがTwitterが推奨しているようですしチャンク分けしてみました。

修正して再度アップロード。
どうやらアップロードはできているようですが、エラーになります。

【Duration too long, maximum:30000, actual:xxxxxx】

調べたら、動画が30秒を超えているということらしいです。
Overview — Twitter Developersにビデオは15MBとありますが、秒でも引っかかるのでしょうか。
試しに短い動画でやってみたら無事ツイートできました。

更に調べると、【media_category】を【tweet_video】を引き渡してやると30秒以上の動画が扱えるようです。

引き渡してアップロードしてみます。

今度は【Not valid video】だって。アップロードしたのは確かにビデオなんですけどね。
返ってきたメッセージを見てみると、【pending】が出ている、でも動画のアップロードはできているのかな、と思います。

返ってきたメディアID(media_id)を直書きで指定してツイートすると、ツイートできました。
何度かやってみたのですが、どうやら動画が使えるようになるのに数分かかっているみたいです。この当たりはTwitterサーバーの混み具合にもよるのかもしれません。

仕方ないので動画アップロードとツイートは処理を分けました。
確かアップロードしたファイルは1時間有効だったはずなので、メディアIDを記録しておいて、後からメディアIDとツイート内容をセットにしてツイートを投げます。

作っておきながらなんですが、ツイッターのアカウントの関係で動画はアップロードしないかもしれません(なら作るなよ・・・)。まだ色々悩み中です。


覚書 ---- TwitterAPIからの動画の投稿
Overview — Twitter Developers
Media Best Practices — Twitter Developers
API Reference — Twitter Developers

チャンク分けする
30秒を超えている場合は、media_category:tweet_video を指定
アップロードした動画が使えるようになるまで待つ
コメントの書き込み
コメント
調べてて辿り着きました さん | 2022-04-20 22:29:22
初めまして。
現在Twitter APIで動画投稿を試していますが知識も乏しく沼っています…
古い記事のようですがよければ参考までにソースコードを見せていただきたいです。

ご検討宜しくお願いします。
管理人 みゅー | 2022-04-22 07:32:52
はじめまして、調べてて辿り着きました さん

何とか思い出せないかと、色々ファイルを見たのですが思い出せません。
ネットからソースを拾ってきて、自分のブログに合うように修正しながら書き込んでいったことは覚えているのですが、何がどうなっているのか。。。

なにせ、使っていないもので、使い方すらよく思い出せない始末です。

自分でもゴチャゴチャになっている上、ブログのソースはそのままお渡しできない状態なんです。

せめて元ソースを思い出せないかなと思って、関数名などから探ってみました。

多分、多分なのですが、本文にリンクを載せている
https://github.com/abraham/twitteroauth

src - TwitterOAuth.php
https://github.com/abraham/twitteroauth/blob/main/src/TwitterOAuth.php
です。
これを、自分用にあれこれ触っているんだと思います。

ソースの使い方は
https://qiita.com/k_kinoshita0104/items/9f9e6f75d58b40663673#%E7%94%BB%E5%83%8F%E3%82%92%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B
など参考にしたような気がします。

abraham twitteroauth で検索した記憶がうっすらあります。

お役に立てなくて申し訳ありません。
うまく動くことを祈っています。