Multi-threaded download manager · Windows

Split the file.
Not your patience.

PDownloader tears large downloads into parallel byte-range segments, resumes what breaks mid-transfer, and pulls YouTube and HLS streams into one clean queue.

download.bin downloading — 8 segments
01020304 05060708
8 parallel segments by default .NET 10 · WPF · MVVM GPL-3.0 licensed
What it does

One engine, every kind of download

The same engine handles plain files, broken connections, and streaming media.

Multi-segment downloading

Splits a file into parallel byte-range requests.

Resume & retry

Segment progress persists to disk between runs.

HLS / DASH streaming

Detects .m3u8 playlists and merges fragments.

YouTube via yt-dlp

Resolves formats and streams; PDownloader handles the transfer.

Browser extension

Context-menu capture and a manual URL popup.

Tray & background service

Coordinates the UI, download window, and tray icon over IPC.

Under the hood

Four small processes, one local bridge

The browser extension talks to a local HTTP bridge; everything else is routed over CFS.

Browser extension context menu / popup
:6287
PDownloader.Core HTTP bridge + CFS router
PDownloader main UI, settings
PDownloader.Tray tray icon
PDownloader.Runner DownloadEngine
Local HTTP bridge — localhost:6287
/ping health check
/download queue a regular file download
/youtube/analyze resolve formats via yt-dlp
/youtube/download start a resolved download
Browser extension

Capture links without leaving the page

Installed automatically alongside the desktop app.

Chrome Edge Brave Cốc Cốc
  • Context menu entries on links, videos, and pages.
  • Popup for entering a URL by hand.
  • Automatic capture of downloadable file clicks.
  • Desktop notifications for queueing and errors.
1click "Download with PDownloader"
2POST localhost:6287/download
3Core parses & forwards over CFS
4Runner enqueues → DownloadEngine starts
Get started

Build it from source, or grab the installer

PDownloader is open source under GPL-3.0.

.NET 10 SDK Windows 10 or later, x64
shell
# restore & build the whole solution
dotnet build PDownloader.sln -c Release

# starts the Core background service automatically
dotnet run --project PDownloader