Я показываю список ВСЕХ возможных ссылок для скачивания видео с YouTube.Мне было интересно, есть ли способ отфильтровать этот список ссылок для скачивания только с помощью ссылок .mp4 для загрузки.
Я пытался ограничить некоторые расширения, но это не работает.
Это мойindex.js:
router.post('/video', (req, res, next) => {
var url = req.body.url,
formats = [],
pattern = /^((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu.be))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?$/;
request.get(url, function (err, resp, body) {
// check if it is valid url
if (pattern.test(resp.request.uri.href)) {
ytdl.getInfo(url, ['--youtube-skip-dash-manifest'], function (err, info) {
if (err) return res.render('listvideo', {
error: 'The link you provided either not a valid url or it is not acceptable'
});
// push all video formats for download (skipping audio)
info.formats.forEach(function (item) {
if (item.format_note !== 'DASH audio' && item.filesize) {
item.filesize = item.filesize ? bytesToSize(item.filesize) : 'unknown';
formats.push(item);
}
});
res.render('listvideo', {
meta: {
id: info.id,
formats: formats
}
});
})
} else {
res.render('listvideo', {
error: 'You have provided an invalid link.'
});
}
});
});
Я бы хотел отображать только ".mp4 ссылку" на стороне клиента.