2023年6月
        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 26 27 28 29 30  
無料ブログはココログ

 

« PsExecの使い方 | トップページ | PowerShellで複数のファイルの名前から一部を取得する »

2014年3月 1日 (土)

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で複数のファイルの名前から一部を取得する »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: PowerShellでニコ動API(動画情報詳細取得)を使ってみる:

« PsExecの使い方 | トップページ | PowerShellで複数のファイルの名前から一部を取得する »