ytdl

A command line streaming youtube video downloader.

Usage no npm install needed!

<script type="module">
  import ytdl from 'https://cdn.skypack.dev/ytdl';
</script>

README

node-ytdl

A youtube downloader written in Javascript. To be used with the command line. If you're looking to use it in your node program, check out ytdl-core.

Depfu codecov

Usage

Streams to stdout by default

ytdl "http://www.youtube.com/watch?v=_HSylqgVYQI" | mpv -

To save to a file

ytdl "http://www.youtube.com/watch?v=_HSylqgVYQI" > myvideo.mp4

or

ytdl -o "{author.name} - {title}" "http://www.youtube.com/watch?v=_HSylqgVYQI"

Download video and convert to mp3 (Requires ffmpeg)

ytdl http://www.youtube.com/watch?v=_HSylqgVYQI | ffmpeg -i pipe:0 -b:a 192K -vn myfile.mp3

Supported options

Usage: ytdl <url> [options]

url     URL to the video.

Options:
   -v, --version                  Print program version.
   -q ITAG, --quality ITAG        Video quality to download, default: highest
   -r INT-INT, --range INT-INT    Byte range to download, ie 10355705-12452856
   -b INT, --begin INT            Time to begin video, format by 1:30.123 and 1m30s
   -o FILE, --output FILE         Save to file, template by {prop}, default: stdout
   --filter STR                   Can be video, videoonly, audio, audioonly
   --filter-container REGEXP      Filter in format container
   --unfilter-container REGEXP    Filter out format container
   --filter-resolution REGEXP     Filter in format resolution
   --unfilter-resolution REGEXP   Filter out format resolution
   --filter-encoding REGEXP       Filter in format encoding
   --unfilter-encoding REGEXP     Filter out format encoding
   -i, --info                     Print video info without downloading
   -j, --info-json                Print video info as JSON without downloading
   --print-url                    Print direct download URL
   --no-cache                     Skip file cache for html5player
   --debug                        Print debug information

Install

npm -g install ytdl

Tests

Tests are written with mocha

npm test