New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

yt-dl-streamer

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yt-dl-streamer

Script to capture yt-dl-core readable streams and write them to '.flv' or '.mp3' files on your disk.

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

yt-dl-streamer

Script to capture yt-dl-core readable streams and write them to ".flv" or ".mp3" files on your disk.

Description

Basically a module that downloads Youtube audio and/or video to your disk using progress-stream to show you the progress.

Getting Started

Dependencies

  • Node.js
  • progress-stream
  • sanitize-filename
  • ytdl-core
  • fluent-ffmpeg (Optional, only for audio downloads)

Installing

$: npm i --save yt-dl-streamer

Examples in Javascript

  • Downloading a video:
const Streamer = require("yt-dl-streamer").Streamer;

try {
    const link = "4oMJIyVOWL4";
    const outPath = "/home/bgiannoti/Work/myStuff/videos";
    const format = "Video";
    const quality = "Highest";
    const timeoutBetweenProgressEmits = 1000;

    const ytStream = new Streamer(format, quality, outPath, timeoutBetweenProgressEmits, null);
    ytStream.download(link);
    ytStream.runQueue();
    
    ytStream.on("finished", (err, data) => {
        console.log(JSON.stringify(data));
        process.exit(0);
    });

    ytStream.on("error", (error) => {
        console.log(error);
    });

    ytStream.on("progress", (progress) => {
        console.log(JSON.stringify(progress));
    });
} catch (e) {
    console.error(e)
    process.exit(1);
}

  • Downloading a audio-only .mp3:
const Streamer = require("./tsc/Streamer").Streamer;

try {
    const link = "4oMJIyVOWL4";
    const outPath = "/home/bgiannoti/Work/bdv-yt-dl-streamer-to-file/videos";
    const format = "Audio";
    const quality = "Highest";
    const pathToFfmpeg = "/snap/bin/ffmpeg";
    const timeoutBetweenProgressEmits = 1000;

    const ytStream = new Streamer(format, quality, outPath, timeoutBetweenProgressEmits, pathToFfmpeg);
    ytStream.download(link);
    ytStream.runQueue();
    
    ytStream.on("finished", (err, data) => {
        console.log(data);
        process.exit(0);
    });

    ytStream.on("error", (error) => {
        console.log(error);
    });

    ytStream.on("progress", (progress) => {
        console.log(progress);
    });
} catch (e) {
    console.error(e)
    process.exit(1);
}

Types and definitions

In Javascript:

const Streamer = require("./tsc/Streamer").Streamer;

In Typescript:

import Streamer from "./src/Streamer;

The Streamer class is instantiated by passing the following parameters:

   "format": <const string>,
   "quality": <const string>,
   "out": <string>,
   "timeout": <number>,
   "codecPath"?: <string>
  • format accepts only two possible values: 'Audio' or 'Video'.
  • quality - accepts only two possible values: 'highest' or 'lowest'
  • 'out' - the strigified path of the output on your disk you want files to be saved to. If you present a invalid path, the script will try to create it for you.
  • 'timeout' - the timeout between each progress log emit of your downloaded file.
  • 'codecPath' - Not mandatory, only if you want a .mp3 conversion. In that case you need to provide the path in your disk for the ffmpeg installation. (https://www.ffmpeg.org/download.html)

[Streamer].download(link: <string>): null

  • download method is responsible for pushing your link to the download queue.

[Streamer].runQueue(link: <string>): null

  • runQueue method is responsible for actively executing the binded download links in order.

Events emitted

[Streamer].on("progress", [Function]) [Streamer].on("finished", [Function]) [Streamer].on("error", [Function])

Authors

Brunodev09 - Bruno Mayol Giannotti

License

MIT

Keywords

youtube

FAQs

Package last updated on 08 Feb 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts