Gets information on a video (or playlist) using youtube-dl.
Like the getInfo function of node-youtube-dl
, but promisified and event-based.
const { getInfo } = require('ytdl-getinfo')
-
Basic example:
getInfo('https://www.youtube.com/watch?v=v7BddpYYNGk').then(info => { // info.items[0] should contain the output of youtube-dl --dump-json console.log(info.items[0].title) })
-
Video Search:
getInfo('Muzzy - Endgame').then(info => { // info.items[0] contains information of the first search result console.log(info.items[0].url) })
-
Custom Arguments:
getInfo('v7BddpYYNGk', ['--format=bestaudio']).then(info => { // ... })
-
Playlists (event based)
getInfo('PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re').then(info => { // info.partial is true for playlists if (info.partial) { info.on('video', v => console.log(v.title)) info.on('done', () => console.log(`Playlist contains ${info.items.length} items.`)) } })
-
Playlists (promise based)
getInfo('PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re', [], true).then(info => { // info.items contains all the playlist items })
-
Multiple queries at once (acts like a playlist)
getInfo(['v7BddpYYNGk', 'BMhrBLD_B2U']).then(info => { // ... })
require('ytdl-getinfo').update().then(version => {
console.log(`youtube-dl updated to version ${version}`)
})
require('ytdl-getinfo').getVersion().then(version => {
console.log(`Current youtube-dl version: ${version}`)
})