GithubHelp home page GithubHelp logo

track-top / youtube-dl-exec Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microlinkhq/youtube-dl-exec

0.0 0.0 0.0 1.8 MB

A simple Node.js wrapper for youtube-dl.

License: MIT License

JavaScript 100.00%

youtube-dl-exec's Introduction



Last version Coverage Status NPM Status

A simple Node.js wrapper for youtube-dl.

Why

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

Install

$ npm install youtube-dl-exec --save

Usage

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

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-single-json --no-warnings --no-call-home --no-check-certificate --prefer-free-formats --youtube-skip-dash-manifest --referer=https://example.com

The library will use the latest youtube-dl 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 youtube-dl command, returning back the output.

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])

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.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)

youtubedl.create(binaryPath)

It creates a youtube-dl 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 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'.

YOUTUBE_DL_SKIP_DOWNLOAD

When is present, it will skip the postinstall script for fetching the latest youtube-dl 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

youtube-dl-exec's People

Contributors

kikobeats avatar hazmi35 avatar skick1234 avatar foxscore avatar samarmeena avatar nopointexc avatar dongido001 avatar p-fruck avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.