var id = process.argv[2] || process.exit(),
session = process.argv[3],
fs = require('fs'),
request = require('request'),
nv = new (require('node-nicovideo'))();
nv.login('[email protected]', 'password', function(err, login) {
var cookieheader = {
Cookie: 'nicosid=' + login.nicosid + ';user_session=' + login.user_session + ';'
}
nv.getthumbinfo(id, 'json', function(err, body, res) {
var video = body.nicovideo_video_response.video_info[0].video[0];
fs.createWriteStream('./meta').write('https://nicovideo.jp/watch/' + video.id + '\n\n'
+ '【】【】【】' + '\n\n'
+ video.title + '\n\n'
+ '[romaji]' + '\n\n'
+ '[eigo]' + '\n\n'
+ video.description[0].replace(/\<br \/\>/g, '\n') + '\n\n'
+ '[uta-wiki]' + '\n');
nv.getflv(id, login.nicosid, login.user_session, function(err, res) {
var vurl = res.url;
console.log(vurl);
request({
uri: 'https://nicovideo.jp/watch/' + video.id,
headers: cookieheader
}, function(err, res) {
cookieheader.Cookie += unescape(res.headers['set-cookie'][0]).match(/nicohistory=.*?;/)[0];
//console.log(cookieheader.Cookie);
var smile = fs.createWriteStream('smile.mp4');
var req = request({
uri: vurl,
headers: cookieheader
}, function(err, res) {
});
req.on('response', function(res) {
console.log('\n');
var start = process.hrtime()[0],
len = parseInt(res.headers['content-length'], 10),
elapsed,
down = 0,
line;
//console.log(len);
//fs.createWriteStream('header.log').write(JSON.stringify(res));
req.pipe(fs.createWriteStream('smile.mp4'));
req.on('data', function(data) {
elapsed = process.hrtime()[0] - start;
down += data.length;
line = (down / len * 100).toFixed(2) + '%\t' + (down / elapsed / 1024).toFixed(2) + 'kbps\t' + elapsed + 's';
process.stdout.clearLine();
process.stdout.cursorTo(0);
process.stdout.write(line);
})
.on('close', function() {
console.log('Finished.');
});
});
});
});
});
});