Есть ли в любом случае отображать только .mp4 с YouTube-dl - PullRequest
0 голосов
/ 19 февраля 2019

Я показываю список ВСЕХ возможных ссылок для скачивания видео с 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 ссылку" на стороне клиента.

...