Twitter REST APIを使って30秒動画の取得。$tweet->extended_entities->media[0]->video_info->variants[0]->url

Twitter_logo_blue

2015年1月27日に、Twitterアプリに30秒動画の投稿機能が追加されとの発表がありました。

それに伴いTwitter developersの方でも、ひっそりとREST APIの仕様が拡張しています。1月27日の発表では、2月上旬に拡張というアナウンスでしたので、追加のツイートがあるかなと思いましたが。

目次

video_infoが追加されたextended_entities

さておき、新しくなったextended_entitiesオブジェクトを確認しましょう。機能拡張に伴い、”video_info“(41行目)が追加されています。これが動画を呼び出す要素になります。

[php]
"extended_entities":{
"media": [
{
"display_url": "pic.twitter.com\/31JoMS50ha",
"expanded_url": "http:\/\/twitter.com\/twitter\/status\/560070183650213889\/video\/1",
"features": {

},
"id": 5.6007013197639e+17,
"id_str": "560070131976392705",
"indices": [
110,
132
],
"media_url": "http:\/\/pbs.twimg.com\/ext_tw_video_thumb\/560070131976392705\/pu\/img\/TcG_ep5t-iqdLV5R.jpg",
"media_url_https": "https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/560070131976392705\/pu\/img\/TcG_ep5t-iqdLV5R.jpg",
"sizes": {
"large": {
"h": 576,
"resize": "fit",
"w": 1024
},
"medium": {
"h": 337,
"resize": "fit",
"w": 600
},
"small": {
"h": 191,
"resize": "fit",
"w": 340
},
"thumb": {
"h": 150,
"resize": "crop",
"w": 150
}
},
"type": "video",
"url": "http:\/\/t.co\/31JoMS50ha",
"video_info": {
"aspect_ratio": [
16,
9
],
"duration_millis": 30033,
"variants": [
{
"bitrate": 2176000,
"content_type": "video\/mp4",
"url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/vid\/1280×720\/c4E56sl91ZB7cpYi.mp4"
},
{
"bitrate": 320000,
"content_type": "video\/mp4",
"url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/vid\/320×180\/nXXsvs7vOhcMivwl.mp4"
},
{
"bitrate": 832000,
"content_type": "video\/webm",
"url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/vid\/640×360\/vmLr5JlVs2kBLrXS.webm"
},
{
"bitrate": 832000,
"content_type": "video\/mp4",
"url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/vid\/640×360\/vmLr5JlVs2kBLrXS.mp4"
},
{
"content_type": "application\/x-mpegURL",
"url": "https:\/\/video.twimg.com\/ext_tw_video\/560070131976392705\/pu\/pl\/r1kgzh5PmLgium3-.m3u8"
}
]
}
}
]
}
[/php]

動画を呼び出すための記述

で、動画を呼び出す書き方はどうなるかと言うと、こうなります。

[php]
<?php echo ($tweet->extended_entities->media[0]->video_info->variants[0]->url);?>
[/php]

ただし、これだと文字列しか返ってきません。videoタグのsrc属性に、拡張子webmのファイル名を入れてあげます。widthやheightなどその他の属性はお好みでどうぞ。

[php]
video src="<?php echo ($tweet->extended_entities->media[0]->video_info->variants[0]->url);?>" width="320" height="180" controls loop preload="metadata"></video>
[/php]

呼び出すときの配列番号に注意を

上記のjsonを頼りにすると、webmを呼び出すためには”variants[3]”となりそうですが、なぜかvariants[0]でないとダメな感じです。

  • [0] → .webm
  • [1] → .m3u8
  • [2] → .mp4
  • [3] → .mp4
  • [4] → なし

配列の番号と出力されるファイルの種類を比べると、例のとおりになってなくて、ちょっとクセがあります。

出力内容の確認

twitter_video_info

実際に出力してみると、こんな感じになります。もちろん、ツイート本文や画像を呼び出すとき同じく、twitterOAuthを使ってエンドポイントにアクセスする必要があります。”video_info”に至るまでのコードは、こちらの記事を参考にしてみたください。

ちなみに…

先日から、なぜかTwitter developersのUploading Mediaのページがアクセスできません。複数の画像の投稿や呼び出しに関する記述があったところです。

30秒動画の投稿機能が追加されたので、おそらくTwitterがそのうち書き換えるかもしれませんねー。

〔参考サイト〕

Twitter_logo_blue

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次