What is OsumDL?

OsumDL is a free, open-source video downloader that supports 25+ platforms — YouTube, Instagram, TikTok, Vimeo, Pornhub, XVideos, and many more. It ships as both a powerful CLI tool and this polished web interface.

Under the hood, OsumDL uses yt-dlp — the fastest, most actively maintained video downloader engine available — combined with custom extractors for sites that need special handling.

The web interface is built with FastAPI and the Tabler UI design system, giving you real-time download progress via Server-Sent Events and a fully documented REST API.

Architecture

extractors/       ← Site-specific download logic (25+ extractors)
core/             ← Shared async service layer
  ├── models.py   ← Pydantic models (DownloadJob, SiteInfo …)
  ├── downloader.py ← Async wrappers (asyncio.to_thread)
  └── queue.py    ← In-memory async job queue

download.py       ← CLI app   (uses core/)
webapp/           ← FastAPI app (uses core/)
  ├── main.py     ← App factory + middleware
  ├── routers/    ← Downloads, Sites, Health
  ├── templates/  ← Jinja2 + Tabler UI pages
  └── static/     ← CSS + JS

Adding a new site extractor in extractors/ automatically enables it in both the CLI and the web app — no other changes required.

Tech Stack

Python 3.11+
Core language
FastAPI
Async web framework
Jinja2 + Tabler
Server-side templates & UI
yt-dlp
Download engine
Pydantic v2
Data validation & settings
Docker
Containerized deployment

CLI Quick Start

# Install
pip install -r requirements.txt

# Single URL
python download.py https://youtube.com/...

# Batch file
python download.py urls.txt

# Web app
python run_webapp.py
# → http://localhost:8000

Open Source

OsumDL is free and open source. Star it, fork it, contribute!

View on GitHub