48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
const config = require('../config');
|
|
const Vimeo = require('vimeo').Vimeo;
|
|
const client = new Vimeo(config.vimeo.CLIENT_ID, config.vimeo.CLIENT_SECRET, config.vimeo.ACCESS_TOKEN);
|
|
|
|
function getIframeSource(iframeHtml) {
|
|
const groups = iframeHtml.match(/\<iframe.+src\=(?:\"|\')(.+?)(?:\"|\')/);
|
|
return groups[1];
|
|
}
|
|
|
|
function extractInformation(vimeoResponse) {
|
|
return {
|
|
duration: vimeoResponse.duration,
|
|
name: vimeoResponse.name,
|
|
description: vimeoResponse.description,
|
|
link: vimeoResponse.link,
|
|
type: vimeoResponse.type,
|
|
stats: vimeoResponse.stats,
|
|
|
|
download: vimeoResponse.download,
|
|
pictures: vimeoResponse.pictures,
|
|
embed: getIframeSource(vimeoResponse.embed.html)
|
|
}
|
|
}
|
|
|
|
|
|
function getVimeoVideoInfo(videoId) {
|
|
return new Promise(function(resolve, reject) {
|
|
client.request({
|
|
method: 'GET',
|
|
path: '/videos/' + videoId
|
|
}, function (error, body, status_code, headers) {
|
|
if (error) {
|
|
console.error(error);
|
|
resolve({})
|
|
} else {
|
|
if (body.status !== 'available') {
|
|
resolve({})
|
|
} else {
|
|
resolve(extractInformation(body));
|
|
}
|
|
}
|
|
})
|
|
});
|
|
}
|
|
|
|
|
|
module.exports = getVimeoVideoInfo;
|