rubyでblogを自動投稿するスクリプトを書いてみた ベーコンナンバー
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ファイルをお好みのプレイヤーで再生するだけ。

以上!

関連のある記事

One Response to “rubyでニコニコ動画をダウンロードするスクリプト”

  1. rubyでニコニコ動画のコメントを取得するスクリプトを書いてみた | earth Says:

    [...] 以前ニコニコ動画をダウンロードするスクリプトを書いたけど、 あれは純粋に動画だけで、コメントがダウンロードできてない。 ということで、今度はコメントもダウンロードしてみる。 はじめにざっとニコニコ動画の仕様をおさらいすると、 [...]

コメントする