JSPM

ytdl-lite

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q35596F
  • License MIT

YouTube downloader — MP3 & MP4 with quality selection, JSON info, and file path output

Package Exports

  • ytdl-lite
  • ytdl-lite/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ytdl-lite) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

✨ ytdl-lite

🚀 Fast & reliable YouTube downloader — MP3 & MP4 with quality selection, metadata, and smart file paths. ⚡ Powered by dual scrapers with automatic fallback for maximum uptime.


📦 Install

npm install ytdl-lite

⚡ Features

  • 🎵 Download MP3 (best / 320 / 256 / 128 kbps)
  • 🎬 Download MP4 (1080p / 720p / 480p / 360p)
  • 🔄 Auto fallback system (2 scrapers)
  • 📊 Full video metadata (JSON)
  • 📁 Clean auto-generated file paths
  • 🧠 Smart format detection
  • 💻 CLI support

🚀 Quick Start

const ytdl = require('ytdl-lite');

const URL = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ';

// 🎵 MP3
const mp3 = await ytdl.ytmp3(URL);
console.log(mp3.url);
console.log(mp3.path);

// 🎬 MP4 (best)
const mp4 = await ytdl.ytmp4(URL);
console.log(mp4.url);
console.log(mp4.path);

// 🎬 MP4 (specific quality)
const hd = await ytdl.ytmp4(URL, '1080');
console.log(hd.quality, hd.url);

// 📦 All formats
const all = await ytdl.ytmp4(URL, null);
all.medias.forEach(m => console.log(m.type, m.label));

// 📊 Info only
const info = await ytdl.getInfo(URL);
console.log(info.title, info.duration);

📚 API Reference

🎵 ytmp3(url, quality = 'best', opts = {})

Download audio in MP3 format.

Param Type Description
url string YouTube URL
quality string best, 320, 256, 128
opts.dir string Output directory (default: ./)

Response

{
  "status": true,
  "title": "Never Gonna Give You Up",
  "url": "...",
  "quality": "best",
  "type": "audio",
  "path": "./never-gonna-give-you-up.mp3"
}

🎬 ytmp4(url, quality = 'best', opts = {})

Download video in MP4 format.

Param Type Description
url string YouTube URL
quality string | null best, 1080, 720, 480, 360, or null
opts.dir string Output directory

▶ Single format

{
  "status": true,
  "title": "...",
  "quality": "1080",
  "type": "video",
  "url": "...",
  "path": "./video.mp4"
}

📦 All formats (quality = null)

{
  "status": true,
  "title": "...",
  "medias": [
    { "type": "video", "quality": "1080", "label": "1080p" },
    { "type": "audio", "quality": "128", "label": "MP3 • 128kbps" }
  ]
}

📊 getInfo(url)

Get full metadata + all available formats.


🖥️ CLI Usage

npm install -g ytdl-lite
# MP3
ytdl mp3 https://youtu.be/VIDEO_ID

# MP4
ytdl mp4 https://youtu.be/VIDEO_ID 1080

# Info
ytdl info https://youtu.be/VIDEO_ID

📁 Project Structure

ytdl-lite/
├── index.js
├── lib/
│   ├── ytmp3.js
│   ├── ytmp4.js
│   ├── info.js
│   ├── savetube.js
│   ├── ytdlnew.js
│   └── utils.js
├── bin/cli.js
├── test.js
└── package.json

🛡️ Reliability

This package uses two independent scraping engines. If one fails, the other automatically takes over — ensuring high success rates.


📜 License

MIT © DanuZz


💡 Pro Tip

Use quality = null to build your own custom downloader UI with all formats.