Medusa is a self-hosted automatic video library manager for TV shows. It monitors configured shows, searches supported Usenet and torrent providers, sends releases to configured download clients, and organizes completed episodes with configurable metadata, subtitles, and post-processing.
On this page: Features · Installation · Updating · Support · Security · Contributing
Project links: Wiki · FAQ · Issues · GitHub Discussions · Discord · Reddit · Changelog
Medusa retrieves show metadata from the selected indexer, searches configured torrent and Usenet providers, sends the selected release to an external download client, and then renames, organizes, enriches, and notifies your media library.
Metadata indexer → Search provider → Download client → Post-processing → Media server (Kodi, Plex, and Emby)
[!NOTE] Medusa requires external torrent or Usenet providers and a compatible download client. It does not provide media or access to provider services.
Use Medusa only with services and content that you are authorized to access.
Notifications through Kodi, Plex, Emby, Discord, Slack, Telegram, email, Trakt, Pushbullet, Pushover, and other supported services.
Docker is the recommended installation method for most server and NAS deployments. Source installation remains useful for developers and unsupported platforms.
| Method | Recommended for | Notes |
|---|---|---|
| Docker | Most server and NAS installations | Recommended for most users |
| From source | Developers and unsupported platforms | Requires Python 3.9 or later |
| Windows setup | Windows users | Source quick start below and platform-specific wiki guidance |
| Community packages | Synology, QNAP, Asustor, and other NAS platforms | Maintained outside the main Medusa repository |
|
Docker Recommended for most server and NAS deployments. |
From source For developers and platforms without a maintained package. |
The official image is pymedusa/medusa on Docker Hub. It is built from this repository and published for linux/amd64, linux/arm/v7, and linux/arm64.
| Tag | Branch | Use |
|---|---|---|
latest | master | Stable installations |
master | master | Stable installations |
develop | develop | Recent changes; may be less stable |
The container listens on port 8081 and uses these volumes:
| Volume | Purpose |
|---|---|
/config | Medusa configuration and database |
/downloads | Download location |
/tv | TV show library |
/anime | Anime library |
Environment variables:
| Variable | Purpose |
|---|---|
PUID | User ID for file permissions |
PGID | Group ID for file permissions |
TZ | Optional timezone (for example Etc/UTC) |
Minimal Docker Compose example:
services:
medusa:
image: pymedusa/medusa:latest
container_name: medusa
ports:
- "8081:8081"
environment:
PUID: "1000"
PGID: "1000"
TZ: "Etc/UTC"
volumes:
- ./config:/config
- ./downloads:/downloads
- ./tv:/tv
- ./anime:/anime
restart: unless-stopped
A community-maintained alternative is available from LinuxServer.io (lscr.io/linuxserver/medusa). It currently publishes amd64 and arm64 images.
Python 3.9 or later is required. Python 3.9 through 3.13 is currently tested in CI.
You also need Git. MediaInfo is recommended for richer video metadata extraction. UnRAR (or a compatible RAR extractor) is recommended when processing archived downloads. Using a virtual environment is strongly recommended.
Linux/macOS quick start:
git clone --branch master --single-branch https://github.com/pymedusa/Medusa.git
cd Medusa
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python start.py
Open http://localhost:8081 after startup.
Use the develop branch only for testing unreleased changes.
On Windows, create and activate a virtual environment with py -m venv .venv and .venv\Scripts\Activate.ps1 before installing requirements. A minimal equivalent setup is:
git clone --branch master --single-branch https://github.com/pymedusa/Medusa.git
cd Medusa
py -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python start.py
A systemd service template is available in runscripts/init.systemd for Linux installations.
Platform-specific installers and NAS packages may be maintained by community projects. Check their documentation and maintenance status before installing.
Use the wiki for detailed installation instructions, Windows setup, Linux service setup, NAS packages, upgrades, migrations, reverse proxy setups, and troubleshooting.
Some older platform-specific wiki pages may require updates. Verify package and dependency versions before following legacy instructions.
| Channel | Branch or image tag | Intended use |
|---|---|---|
| Stable | master / latest | Normal installations |
| Development | develop | Testing recent changes |
The Docker develop tag tracks recent changes from the develop branch and may be less stable than latest.
develop should expect unreleased changes.|
Discord Real-time community discussion and user help. |
Reddit community Browse community questions, discussions, and shared experience. |
Back up the complete configuration directory and all database files before upgrading, changing branches, testing a development build, or migrating from another application. Follow the relevant migration documentation before modifying or deleting database files.
Users migrating from SickBeard or SickRage can find guidance in the installation guide.
Please report security vulnerabilities through GitHub's private vulnerability reporting. Do not disclose sensitive vulnerability details in a public issue.
Contributions are welcome. Create a focused branch from the appropriate upstream branch and read CONTRIBUTING.md before opening a pull request. Please follow the Code of Conduct.
Developer resources include the source-controlled API v2 contract.
Medusa is licensed under the GNU General Public License v3.0. See COPYING.txt.
LinuxServer.io maintains a community Docker image for Medusa.
Service icons are sourced from Simple Icons and are used only to identify their respective services.
Medusa can use MediaInfo to improve video metadata extraction. MediaInfo is optional for source installations and is included in the official Docker image.
Python
57.5%
JavaScript
20.6%
Vue
18.6%
CSS
2.3%
Medusa is a self-hosted automatic video library manager for TV shows. It monitors configured shows, searches supported Usenet and torrent providers, sends releases to configured download clients, and organizes completed episodes with configurable metadata, subtitles, and post-processing.
On this page: Features · Installation · Updating · Support · Security · Contributing
Project links: Wiki · FAQ · Issues · GitHub Discussions · Discord · Reddit · Changelog
Medusa retrieves show metadata from the selected indexer, searches configured torrent and Usenet providers, sends the selected release to an external download client, and then renames, organizes, enriches, and notifies your media library.
Metadata indexer → Search provider → Download client → Post-processing → Media server (Kodi, Plex, and Emby)
[!NOTE] Medusa requires external torrent or Usenet providers and a compatible download client. It does not provide media or access to provider services.
Use Medusa only with services and content that you are authorized to access.
Notifications through Kodi, Plex, Emby, Discord, Slack, Telegram, email, Trakt, Pushbullet, Pushover, and other supported services.
Docker is the recommended installation method for most server and NAS deployments. Source installation remains useful for developers and unsupported platforms.
| Method | Recommended for | Notes |
|---|---|---|
| Docker | Most server and NAS installations | Recommended for most users |
| From source | Developers and unsupported platforms | Requires Python 3.9 or later |
| Windows setup | Windows users | Source quick start below and platform-specific wiki guidance |
| Community packages | Synology, QNAP, Asustor, and other NAS platforms | Maintained outside the main Medusa repository |
|
Docker Recommended for most server and NAS deployments. |
From source For developers and platforms without a maintained package. |
The official image is pymedusa/medusa on Docker Hub. It is built from this repository and published for linux/amd64, linux/arm/v7, and linux/arm64.
| Tag | Branch | Use |
|---|---|---|
latest | master | Stable installations |
master | master | Stable installations |
develop | develop | Recent changes; may be less stable |
The container listens on port 8081 and uses these volumes:
| Volume | Purpose |
|---|---|
/config | Medusa configuration and database |
/downloads | Download location |
/tv | TV show library |
/anime | Anime library |
Environment variables:
| Variable | Purpose |
|---|---|
PUID | User ID for file permissions |
PGID | Group ID for file permissions |
TZ | Optional timezone (for example Etc/UTC) |
Minimal Docker Compose example:
services:
medusa:
image: pymedusa/medusa:latest
container_name: medusa
ports:
- "8081:8081"
environment:
PUID: "1000"
PGID: "1000"
TZ: "Etc/UTC"
volumes:
- ./config:/config
- ./downloads:/downloads
- ./tv:/tv
- ./anime:/anime
restart: unless-stopped
A community-maintained alternative is available from LinuxServer.io (lscr.io/linuxserver/medusa). It currently publishes amd64 and arm64 images.
Python 3.9 or later is required. Python 3.9 through 3.13 is currently tested in CI.
You also need Git. MediaInfo is recommended for richer video metadata extraction. UnRAR (or a compatible RAR extractor) is recommended when processing archived downloads. Using a virtual environment is strongly recommended.
Linux/macOS quick start:
git clone --branch master --single-branch https://github.com/pymedusa/Medusa.git
cd Medusa
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python start.py
Open http://localhost:8081 after startup.
Use the develop branch only for testing unreleased changes.
On Windows, create and activate a virtual environment with py -m venv .venv and .venv\Scripts\Activate.ps1 before installing requirements. A minimal equivalent setup is:
git clone --branch master --single-branch https://github.com/pymedusa/Medusa.git
cd Medusa
py -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python start.py
A systemd service template is available in runscripts/init.systemd for Linux installations.
Platform-specific installers and NAS packages may be maintained by community projects. Check their documentation and maintenance status before installing.
Use the wiki for detailed installation instructions, Windows setup, Linux service setup, NAS packages, upgrades, migrations, reverse proxy setups, and troubleshooting.
Some older platform-specific wiki pages may require updates. Verify package and dependency versions before following legacy instructions.
| Channel | Branch or image tag | Intended use |
|---|---|---|
| Stable | master / latest | Normal installations |
| Development | develop | Testing recent changes |
The Docker develop tag tracks recent changes from the develop branch and may be less stable than latest.
develop should expect unreleased changes.|
Discord Real-time community discussion and user help. |
Reddit community Browse community questions, discussions, and shared experience. |
Back up the complete configuration directory and all database files before upgrading, changing branches, testing a development build, or migrating from another application. Follow the relevant migration documentation before modifying or deleting database files.
Users migrating from SickBeard or SickRage can find guidance in the installation guide.
Please report security vulnerabilities through GitHub's private vulnerability reporting. Do not disclose sensitive vulnerability details in a public issue.
Contributions are welcome. Create a focused branch from the appropriate upstream branch and read CONTRIBUTING.md before opening a pull request. Please follow the Code of Conduct.
Developer resources include the source-controlled API v2 contract.
Medusa is licensed under the GNU General Public License v3.0. See COPYING.txt.
LinuxServer.io maintains a community Docker image for Medusa.
Service icons are sourced from Simple Icons and are used only to identify their respective services.
Medusa can use MediaInfo to improve video metadata extraction. MediaInfo is optional for source installations and is included in the official Docker image.
(top 30 of 283)
Python
57.5%
JavaScript
20.6%
Vue
18.6%
CSS
2.3%