DEV Community

MR-RAHAD
MR-RAHAD

Posted on

One npm Package to Download Videos from TikTok, Instagram, Facebook, YouTube and 7 More

Every project that touches social media eventually needs the same thing: "give me the direct video URL for this link."

I got tired of wiring up a different scraper for every platform — one library for TikTok, another for Instagram, a third that breaks every time YouTube changes something. So I built rahad-all-downloader-v2: one package, 11 platforms, zero setup.

What it does

11 platforms, one API:

  • TikTok — no-watermark HD video + MP3 audio extraction
  • Instagram — Reels, posts, IGTV, no login needed
  • Facebook — HD & SD quality options
  • YouTube — with automatic fallback for reliability
  • X (Twitter), Snapchat (Spotlight & Stories), Threads, Pinterest, Likee, CapCut, Kwai

Zero setup: no cookies, no API keys, no login. Install and go.

Built for real apps: batch downloads with concurrency control, auto-retry with backoff, quality preference, progress callbacks.

Modern: TypeScript definitions, ESM + CJS, ~21KB, MIT licensed.

Quick start

npm install rahad-all-downloader-v2
Enter fullscreen mode Exit fullscreen mode
const { alldl } = require('rahad-all-downloader-v2');

// Single download — returns a direct video URL
const v = await alldl('https://www.tiktok.com/@user/video/123456789');
console.log(v.data.videoUrl); // direct .mp4 link, no watermark
console.log(v.data.title);

// Batch with concurrency control (never throws — failed items are reported)
const results = await alldl.batch(
  ['https://www.instagram.com/reel/ABC123/', 'https://youtu.be/xyz'],
  {
    concurrency: 3,
    onItem: (r) => console.log('done:', r.data?.title),
  }
);

// Retry + quality preference
const hd = await alldl(url, { retries: 3, quality: '720p' });
Enter fullscreen mode Exit fullscreen mode

That's it. One function, every platform.

Why I built it

Most downloader libraries solve one platform well and ignore the rest. Real projects — bots, archivers, content tools, automation — need every platform behind a single stable interface. This package is dependency-free, handles failures gracefully (batch mode never throws), and stays updated as platforms change their frontends.

Try it

If it saves you time, a star on GitHub means a lot. Feedback and issues welcome!

Top comments (0)