explaingit

persepolisdm/persepolis

7,312PythonAudience · generalComplexity · 3/5Setup · moderate

TLDR

Free open-source desktop download manager for Linux, macOS, and Windows that speeds up large downloads by splitting files into up to 64 simultaneous connections and supports downloading videos from YouTube.

Mindmap

mindmap
  root((Persepolis))
    What it does
      Multi-segment download
      Video downloading
      Queue scheduling
    Tech Stack
      Python
      PySide Qt
      yt-dlp
      FFmpeg
    Platforms
      Linux
      macOS
      Windows
    Audience
      General users
      Power downloaders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Download large files significantly faster by splitting them into parallel connection segments instead of a single stream.

USE CASE 2

Schedule downloads to start overnight or queue multiple files to download one after another automatically.

USE CASE 3

Download videos from YouTube or other video platforms directly to your computer from a desktop GUI.

USE CASE 4

Replace your browser's built-in downloader with a full-featured download manager that handles queues and retries.

Tech stack

PythonPySideQtyt-dlpFFmpeg

Getting it running

Difficulty · moderate Time to first run · 30min

Requires yt-dlp and FFmpeg installed as external dependencies before video downloading works.

In plain English

Persepolis is a free, open-source download manager with a graphical interface, written in Python. It runs on GNU/Linux, BSD systems, macOS, and Windows, making it available to users across all major desktop platforms. The main purpose of the application is to help users download files from the internet more efficiently than a standard browser allows. It splits files into up to 64 simultaneous connection segments, which can significantly speed up large downloads by fetching multiple pieces at the same time. Beyond raw speed, it supports scheduling downloads to start at specific times, queuing multiple downloads to run one after another, and downloading videos from YouTube and similar video platforms. The project relies on yt-dlp for video downloading and FFmpeg for media processing. The graphical interface is built with PySide, which is the Python version of the Qt application framework. These dependencies are documented in the credits section of the README. The name comes from the ancient city of Persepolis, the ceremonial capital of the Achaemenid Empire in what is now Iran. The ruins of the city are a UNESCO World Heritage Site. The development team is based around a lead developer with contributors handling platform-specific support for Arch Linux, BSD, Ubuntu, Debian, Windows, macOS, and Fedora, as well as browser extensions and translation. Installation instructions are maintained in the project wiki rather than the main README. The project also has an official website in both English and Persian, and a Telegram channel for announcements.

Copy-paste prompts

Prompt 1
Show me how yt-dlp is integrated into a PySide/Qt Python desktop app to handle video downloading from YouTube with a progress bar.
Prompt 2
How do I build a multi-segment file downloader in Python that splits a file URL into parallel chunks using range requests and reassembles them on disk?
Prompt 3
I want to add a download scheduler to my Python desktop app so users can set a start time for a download. What's the cleanest approach using PySide?
Prompt 4
Show me how to package a Python PySide6 Qt application for distribution on Linux, macOS, and Windows.
Open on GitHub → Explain another repo

← persepolisdm on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.