お久しぶりです。
今回はニコニコ静画に使えるネタを紹介します。
静画のAPI(一部)
殆どPIRA Blog参考にしました(http://pita.s374.xrea.com/blog/archives/94)
※ココに書いてある[画像番号]とはim0000のimを取った0000の事を言う
| 原型サイズ | http://seiga.nicovideo.jp/image/source?id=[画像番号] | |
| 表示用のサイズ | http://lohas.nicoseiga.jp/img/[画像番号]l | |
| http://lohas.nicoseiga.jp/thumb/[画像番号]i | ||
| サムネイル | http://lohas.nicoseiga.jp/img/[画像番号]s | |
| http://lohas.nicoseiga.jp/thumb/[画像番号]q | アス比そのまま | |
| http://lohas.nicoseiga.jp/thumb/[画像番号] | アス比変わる |
ニコニコから取れる画像の形式はjpg,png,gifの三種類
だが拡張子が付いてない
どの画像がどの拡張子かを判別する方法は2つ
①保存するときレスポンスヘッダのContent-Typeを見て判断する (昔この方法だった)
②画像のバイナリー文字列の先頭の文字で判断する (今回はこの方法)
こちらのサイトを参考しました
PNG, GIF, JPEG のバイナリーデータなどについて | ヨモツネット
(http://www.yomotsu.net/wp/?p=504)
| バイナリー文字列 | デコード後 | |
|---|---|---|
| PNG | 89 50 4E 47 | 臼NG |
| GIF(89a) | 47 49 46 38 39 61 | GIF89a |
| GIF(87a) | 47 49 46 38 37 61 | GIF87a |
| JPEG | FF D8 FF | .リ. |
こうなっているので簡単に判別ができる
ね?簡単でしょ?
以下ソース
Dim url As String = "http://seiga.nicovideo.jp/image/source?id=[画像番号]"
Dim wc As New System.Net.WebClient
wc.Headers.Add("Cookie", "user_session=ユーザーセッション")
Dim imageByte As Byte() = wc.DownloadData(url)
Dim str As String = Nothing
For index = 0 To 5
Dim hoge As String = Convert.ToString(imageByte(index), 16) '16進数に変換
str = str & " " & hoge
Next
str = str.ToUpper() 'すべて大文字にする
Console.WriteLine("→" & str)
If str.StartsWith(" 89 50 4E 47") = True Then
Console.WriteLine("PNG")
End If
If str.StartsWith(" 47 49 46 38 39 61") = True Then
Console.WriteLine("GIF(89a)")
End If
If str.StartsWith(" 47 49 46 38 37 61") = True Then
Console.WriteLine("GIF(87a)")
End If
If str.StartsWith(" FF D8 FF") = True Then
Console.WriteLine("JPEG")
End If


