#!/usr/bin/env node "use strict"; var hlsmon = require('commander'); hlsmon.version('0.0.0') .usage('[options] ') .option('-a', '--user-agent ', 'User-Agent') .parse(process.argv); var util = require('util'), url = require('url'); var reader = require('../lib/reader'); var src = process.argv[2]; var sep = ';'; function monitor(srcUrl) { var r = reader(srcUrl, {noData:true}); var time = 0; r.on('readable', function() { var obj; while (null !== (obj = r.read())) { var meta = obj.meta; var duration = obj.segment.duration; console.log(meta.modified.toJSON() + sep + meta.size + sep + duration.toFixed(3) + sep + (meta.size / (duration * 1024/8)).toFixed(3)); time += duration; } }); r.once('index', function() { // wait until first index is returned before attaching error listener. // this will enable initials errors to throw r.on('error', function(err) { console.error('reader error', err.stack || err); }); }); r.on('end', function() { if (r.index && r.index.variant) { var newUrl = url.resolve(r.baseUrl, r.index.programs['1'][0].uri); console.error('found variant index, using: ', newUrl) return monitor(newUrl); } console.error('done'); }); r.resume(); } monitor(src);