Continuous Diggin'

プログラミングと音楽のトピックを中心に書いてます

slideshareの"save disabled by the author"をsaveするコード

前にslideshareに上がっているスライドで"save disabled by the author"なものを画像で取ってきてpdfにしていたのを倣って、それを自動化したコードをrubyで書きました。

require "rubygems"
require "open-uri"
require "hpricot"
require "prawn"
require "image_size"

url = ARGV[0] #slideshareのスライドurl
output_filename = ARGV[1] #生成するpdfのファイル名
img_size = [0, 0]

src = open(url).read
doc = Hpricot(src)
slide_images = doc.search('img.slide_image')

open(slide_images[0]['data-full'], 'rb') do |fh|
      img_size = ImageSize.new(fh).size
end

Prawn::Document.generate(output_filename,
                         :page_size => img_size,
                         :margin => [0, 0]) do
    slide_images.each do |img|
        image open(img['data-full'])
    end
end

使い方は、必要なgemをインストールして、

gem install hpricot
gem install prawn
gem install image_size

下のコードを実行します。

ruby slideshare.rb URL FILEPATH