Youtube-dl wrapper for nodejs
npm install @corollarium/youtubedl-wrapper!NPM!node-current!npm (scoped)
This is a NodeJS wrapper for youtube-dl.
There's an alternative package node-youtube-dl. The main differences is that youtubedl-wrapper uses promises/async and downloads video through youtube-dl itself.
Download video:
``js
const y = new youtubedl.Youtubedl();
const video = "https://www.youtube.com/watch?v=90AiXO1pAiA";
const download = await y.download(video, "mydirectory", ["-f", "best"]);
download.on("download", data => {
console.log(
${data.progress}% downloaded, ETA ${data.ETA}, speed ${data.speed}${data.speedUnit}, downloaded bytes ${data.downloaded}${data.downloadedUnit}
);
});
download.on("end", data => {
if (!data.status) {
console.log("Download failed");
} else {
console.log("Data downloaded to: " + data.filename);
}
});
`
Get the video information:
`js`
const video = "https://www.youtube.com/watch?v=90AiXO1pAiA";
const data = await y.info(video);
Get a thumbnail:
`js`
const video = "https://www.youtube.com/watch?v=90AiXO1pAiA";
const data = await y.thumbnail(video, path.join(__dirname, "thumbnail.jpg"));
Either call scripts/download.js or to download it directly in your code:
`js`
const { downloader } = require("@corollarium/youtubedl-wrapper");
try {
const platform = "linux"; // or "windows"
await downloader("/path/to/download", true, platform);
} catch (err) {
console.error("Download error: ", err);
}
If you download to your own path, init the class with it:
`js`
const y = new youtubedl.Youtubedl("/my/path/youtube-dl");
#### Table of Contents
- Youtubedl
- Parameters
- setBinary
- Parameters
- getBinary
- download
- Parameters
- getVersion
- info
- Parameters
- thumbnail
- Parameters
- getExtractors
The Youtubedl class
#### Parameters
- binary string The youtube-dl executable path. Defaults to {this package}/bin/youtube-dl (optional, default null)
#### setBinary
Set binary path for youtube-dl
##### Parameters
- path string The full binary file path
#### getBinary
Get binary path for youtube-dl
Returns string The full binary file path
#### download
Downloads a video
##### Parameters
- url stringdirectory
- stringargs
- Array Extra arguments for youtube-dl (optional, default [])
Returns Emitter An Emitter object. Emits:- "download", {progress, speed, speedUnit, downloaded, downloadedUnit, ETA}
- "convert", {}
- "end" { status, code}
#### getVersion
Returns the current youtube-dl executable version
Returns Promise<string> promise with the version
#### info
Gets video info
##### Parameters
- url stringoptions
- any
#### thumbnail
Fetches a video thumbnail
##### Parameters
- url string The video urlfilename
- string The local filename to save the thumbnail
#### getExtractors
Gets the list of extractors
Returns Promise with an array
MIT
`
``