スマートフォンをご利用の皆さんに、最大20人までのグループダイレクトメッセージご利用が可能になりました。また、順次、最長30秒までの動画をアプリから直接投稿いただけるようになります。https://t.co/r6CqGLRsvg
— TwitterJP (@TwitterJP) 2015, 1月 27
2015年1月27日に、Twitterアプリに30秒動画の投稿機能が追加されとの発表がありました。
Native video support in REST and Streaming API https://t.co/VrFm1qGZnF
— Twitter API (@twitterapi) 2015, 1月 27
それに伴い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] → なし
配列の番号と出力されるファイルの種類を比べると、例のとおりになってなくて、ちょっとクセがあります。
出力内容の確認
三ノ宮駅の電光掲示板 pic.twitter.com/YIeduIE3wc
— えちぜんや よーた (@echizenya_yota) 2015, 2月 6
実際に出力してみると、こんな感じになります。もちろん、ツイート本文や画像を呼び出すとき同じく、twitterOAuthを使ってエンドポイントにアクセスする必要があります。”video_info”に至るまでのコードは、こちらの記事を参考にしてみたください。
ちなみに…
先日から、なぜかTwitter developersのUploading Mediaのページがアクセスできません。複数の画像の投稿や呼び出しに関する記述があったところです。
30秒動画の投稿機能が追加されたので、おそらくTwitterがそのうち書き換えるかもしれませんねー。
〔参考サイト〕