3 月 19
またまたmechanizeネタ。
今度はニコニコ動画をダウンロードするスクリプトです。
ランキング一位の動画をダウンロードしてきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | require 'rubygems' require 'mechanize' require 'kconv' require 'cgi' agent = WWW::Mechanize.new #ログインする agent.post('https://secure.nicovideo.jp/secure/login?site=niconico', 'mail' => 'メールアドレス','password' => 'パスワード') #ランキングページから1位の動画ページへ遷移 ranking_page = agent.get('http://www.nicovideo.jp/ranking/mylist/daily/all') video_link = (ranking_page.parser/"a.video").first video_id = video_link["href"].scan(/sm\d+$/).first agent.get(video_link["href"]) #動画URLの取得 content = agent.get('http://www.nicovideo.jp/api/getflv?v=' + video_id) hash = Hash.new content.body.scan(/([^&]+)=([^&]*)/).each {|v| hash[v[0]] = v[1]} video_url = CGI.unescape(hash['url']) #動画ファイルダウンロード open(video_id+'.flv','wb'){|f| f.print agent.get_file(video_url)} |
firefoxのlive httpheaderなどでヘッダをのぞいてみると分かるけど、
通常のhttp://www.nicovideo.jp/watch/sm2698576のような動画URLへアクセスすると
http://www.nicovideo.jp/api/getflv?v=sm2698576へブラウザがアクセスにいってます。
このレスポンスの中にurl=hogehogeってのがあって、
これが動画のURLになってる様子。
ただし、一度ログインしてからでないとアクセスができなくなってるから、コードではログインしてます。
‘メールアドレス’、’パスワード’は自分のアカウントのものを入れればOK!
あとはダウンロードしてきたflvファイルをお好みのプレイヤーで再生するだけ。
以上!
3 月 23rd, 2008 at 16:08:24
[...] 以前ニコニコ動画をダウンロードするスクリプトを書いたけど、 あれは純粋に動画だけで、コメントがダウンロードできてない。 ということで、今度はコメントもダウンロードしてみる。 はじめにざっとニコニコ動画の仕様をおさらいすると、 [...]