-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
39 lines (29 loc) · 946 Bytes
/
index.js
File metadata and controls
39 lines (29 loc) · 946 Bytes
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
31
32
33
34
35
36
37
'use strict';
var querystring = require('querystring');
var request = require('request');
var fbbkJson = require('fbbk-json');
var iconv = require('iconv-lite');
var api = 'http://v.baidu.com/v?&rn=20&ct=905969664&&db=0&s=0&fr=videoMultiNeed&pn=0&word=';
module.exports = exports.baiduVideo = function(keyword, callback) {
request({
url: api + querystring.escape(keyword),
encoding: null
}, function(err, res, body) {
if (err) {
callback(err);
}
body = iconv.decode(body, 'gbk');
body = body.substring(body.indexOf('({') + 1, body.indexOf('})') + 1);
var data = fbbkJson.parse(body);
var result = data.data.reduce(function (memo, curr) {
return memo.concat({
title: curr.ti,
url: 'http://v.baidu.com' + curr.url,
duration: curr.duration,
via: curr.srcShortUrlExt,
viaUrl: curr.srcShortUrl
});
}, []);
callback(null, result);
});
};