Convert Figma logo to code with AI

persepolisdm logopersepolis

Persepolis is a download manager written in Python.

6,269
653
6,269
297

Top Related Projects

35,422

aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.

Official Transmission BitTorrent client repository

qBittorrent BitTorrent client

1,538

Deluge BitTorrent client - Git mirror, PRs only

2,932

Lightweight CLI download accelerator

Quick Overview

Persepolis is an open-source download manager and GUI for aria2, designed to be a feature-rich, user-friendly application for managing downloads. It supports various protocols including HTTP, HTTPS, FTP, and BitTorrent, and offers a clean, intuitive interface for users to easily manage their downloads.

Pros

  • User-friendly interface with a modern, sleek design
  • Cross-platform compatibility (Windows, macOS, and Linux)
  • Supports multiple download protocols and concurrent downloads
  • Integrates well with browsers through extensions

Cons

  • Depends on aria2 as its core download engine
  • May have a steeper learning curve for users unfamiliar with advanced download managers
  • Some users report occasional stability issues or crashes
  • Limited documentation for advanced features or troubleshooting

Getting Started

To get started with Persepolis Download Manager:

  1. Download the appropriate installer for your operating system from the official releases page.
  2. Install the application following the instructions for your OS.
  3. Launch Persepolis Download Manager.
  4. (Optional) Install browser extensions for easier integration:
  5. Start adding downloads by clicking the "+" button or using the browser extension.

For more detailed instructions and advanced usage, refer to the Persepolis wiki.

Competitor Comparisons

35,422

aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.

Pros of aria2

  • Lightweight and efficient command-line download utility
  • Supports a wide range of protocols (HTTP, HTTPS, FTP, BitTorrent, Metalink)
  • Highly customizable with extensive configuration options

Cons of aria2

  • Lacks a graphical user interface, which may be less user-friendly for some
  • Requires command-line knowledge for optimal usage
  • Limited built-in scheduling and queue management features

Code Comparison

aria2:

void HttpSkipResponseCommand::executeInternal() {
  if (response_->headerComplete()) {
    skipBody();
  } else {
    readHeader();
  }
}

Persepolis:

def startQueue(self, category=None, start_time=None):
    self.queue_model.start_queue(category, start_time)
    self.play_queue = True
    self.stopAction.setEnabled(True)
    self.startAction.setEnabled(False)

Summary

aria2 is a powerful, lightweight command-line download manager with extensive protocol support and customization options. Persepolis, on the other hand, provides a user-friendly graphical interface built on top of aria2, making it more accessible for users who prefer GUI applications. While aria2 offers more fine-grained control through its command-line interface, Persepolis simplifies the download management process with its intuitive design and additional features like scheduling and queue management.

Official Transmission BitTorrent client repository

Pros of Transmission

  • More mature and widely-used project with a larger user base
  • Supports a broader range of platforms, including desktop and server environments
  • Offers advanced features like remote control and web interface

Cons of Transmission

  • Less user-friendly interface, especially for beginners
  • Fewer built-in download management features compared to Persepolis
  • Limited integration with web browsers for capturing downloads

Code Comparison

Transmission (C):

static void
tr_peerMgrGotBadPiece(tr_torrent * tor, tr_piece_index_t pieceIndex)
{
    assert(tr_isTorrent(tor));
    assert(pieceIndex < tor->info.pieceCount);

    tr_peerMgrLock(tor);

Persepolis (Python):

def startQueue(self, category=None):
    self.queue_list = []
    if category:
        for gid in self.category_dict[category]:
            self.queue_list.append(gid)
    else:
        for category in self.category_dict.keys():

Both projects serve as download managers, but Transmission focuses on BitTorrent protocol, while Persepolis is a front-end for aria2 with a broader scope of download types. Transmission is more established and feature-rich for torrent management, while Persepolis offers a more user-friendly interface and integration with web browsers for general download management.

qBittorrent BitTorrent client

Pros of qBittorrent

  • More feature-rich and versatile torrent client
  • Supports a wider range of torrent protocols and functionalities
  • Has a larger and more active community for support and development

Cons of qBittorrent

  • Larger codebase and potentially more complex for new contributors
  • May have a steeper learning curve for basic users
  • Requires more system resources compared to lightweight alternatives

Code Comparison

qBittorrent (C++):

void TorrentHandle::setSequentialDownload(bool b)
{
    if (b != isSequentialDownload()) {
        m_nativeHandle.set_sequential_download(b);
        m_session->handleTorrentSequentialDownloadChanged(this);
    }
}

Persepolis (Python):

def startQueue(self, category=None):
    self.start_time = int(time.time())
    self.queue_list = []
    if category:
        for gid in self.category_dict[category]:
            self.queue_list.append(gid)

The code snippets show different approaches and languages used in the projects. qBittorrent uses C++ for low-level torrent handling, while Persepolis utilizes Python for higher-level download management.

1,538

Deluge BitTorrent client - Git mirror, PRs only

Pros of Deluge

  • Full-featured BitTorrent client with extensive plugin support
  • Cross-platform compatibility (Windows, macOS, Linux)
  • Supports both desktop and web-based interfaces

Cons of Deluge

  • Steeper learning curve for new users
  • Less focus on download management features
  • Slower development cycle and updates

Code Comparison

Persepolis (Python):

def startQueue(self):
    self.start_time = time.time()
    self.queue_model.sendList.reverse()
    self.queue_model.start_queue()
    self.checkQueue()

Deluge (Python):

def start(self):
    if self.torrent.status.state == "Stopped":
        self.torrent.resume()
    self.update_state()

Summary

Deluge is a comprehensive BitTorrent client with advanced features and plugin support, while Persepolis focuses on download management with a user-friendly interface. Deluge offers more flexibility for power users, but Persepolis may be more accessible for those primarily interested in managing downloads. Both projects are open-source and written in Python, but their code structures reflect their different focuses and approaches to functionality.

2,932

Lightweight CLI download accelerator

Pros of axel

  • Lightweight command-line tool, ideal for server environments
  • Supports multiple protocols (HTTP, HTTPS, FTP, FTPS)
  • Can be easily integrated into scripts and automated workflows

Cons of axel

  • Lacks a graphical user interface, which may be less user-friendly for some
  • Limited features compared to full-fledged download managers
  • May require additional configuration for optimal performance

Code comparison

Axel (C):

void add_url(char *url)
{
    conn_t *conn;
    conn = malloc(sizeof(conn_t));
    memset(conn, 0, sizeof(conn_t));
    conn->conf = conf;
    conn->url = url;
    array_add(conf->conn, conn);
}

Persepolis (Python):

def addLinkSpider(self, url):
    dictionary = {'url': url}
    # Add link to the queue
    self.links_queue.put(dictionary)
    # Start new thread
    new_thread = WebSpiderThread(self, dictionary)
    self.threadPool.append(new_thread)
    self.threadPool[-1].start()

Both projects aim to accelerate downloads, but Axel focuses on simplicity and command-line usage, while Persepolis offers a more feature-rich graphical interface. Axel is better suited for advanced users and server environments, whereas Persepolis caters to a broader audience with its user-friendly GUI and additional features.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Persepolis Download Manager

Latest stable release Total downloads GitHub license Build Status GitHub last commit GitHub contributors GitHub commit activity the past week, 4 weeks, year AUR Twitter Follow

Content

About

Persepolis is a download manager written in Python. Persepolis is a sample of free and open source software. It's developed for GNU/Linux distributions, BSDs, MacOS, and Microsoft Windows.

Features

  • Multi-segment downloading(64 connections)
  • Scheduling downloads
  • Download queuing
  • Download video from youtube and ...
  • and many more!

Demonstration clip: Demonstration video

How to install PersepolisDM?

Please checkout Persepolis wiki

FAQ

Where does the name come from?

From Wikipedia: Persepolis (Greek: Περσέπολις Persépolis; "the Persian city") or Parsa (Old Persian: 𐎱𐎠𐎼𐎿 Pārsa; "Persia"), also known as Takht-e-Jamshid (Persian: تخت جمشيد‎‎ Taxt e Jamšid; "Throne of Jamshid"), was the ceremonial capital of the Achaemenid Empire (ca. 550–330 BC). Persepolis is situated 60 km northeast of the city of Shiraz in Fars Province, Iran. The earliest remains of Persepolis date back to 515 BC. It exemplifies the Achaemenid style of architecture. UNESCO declared the ruins of Persepolis a World Heritage Site in 1979.

How can I install Persepolis?

Read our wiki or check Persepolis website for more information.

Screenshots

GNU/LinuxMac OSXWindows

Credits

Alireza Amirsamimi: Persepolis lead developer and manager
GitHub | E-mail

Mohammadreza Abdollahzadeh: Arch Linux and BSD support
GitHub | E-mail

Mostafa Asadi: Ubuntu, Debian and Windows support
GitHub | E-mail

Sadegh Alirezaie: Persepolis website support
GitHub | E-mail

Jafar Akhondali: Browsers add-ons support
GitHub | E-mail

Kia Hamedi: Mac OSX support
GitHub | E-mail

H Rostami: UI translation, Fedora & OpenSuse support
GitHub | E-mail

Ehsan Titish: Mac OSX support
GitHub | E-mail

MohammadAmin Vahedinia: Mac OSX support
GitHub | E-mail

Persepolis website (En) | Persepolis website (Fa) | Twitter | Telegram Channel

Acknowledgments:

YT-DLP project

FFmpeg project

PySide project

Python Requests project


Is there any mistake in README.md? Report it in issue tracker or correct it by yourself.