Nine Project Managers

    youtube-dl-exec
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.5 • Public • Published


    Last version Coverage Status NPM Status

    A simple Node.js wrapper for yt-dlp.

    Why

    • Auto install the latest yt-dlp version available.
    • Executes any command in an efficient way.
    • Promise & Stream interface support.

    Install

    $ npm install youtube-dl-exec --save

    Also, it requires Python 3.7 or above available in your system as python3. Otherwise, the library will throw an error.

    Usage

    const youtubedl = require('youtube-dl-exec')
    
    youtubedl('https://www.youtube.com/watch?v=6xKWiCMKKJg', {
      dumpSingleJson: true,
      noCheckCertificates: true,
      noWarnings: true,
      preferFreeFormats: true,
      addHeader: [
        'referer:youtube.com',
        'user-agent:googlebot'
      ]
    
    }).then(output => console.log(output))

    It's equivalent to:

    $ ./bin/yt-dlp --dump-single-json --no-check-certificates --no-warnings --prefer-free-formats --add-header='user-agent:googlebot' --add-header='referer:youtube.com' 'https://www.youtube.com/watch?v=6xKWiCMKKJg'

    The library will use the latest yt-dlp available that will downloaded on build time.

    Alternatively, you can specify your own binary path using .create:

    const { create: createYoutubeDl } = require('youtube-dl-exec')
    
    const youtubedl = createYoutubeDl('/my/binary/path')

    You can combine it with YOUTUBE_DL_SKIP_DOWNLOAD. See environment variables to know more.

    API

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

    It execs any yt-dlp command, returning back the output.

    url

    Required
    Type: string

    The URL to target.

    flags

    Type: object

    Any flag supported by yt-dlp.

    options

    Any option provided here will passed to execa#options.

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

    Similar to main method but instead of a parsed output, it will return the internal subprocess object

    const youtubedl = require('youtube-dl-exec')
    const fs = require('fs')
    
    const subprocess = youtubedl.exec('https://www.youtube.com/watch?v=6xKWiCMKKJg', {
      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)

    youtubedl.create(binaryPath)

    It creates a yt-dlp using the binaryPath provided.

    Environment variables

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

    These environment variables can also be set through "npm config", for example npm install --YOUTUBE_DL_HOST="Some URL", or store it in .npmrc file.

    They setup the download configuration for getting the yt-dlp binary file.

    YOUTUBE_DL_HOST

    It determines the remote URL for getting the yt-dlp 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 yt-dlp 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 yt-dlp binary.

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

    YOUTUBE_DL_SKIP_DOWNLOAD

    When is present, it will skip the postinstall script for fetching the latest yt-dlp version.

    That variable should be set before performing the installation command, such as:

    YOUTUBE_DL_SKIP_DOWNLOAD=true npm install

    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

    Install

    npm i youtube-dl-exec

    DownloadsWeekly Downloads

    6,074

    Version

    2.1.5

    License

    MIT

    Unpacked Size

    19.1 kB

    Total Files

    7

    Last publish

    Collaborators

    • kikobeats