Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@distube/youtube-dl

distubejs862MITdeprecated2.2.4TypeScript support: included

Use '@distube/yt-dlp' instead

A simple Node.js wrapper for youtube-dl. Made for DisTube.js.org

binary, distube, distubejs, nodejs, youtube-dl, youtube-dl-wrapper, youtube-downloader

readme

A simple Node.js wrapper for youtube-dl. Customized for DisTube.js.org

Why

  • Auto install the latest youtube-dl version available.
  • Executes any command in a efficient way.
  • Promise & Stream interface support.

Install

$ npm install @distube/youtube-dl --save

Usage

const youtubedl = require('@distube/youtube-dl')

youtubedl('https://example.com', {
  dumpSingleJson: true,
  noWarnings: true,
  noCallHome: true,
  noCheckCertificate: true,
  preferFreeFormats: true,
  youtubeSkipDashManifest: true,
  referer: 'https://example.com'
})
  .then(output => console.log(output))

It's equivalent to:

$ youtube-dl https://example.com --dump-json --no-warnings --no-call-home --no-check-certificate --prefer-free-formats --youtube-skip-dash-manifest --referer=https://example.com

API

youtubedl(url, [flags], [options])

url

Required
Type: string

The URL to target.

flags

Type: object

Any flag supported by youtube-dl.

options

Any option provided here will passed to execa#options.

youtubedl.raw(url, [flags], [options])

It's the same than the main method but it will return the raw subprocess object:

const youtubedl = require('youtube-dl-exec')
const fs = require('fs')

const subprocess = youtubedl.raw('https://example.com', { dumpSingleJson: true })

console.log(`Running subprocess as ${subprocess.pid}`)

subprocess.stdout.pipe(fs.createWriteStream('stdout.txt'))
subprocess.stderr.pipe(fs.createWriteStream('stderr.txt'))

setTimeout(subprocess.cancel, 30000)

Environment variables

The environment variables are taken into account when you perform a npm install in a project that contains youtube-dl-exec dependency.

They setup the download configuration for getting the youtube-dl binary file.

These variables can be

YOUTUBE_DL_HOST

It determines the remote URL for getting the youtube-dl binary file.

The default URL is ytdl-org/youtube-dl latest release.

YOUTUBE_DL_DIR

It determines the folder where to put the binary file.

The default folder is bin.

YOUTUBE_DL_FILENAME

It determines the binary filename.

The default binary file could be youtube-dl or youtube-dl.exe, depending of the YOUTUBE_DL_PLATFORM value.

YOUTUBE_DL_PLATFORM

It determines the architecture of the machine that will use the youtube-dl binary.

The default value will computed from process.platform, being 'unix' or 'win32'.

Original License

youtube-dl-exec © microlink.io, released under the MIT License.
Authored and maintained by Kiko Beats with help from contributors.

microlink.io · GitHub microlink.io · Twitter @microlinkhq

changelog

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

1.2.3 (2021-04-28)

1.2.2 (2021-04-26)

1.2.1 (2021-04-14)

Bug Fixes

  • single-character-flags with values are now supported (c7228c0)
  • updated test file (3d45d24)

1.2.0 (2021-04-02)

Features

1.1.3 (2021-03-13)

Bug Fixes

  • correct file name variable (8b2d716)
  • correct platform value on windows (69bee90)
  • default binary file doesn't depend on YOUTUBE_DL_PLATFORM (45bad59)

1.1.2 (2021-03-09)

1.1.1 (2021-03-04)

Bug Fixes

  • fs promises for node 10 (585250b), closes #3

1.1.0 (2021-03-02)

Features

  • add YOUTUBE_DL_HOST as binary (2d723da)

Bug Fixes

1.0.0 (2021-02-24)

0.0.1 (2021-02-24)

Bug Fixes