class.exe

blog.netaka.net

Node.jsを使ってnasneの録画本数を取得する

1/30/2017

この記事を書いてから4年が経っています。内容が古いかもしれません。

Node.jsを使ってネットワークレコーダーのnasneの録画本数を取得してみました。

こちらのpackageを利用しています。

upnp-device-client

実装とか

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

参考サイト

こちらを参考にしました。