Ghost Downloader
Getting Started

Project Overview

Understand what Ghost Downloader is, how it is organized, and where to start.

Ghost Downloader is a cross-platform desktop downloader. For contributors, four facts matter first: the desktop app is built with PySide6, task scheduling runs on an AsyncIO background loop, download capabilities are extended through Feature Packs, and the browser extension forwards web resources to the desktop app through a local WebSocket bridge.

Suggested Reading Order

For a first contribution, start with Ghost-Downloader-3.py, app/services/core_service.py, app/services/feature_service.py, and the target features/*_pack.

Module Boundaries

ModuleResponsibility
App entryGhost-Downloader-3.py handles logging, config loading, translation, service startup, and main window creation.
Core serviceCoreService owns the task queue and AsyncIO event loop. Keep protocol-specific logic out of it.
Feature PackEach protocol pack handles URL matching, parsing, and task implementation. The plugin API is still unstable.
Browser extensionThe extension captures resources, and the desktop BrowserService validates the token and creates tasks.
UIapp/view is for interaction and presentation. Protocol parsing should not live there.

Next Steps

On this page