JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 153
  • Score
    100M100P100Q12420F
  • License MIT

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

Package Exports

  • @distube/youtube-dl
  • @distube/youtube-dl/src/download

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@distube/youtube-dl) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

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