酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Twitpicのフルサイズ画像の取得方法[Ruby][Web API]

fpu_tmp_1354374932.2232_974aa9

TwitpicはTwitterの中で最も使われている写真サービスの一つですよね。公式のドキュメントには載っていない、Twitpicのフルサイズ画像を取得する方法を今日偶然発見したのでメモで残しておきます。


フルサイズ画像の取得API

ベースとなるURLとサムネイル画像のURL、フルサイズ画像のURLの関係は以下のようになります。

ベースとなるURL    => http://twitpic.com/bhn7wu
サムネイル画像のURL => http://twitpic.com/show/thumb/bhn7wu
フルサイズ画像のURL => http://twitpic.com/show/full/bhn7wu

From twitpicからフルサイズの画像を取得する方法 | 人工無脳が作りたい

公式のAPIドキュメントには載っていないので、完全にご利用は自己責任でお願いいたしますw

サンプルソース

ゆーすけべーさんの日本で最も有名なテック記事の一つである「いかにしておっぱい画像をダウンロードするか〜2012」を参考にしつつ、Rubyで画像をダウンロードするスクリプトを作ってみました。

script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
require 'open-uri'
require 'pathname'
require 'digest/md5'

url = "http://twitpic.com/bhn7wu"
dir = Pathname.new './data'

twitpic_id = $1.to_s if url =~ /([a-z0-9\_]{6,7})[.jpg]{0,4}$/i
image_url = "http://twitpic.com/show/full/" + twitpic_id + ".jpg"

filename = Digest::MD5.hexdigest(image_url) + '.jpg'
filepath = dir + filename
res = open(image_url)
if res.content_type =~ /^image/
  FileUtils.mkdir_p(dir) unless FileTest.exist?(dir)
  open(filepath, 'w').print res.read
end

Special Thanks

説明は以上です。いかがだったでしょうか?
もし、説明がわかりにくかったり、間違っている場所があればぜひ一言。

おすすめの書籍