Node.jsを使ってネットワークレコーダーのnasneの録画本数を取得してみました。
こちらのpackageを利用しています。
実装とか
packageをインストールします。
$ npm install upnp-device-client
コードはこちらです。
var Client = require('upnp-device-client');
var fs = require('fs');
// nasneの名称とdevice description URLが記述されたJSONファイル
var obj = JSON.parse(fs.readFileSync('./nasne_list.json', 'utf8'));
obj.forEach(function(nasne) {
var client = new Client(nasne.url);
// "ビデオ/すべて"にぶら下がるオブジェクトを取得する。
// 今回は録画本数として'TotalMatches'をそのまま利用している。
client.callAction('ContentDirectory', 'Browse', { ObjectID: '0/video/all', BrowseFlag: 'BrowseDirectChildren', Filter: '', StartingIndex: 0, RequestedCount: 0, SortCriteria: '' }, function(err, result) {
if(err) throw err;
console.log(nasne.name + ": " + result.TotalMatches);
});
});
コード中の'nasne_list.json'はこちらです。
[
{
"name": "nasne-1",
"url": "http://192.168.1.11:58888"
},
{
"name": "nasne-2",
"url": "http://192.168.1.12:58888"
}
]
結果
結果はこちらです。
$ node nasne.js
nasne-1: 873
nasne-2: 973
参考サイト
こちらを参考にしました。