YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

YouTube Downloader

A web-based YouTube video downloader built with Node.js and yt-dlp. Paste a URL, browse available formats, and download videos in various resolutions or extract audio as MP3.

Features

  • Video Info Extraction β€” Fetches title, thumbnail, uploader, view count, duration
  • Format Selection β€” Browse all available video resolutions (144p–4K) and audio-only options
  • Real-time Progress β€” Live download progress bar with speed indicator via yt-dlp events
  • Success Modal β€” Confirmation dialog with direct file download link after completion
  • Download History β€” Persistent list of downloaded files with delete support
  • Responsive UI β€” Dark theme, mobile-friendly layout

Tech Stack

Layer Technology
Backend Node.js + Express
Video Engine yt-dlp (via yt-dlp-wrap)
Frontend Vanilla HTML/CSS/JS (single page)

Prerequisites

  • Node.js 18+ (Download)
  • yt-dlp β€” The core video downloader. Install via one of these methods:
    • Windows (chocolatey): choco install yt-dlp
    • Windows (pip): pip install yt-dlp
    • macOS: brew install yt-dlp
    • Linux: sudo apt install yt-dlp

After installing, verify with yt-dlp --version. The server uses the yt-dlp command on PATH by default. To use a custom path, edit YT_DLP_PATH in server.js.

Installation

# Clone or download this repository
cd youtube-downloader

# Install Node.js dependencies
npm install

Running

npm start

Open http://localhost:3000 in your browser.

To change the port:

PORT=8080 npm start

API Reference

Method Endpoint Description
GET /api/info?url= Extract video metadata and available formats
POST /api/download Start a download (body: {url, format})
GET /api/status/:jobId Poll download progress
GET /api/downloaded List all downloaded files
GET /api/file/:filename Download / serve a saved file
DELETE /api/file/:filename Delete a saved file

Project Structure

youtube-downloader/
β”œβ”€β”€ server.js            # Express server + yt-dlp integration
β”œβ”€β”€ public/
β”‚   └── index.html       # Single-page frontend (UI + client JS)
β”œβ”€β”€ downloads/           # Downloaded files stored here (auto-created)
β”œβ”€β”€ package.json
└── README.md

License

MIT

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support