PowerShellでニコ動API(動画情報詳細取得)を使ってみる
PowerShellって結構使えるなーと感じている今日この頃。
というわけで、ニコ動APIの動画情報詳細取得を使って、動画Noからタイトルを取得してみる。
(先日オイラがUpした動画のタイトルを取得してみる)
PS C:\Users\kotat_000> $movieNo="sm22902646"
PS C:\Users\kotat_000> $uri="http://ext.nicovideo.jp/api/getthumbinfo/$movieNo"
PS C:\Users\kotat_000> $encode_utf8 = [Text.Encoding]::GetEncoding("utf-8")
PS C:\Users\kotat_000> $client = New-Object System.Net.WebClient
PS C:\Users\kotat_000> $stream = $client.OpenRead($uri)
PS C:\Users\kotat_000> $streamReader = New-Object System.IO.StreamReader($stream,$encode_utf8)
PS C:\Users\kotat_000> $xmldata=[xml]$streamReader.ReadToEnd()
PS C:\Users\kotat_000> $xmldata.nicovideo_thumb_response.thumb.title
2014年2月14日 大雪の日、京急の車窓からみた風景
PS C:\Users\kotat_000>
WebClientだから、DownloadString()でいいかなと思ったのだけれど、エンコードがよくわからない・・・。
と思ったら、Encordingプロパティがあるジャマイカ。
PS C:\Users\kotat_000> $movieNo="sm22902646"
PS C:\Users\kotat_000> $uri="http://ext.nicovideo.jp/api/getthumbinfo/$movieNo"
PS C:\Users\kotat_000> $encode_utf8 = [Text.Encoding]::GetEncoding("utf-8")
PS C:\Users\kotat_000> $wc = New-Object System.Net.WebClient
PS C:\Users\kotat_000> $wc.Encoding=$encode_utf8
PS C:\Users\kotat_000> $xmldata=[xml]$wc.DownloadString($uri)
PS C:\Users\kotat_000> $xmldata.nicovideo_thumb_response.thumb.title
2014年2月14日 大雪の日、京急の車窓からみた風景
PS C:\Users\kotat_000>
いろんなところからググったですよ。先人たちの知恵にTHX
追記:削除された動画は、nicovideo_thumb_responseタグのstatus属性が"fail"になって動画の情報が取得できない!(ちなみに、属性値の取得もタグの値を取得するのと同じようにする。$xmldata.nicovideo_thumb_response.status って感じ。)
<?xml version="1.0" encoding="UTF-8"?>
<nicovideo_thumb_response status="fail">
<error>
<code>DELETED</code>
<description>deleted</description>
</error>
</nicovideo_thumb_response>
« PsExecの使い方 | トップページ | PowerShellで複数のファイルの名前から一部を取得する »
コメント