5.4 KiB
Why play-dl ?
ytdl-core has some issues with miniget and also stream abort issues. On the other hand, youtube-dl is a very perfect alternative but it takes time to launch. Hence, play-dl is created to avoid these issues along with providing comparatively faster performance than others.
Download videos/playlists or search for videos
This is a light-weight youtube downloader and searcher.
- searches by video, playlist, channel
- obtains audio playback url
Installation
npm install play-dl@latest
Examples
For pre-made examples, head over to /examples folder.
Basic Usage
const youtube = require('play-dl');
// ES6: import youtube from 'play-dl';
const options = {
limit : 1
}
const results = await youtube.search('post malone sunflower', options);
Validate
validate( url : string )
Much faster and easier way to validate url.
if(validate(url)) // Will return true if url is a YouTube url
validate_playlist( url : string )
Much faster and easier way to validate url.
if(validate_playlist(url)) // Will return true if url is a YouTube Playlist url
Want to Check both, use this
if(validate(url) || validate_playlist(url)) // This will check both and if anyone is true, it will execute the below function
Stream
stream(url : string, cookie? : string)
This is basic to create a youtube stream from a url. Cookies are optional and are required for playing age restricted videos.
let source = await stream("url") // This will create a stream Class which contains type and stream to be played.
let resource = createAudioResource(source.stream, {
inputType : source.type
}) // This creates resource for playing
stream_from_info(info : infoData)
This is basic to create a youtube stream from a info [ from video_info function ].
let info = await video_info("url")
let source = await stream_from_info(info) // This will create a stream Class which contains type and stream to be played.
let resource = createAudioResource(source.stream, {
inputType : source.type
}) // This creates resource for playing
Search
search(url : string, options? : SearchOptions)
This enables all searching mechanism (video, channel, playlist)
const options = {
limit : 1
}
const results = await youtube.search('never gonna give you up', options);
console.log(results[0].url);
-
SearchOptions
- type :
video|channel|playlist - limit :
integer
- type :
Video
video_basic_info(url : string, cookie? : string)
The basic video details play-dl fetches at first.
Cookies are optional and are required for playing age restricted videos.
const video = await video_basic_info(url)
video_info(url : string, cookie? : string)
This contains everything with deciphered formats along with video_details.
Cookies are optional and are required for playing age restricted videos.
const video = await video_info(url)
-
format
propertyThis returns all the formats available for a video.
const video = await video_info(url) console.log(video.format)
Playlist
playlist_info(url : string, parseIncomplete : boolean)
This fetches all details about a playlist.
parseIncomplete is optional parameter if you want to parse playlist with hidden videos.
const playlist = await playlist_info(url)
//This only fetches first 100 videos from a playlist
const playlist = await playlist_info(url, true)
//This only fetches first 100 videos from a playlist and also parses playlist with hidden videos
-
fetch()
methodThis fetches and returns all videos from the whole provided playlist .
const playlist = await playlist_info(url) //This only fetches first 100 videos from a playlist await playlist.fetch() // This one fetches all videos from a playlist. -
page(page_number :
number)This returns no. of videos from a page.
Every 100 videos have been divided into pages. Example: There are 782 videos in a playlist, so there will be 8 pages.
const playlist = await playlist_info(url); // This only fetches first 100 videos from a playlist. await playlist.fetch(); // This one fetches all videos from a playlist. console.log(playlist.page(1)); // This displays first 100 videos of a playlist -
total_videos
propertyThis returns total no. of videos that have been fetched so far.
const playlist = await playlist_info(url) //This only fetches first 100 videos from a playlist. await playlist.fetch() // This one fetches all videos from a playlist. console.log(playlist.total_videos) // This displays total no. of videos fetched so far. -
videoCount
propertyThis returns total no. of videos in the provided playlist.
const playlist = await playlist_info(url) //This only fetches first 100 videos from a playlist. await playlist.fetch() // This one fetches all videos from a playlist. console.log(playlist.videoCount) // This displays total no. of videos in a playlist.