Twitterに投稿される画像の直リンク取得方法

Twitterに投稿される画像だけ集めたギャラリーサイトなど面白いのではないかと思い、ツイートに含まれる画像のURLを取得する方法について調べてみました。

テストがてら簡単につくったものですが、たとえば「須磨」という単語が含まれた写真付きのツイートを検索した結果はこのようになります
(´-`).。oO(夏休みですね。。。。。。)

AD

Twitter検索基本形

TwitterAPIが1.1になってからしばらくになりますが、単なる検索結果を得るためだけでも認証が必要となりました。

ツイート内に含まれる画像の直リンクを取得する

上記検索を実行の際、include_entitiesというパラメータをtrueに設定することによりツイート内に含まれるURLについての情報を追加で取得することができます。

詳しくはTweet Entitiesという公式ドキュメントを見てみてください。

画像でないURLについての情報も取得出来ますが、今回は画像に絞って見てみます。
タイムラインを見ていて画像投稿によく使われている(っぽく見える)、

・Twitter標準の画像投稿機能
・Twitpic
・ついっぷる
・フォト蔵
・Instagram

について画像URLの取得方法を調べてみました。

Twitter標準の画像アップロードの場合

外部サービスを経由せずに画像を投稿した場合、画像そのもののURLが「media_url」というキーで取得できます。
上記の検索基本形のように$obj->statusesをforeachでループした場合、以下のように取得できます。

ただ、外部の画像投稿サービスを利用した場合はmedia_urlでは取得することができません。
代表的jな画像投稿サービス別に、取得方法を調べてみました。

TwitpicのURLから画像URLを取得する

TwitPicの場合、URLの一部を置換することで画像そのもののURLが取得できます。
Twitter標準ではない画像投稿を使った場合、expanded_urlというキーにリンク先URLが入ります。ただこれは画像のURLではなく詳細ページ(という言い方でいいのでしょうか・・・)のURLですので、そのURLより画像URLを取得する必要があります。

ついっぷるのURLから画像URLを取得する

ついっぷるの場合もTwitpicと同様に、URLの一部を置換することで画像URLが取得できます。

フォト蔵のURLから画像URLを取得する

フォト蔵もほぼ同様ですが、フォト蔵の場合は写真掲載URLにはユーザーIDが含まれますが画像URLにはユーザーIDが含まれません。そのユーザーIDの部分を除く必要があります。

InstagramのURLから画像URLを取得する

InstagramはURLを単純な置換で取得することが出きず、必要ない場合でもJSONが返却されます。
そこでそのJSONをfile_get_contents→json_decodeという手順が必要です(URL取得だけならjson_decodeではなくpreg_matchなどのほうがいいような気もするが)。

AD

Share

Commentsコメント

メールアドレスは公開されません。コメントは必ずご入力ください。

HTMLタグは使用できません。ソースコードを書き込みたい場合はCodetterGistCodePenなどのご利用が便利です。

幸太郎 さんより
大変参考になりました。
ありがとうございました!
れい さんより
とても参考になりました!
ありがとうございます!

すいません、1つお伺いしてもよろしいですか?
この方法で、「Twitter標準の画像アップロードの場合」のときは、画像URL以外も拾ってしまいます。
例えばただのリンクの場合も拾ってしまいますが、
「画像」という判定はできるのでしょうか。

よろしくお願いします。
管理人 さんより
れい 様
コメントありがとうございます。

mediaというキーが入るのはTwitter標準の画像アップロードだけのはずなのですが、おかしいですね。。。

Twitter標準の画像アップロードのときは

$statuses->entities->media[0]->media_url;

で、それ以外は

$statuses->entities->urls[0]->expanded_url;

となりますが間違いはないでしょうか?
구글상위 さんより
My family every time say that I am wasting my time here at net, except I know I am getting knowledge
everyday by reading such pleasant posts.
구글상위 さんより
My family members always say that I am killing my time here at
web, except I know I am getting experience everyday by reading such good articles.
사이트상위노출 さんより
It's truly very complex in this full of activity life to listen news on TV, therefore I only use web for that
purpose, and get the newest news.
loja online santa apolonia さんより
Tеnho ler    alguns     excelente coisas aqui.
Certamente    νalor    bookmarking paга revisitar.
Ꭼu    surpresa como tanto    tentativa     você colocar
рara    fazer    este tipo de     maravilhoso    informativo    web site
.
research peptides さんより
The healthy protein is created by the insect cells.
steroids direct canada review さんより
You can not get anabolic steroids frankly nowadays.
Roseanna さんより
It's a pity you don't have a donate button! I'd most certainly donate to this fantastic blog!

I guess for now i'll settle for bookmarking and adding your RSS feed to my Google
account. I look forward to fresh updates and will share this website with my Facebook group.
Chat soon!
Sherlene さんより
you are truly a good webmaster. The website loading speed is incredible.
It seems that you're doing any unique trick.
Furthermore, The contents are masterwork. you've performed a great process in this
subject!
Raymond さんより
Please let me know if you're looking for a writer for your site.
You have some really good posts and I think I would be a good
asset. If you ever want to take some of the load off, I'd
love to write some content for your blog in exchange for a link back to mine.
Please send me an email if interested. Thank you!
sportswear さんより
Great info. Lucky me I came across your blog by chance (stumbleupon).

I've saved it for later!
davao city philippines さんより
If some one desires expert view about blogging then i propose him/her to
go to see this web site, Keep up the good work.
Filipina Bikini さんより
I do not even know the way I finished up right here, but
I assumed this submit used to be great. I do not realize who
you are but certainly you are going to a famous blogger for those who aren't already.
Cheers!
web design express さんより
Persons, who confront financial market today, understand that it
features a huge competition.    In this method the lifetime of the
approval isn't directly controlled by itself.    Panel height may be increased
without removing existing panel frames or disturbing power, voice and data cabling, proving savings regarding both product and labor
costs.
kredit mobil wuling さんより
Thanks , I've recently been looking for information approximately this
topic for ages and yours is the best I've
came upon till now. However, what in regards to the
conclusion? Are you certain in regards to the supply?
joker123 customer service さんより
I'm no longer certain the place you are getting your information, but good topic.
I must spend a while learning much more or figuring out more.
Thanks for fantastic information I was on the lookout for this info for my
mission.
gogo bar さんより
you're actually a good webmaster. The web site loading speed is amazing.
It kind of feels that you're doing any distinctive trick.

In addition, The contents are masterpiece. you've performed a fantastic activity in this matter!
progressive web apps さんより
Excellent way of explaining, and nice article to obtain facts on the topic of my presentation focus,
which i am going to present in school.
Promo coupons さんより
It's difficult to find educated people on this topic, however, you sound
like you know what you're talking about! Thanks
Minerva さんより
With havin so much content do you ever run into any problems of
plagorism or copyright infringement? My site has a lot of unique content I've either authored myself or outsourced
but it appears a lot of it is popping it up all over the internet without my authorization. Do you know
any techniques to help reduce content from being stolen? I'd definitely appreciate it.