Giter Club home page Giter Club logo

node-ytdlp's Introduction

ytdlp-helper

ytdlp-helper is a Node.js module that provides a simple interface for downloading and retrieving information from YouTube videos using the yt-dlp command-line tool.

Features

  • Download YouTube videos in various formats
  • Retrieve video information such as title, description, and duration
  • Utilizes the yt-dlp command-line tool for video processing
  • Supports caching of the latest yt-dlp version for faster execution

Installation

To use YtDlp in your project, you need to install it using npm:

npm install --save ytdlp-helper

Usage

import YtDlp from ytdlp-helper;

(async () => {
  const ytdlp = await YtDlp.withLatest();
  
  // Download video
  const videoInfo = await ytdlp.download('https://www.youtube.com/watch?v=dQw4w9WgXcQ', {
    format: 'bv*+ba/b',
    path: './downloads',
    onProgress: (progress) => {
      console.log(`Progress: ${progress.percent}%`);
    }
  });

  // Get video information
  const info = await ytdlp.info('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
  console.log(info);

  // Stop the YtDlp instance
  await ytdlp.stop();
})();

API Reference

YtDlp

constructor(options)

Creates a new YtDlp instance.

  • options: An object containing the following properties:
    • ytdlpPath: (Optional) Path to the yt-dlp executable. Defaults to the latest version.
    • ffmpegPath: (Optional) Path to the ffmpeg executable.
    • pythonPath: (Optional) Path to the Python executable.
    • verbose: (Optional) Enable verbose logging. Defaults to false.

withLatest(options)

Creates a new YtDlp instance with the latest yt-dlp version.

  • options: An object containing the following properties:
    • ffmpegPath: (Optional) Path to the ffmpeg executable.
    • pythonPath: (Optional) Path to the Python executable.
    • maxage: (Optional) Maximum age of the cached yt-dlp version in milliseconds. Defaults to 24 hours.
    • verbose: (Optional) Enable verbose logging. Defaults to false.

download(url, options)

Downloads a YouTube video.

  • url: URL of the video to download.
  • options: An object containing the following properties:
    • format: (Optional) Video format. Defaults to 'bv*+ba/b'.
    • path: (Optional) Output path for the downloaded video. Defaults to the current working directory.
    • ydlOpts: (Optional) Additional options to pass to yt-dlp.
    • onProgress: (Optional) A callback function to handle progress updates.

info(url, options)

Retrieves information about a YouTube video.

  • url: URL of the video to get information from.
  • options: An object containing the following properties:
    • format: (Optional) Video format. Defaults to 'bv*+ba/b'.
    • ydlOpts: (Optional) Additional options to pass to yt-dlp.

stop()

Stops the YtDlp instance and cleans up resources.

License

This project is licensed under the MIT License.

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.