ウェブサービスを作っています。

ブログに貼られている Dailymotion 動画の mp4 を簡単にダウンロードするスクリプト

見あたらなかったので、作りました。


Dailymotion 動画が貼られているブログのパーマリンクを渡すと、

javascript:document.write('%3Ca%20href=%22http://www.dailymotion.com/...

のような結果が出力されます。
これをコピーして、ブラウザのロケーションバーに貼り付けると download リンクが表示されるので、それを右クリックして「リンク先を保存」を選んでダウンロードするという、変な仕様です。
作りが適当すぎるので、動かない場合があるかもしれません。


gist に置いておきます。
blog_dm_mp4.rb

require 'open-uri'
require 'rubygems'
require 'nokogiri'

doc = Nokogiri::HTML(URI(ARGV[0]).read)
id = doc.at('//embed[starts-with(@src, "http://www.dailymotion.com/swf/")]')['src'].sub(%r!^http://www.dailymotion.com/swf/!, '')
html = URI("http://www.dailymotion.com/video/#{ id }").read

if html =~ /\.addVariable\("video", "(.+?)"/
  if URI.decode($1) =~ %r!(/get/\d+?/\d+?x\d+?/h264/.+?\.h264\?key=.+?)@!
    puts URI.encode(%(javascript:document.write('<a href="http://www.dailymotion.com#{ $1 }">download</a>')))
  end
end