LoginSignup
5
1

More than 5 years have passed since last update.

ニコニコ静画の画像をオリジナルサイズで保存するRubyスクリプト

Last updated at Posted at 2018-02-06

スクリプトを書いた動機

ニコニコ静画に投稿されている画像を、コマンド一発で保存したかった。
調べてみると、APIがあるみたいなんだけど、保存できる画像サイズが小さくなってしまう。
投稿されているオリジナルサイズの画像を保存したかったので、自分でコードを書いてみました。

スクリプトコード

nico_seiga_dl.rb
#!/usr/bin/env ruby

require "nokogiri"
require 'mechanize'

LOGIN = 'https://secure.nicovideo.jp/secure/login?site=niconico'
agent = Mechanize.new

mail = "mailaddress" #write your mailaddress of niconico account
pass = "password" #write your password of niconico account
agent.post(LOGIN, 'mail' => mail, 'password' => pass)

id = 961724
sourceURL = "http://seiga.nicovideo.jp/image/source/"

url = sourceURL + id.to_s
data = agent.get(url)

doc = Nokogiri::HTML.parse(data.body)
illust = doc.css("div.illust_view_big")
img_src = illust.css("img").attr("src")
img_URL = "http://lohas.nicoseiga.jp" + img_src.to_s
title = doc.title.split
p title
`wget -O #{title[0]}.jpg -nc #{img_URL}`

処理の概要

大雑把に書くと、「オリジナルサイズの画像のURLを取得し、wgetで保存する」、というものです。この、オリジナルサイズの画像のURLは、
http://lohas.nicoseiga.jp/priv/(複雑な文字列)
となっており、画像のID(im〜、と、画像に付けられているもの。画像の青枠部分)では、このURLを取得することが出来ません。

niko_seiga.png

そこで、
http://seiga.nicovideo.jp/image/source/(idの数字)
にアクセスし、オリジナルサイズの画像のURLを取得します。ニコニコ静画の認証をパスしなければHTML文書を取得できないため、mechanizeを使用してアクセスを行い、取得したHTML文書をnokogiriでパースして、URLを取り出します。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1