1
0
mirror of https://github.com/musix-org/musix-oss synced 2025-07-07 17:00:48 +00:00
This commit is contained in:
MatteZ02
2020-03-03 22:30:50 +02:00
parent edfcc6f474
commit 30022c7634
11800 changed files with 1984416 additions and 1 deletions

71
node_modules/video-thumbnail-url/src/index.js generated vendored Normal file
View File

@ -0,0 +1,71 @@
import {parse} from 'url';
import bluebird from 'bluebird';
import rp from 'request-promise';
//extract id from url path
const RE_VIMEO = /^(?:\/video|\/channels\/[\w-]+|\/groups\/[\w-]+\/videos)?\/(\d+)$/;
const RE_YOUTUBE = /^(?:\/embed)?\/([\w-]{10,12})$/;
const RE_FACEBOOK = /^\/[\w-]+\/videos\/(\d+)(\/)?$/;
export default function getThumbnailURL(url) {
return bluebird.try(() => {
url = url || '';
const urlobj = parse(url, true);
//youtube
if (['www.youtube.com', 'youtube.com', 'youtu.be'].indexOf(urlobj.host) !== -1) {
let video_id = null;
if ('v' in urlobj.query) {
if (urlobj.query.v && urlobj.query.v.match(/^[\w-]{10,12}$/)) {
video_id = urlobj.query.v;
}
} else {
const match = RE_YOUTUBE.exec(urlobj.pathname);
if (match) {
video_id = match[1];
}
}
if (video_id) {
return `http://img.youtube.com/vi/${video_id}/hqdefault.jpg`;
}
}
//vimeo
if (['www.vimeo.com', 'vimeo.com', 'player.vimeo.com'].indexOf(urlobj.host) !== -1) {
const match = RE_VIMEO.exec(urlobj.pathname);
if (match) {
const video_id = match[1];
return rp({
uri: `https://vimeo.com/api/v2/video/${video_id}.json`,
json: true
})
.then(data => {
if (data) {
return data[0].thumbnail_large;
}
});
}
}
//facebook
if (['facebook.com', 'www.facebook.com'].indexOf(urlobj.host) !== -1) {
const match = RE_FACEBOOK.exec(urlobj.pathname);
if (match) {
const video_id = match[1];
return rp({
uri: `https://graph.facebook.com/${video_id}`,
json: true
})
.then(data => {
if (data) {
return data.picture
}
});
}
}
return null;
});
}