Library / SDK
debridmediamanager/debrid-media-manager avatar
debridmediamanager/debrid-media-manager

Debrid Media Manager for Curated Debrid Libraries

Curate an inifinite media library

1,461 stars95 forksTypeScriptAGPL-3.0

At a glance

What is it?
Debrid Media Manager is a TypeScript web application for adding, organizing, sharing, and playing media held by Debrid providers. It suits users who want a large shared library with more curation than a basic torrent client, but it requires a MySQL database and provider integrations.
Who is it for?
Adopt Debrid Media Manager if you already use Real-Debrid, AllDebrid, TorBox, or another supported Debrid service and want a browser-based library with search, sharing, metadata, and Stremio support. Do not adopt it as a replacement for automatic monitoring or a self-contained media server, because the README says the Library page retrieves and caches torrent data when opened.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Debrid Media Manager Changes About a Debrid Library

Debrid Media Manager addresses the management problem that appears after a user has connected a Debrid provider such as Real-Debrid, AllDebrid, or TorBox. Those services provide shared storage for torrent files, while DMM presents a browser application for selecting content, inspecting the resulting library, and opening media through compatible players. The target audience is a user who wants a movie and television library without managing a conventional local storage budget or maintaining a large local torrent collection.

The application is not itself a Debrid provider. It sends supported submissions to providers and uses their WebDAV interfaces when the user connects the resulting library to Plex, Emby, Jellyfin, Infuse, or another compatible client. The README describes DMM as a free and open source web app, while the repository identifies the license as AGPL-3.0. That distinction matters for adoption: the user still needs a provider account and must evaluate the provider's own limits, availability, and terms separately from DMM's interface.

DMM also goes beyond a torrent download screen. Its stated features include title grouping, duplicate cleanup, failed and slow download visibility, movie and television information pages, Trakt synchronization, anonymous library sharing, and a Stremio addon with a separate Cast addon. This puts it closer to a collection front end than to a bare download utility, although it still depends on external services for torrent search, metadata, playback, and the actual Debrid storage.

How DMM Stores, Adds, and Exposes Media

The repository is a Next.js TypeScript application with Prisma, MySQL, Redis, and a Docker deployment that includes a web service, Redis, and a Tor service. The package metadata identifies Next.js 15.5.15, React 19.1.1, Prisma 6.5.0, and Redis support through ioredis. The README's setup requirement is a MySQL database, configured through DATABASE_URL in .env.local.

The Add controls accept several input forms. The documentation lists full magnet links, standalone v1 info hashes, and native .torrent files. Real-Debrid, AllDebrid, TorBox, Premiumize, Offcloud, and Debrid-Link are named as supported services for these additions. TorBox additionally accepts direct HTTP(S) download links. Pasted magnets retain names, trackers, webseeds, and other parameters. Hexadecimal and base32 topics, including percent-encoded query parameters, are normalized to literal hexadecimal urn:btih: topics at provider boundaries.

Native torrent files are uploaded as-is rather than being converted into a hash. The README warns that native uploads routed through anticors require byte-preserving request streaming, identified as c4159f5 or later, because decoding multipart bodies as text can corrupt binary torrent pieces. Premiumize uploads use DMM's same-origin /api/premiumize/upload endpoint. Debrid-Link has a narrower distinction: standalone hash lists remain cached-only, while full magnets and .torrent files explicitly request a download and may consume the account quota.

The Library page does not perform background monitoring. According to the README, it obtains torrent information when the page is opened and caches it in the browser's local storage. This design reduces the need for a constant server-side polling loop, but it also means that the displayed collection depends on page visits and browser state. Shared libraries are anonymous. The README says sharing compresses filename, magnet hash, and file size into the URL, and that no shared data is stored in a database.

Debrid Media Manager Installation and First Library Visit

The README gives a source-based setup path rather than a hosted quick-start command. First prepare MySQL, clone the repository, create the local environment file, and fill in DATABASE_URL. The documented copy command is:

bash
cp .env.example .env.local

After editing .env.local, install the dependencies with the repository's package manager command. The README specifies npm install:

bash
npm install

For development, start the Next.js development server:

bash
npm run dev

The README then directs the user to http://localhost:3000. A first visit should be treated as a configuration check rather than an automatic import. Open the application, connect the intended Debrid account through the interface described by the project, and use the Library or Add controls described in the README. The exact provider authorization interface is not documented in the README, so there is no justified command or configuration snippet for that step.

The optional integrations use specific environment keys: TMDB_KEY, OMDB_KEY, and MDBLIST_KEY for enhanced metadata; TRAKT_CLIENT_ID and TRAKT_CLIENT_SECRET for Trakt; and PROXY for SOCKS5 stream proxying. The environment example also includes DMM_ORIGIN, DMMCAST_SALT, DMM_PROBLEM_SECRET, REQUEST_TIMEOUT, and DMM_MAX_UNCACHED_LINKS. Do not treat every key in the example as mandatory. The README explicitly identifies DATABASE_URL as required and presents the metadata, Trakt, and proxy settings as optional, while the example file provides additional service-specific settings.

Docker Swarm Deployment and Operational Constraints

The repository includes Docker-related files rather than only a local Node.js workflow. The README gives this Swarm deployment sequence:

bash
docker swarm init
docker stack deploy -c docker-compose.yml dmm

The application is then documented as available at http://localhost:3000. The compose file defines Redis with append-only persistence and a 128 MB memory limit, a Tor service, and four web replicas. It injects REDIS_URL=redis:6379 into the web service and depends on both Redis and Tor. The web image is built as dmm-prod:latest according to the compose configuration, so a deployment based on that file assumes the image already exists or has been built outside the two README commands.

The compose file also exposes a health check against /api/healthz. Its configuration sets a 60-second start period, a five-second timeout, and three retries. This is operationally relevant because provider calls and startup initialization can involve several services. The compose comments identify custom DNS servers for the web service, and the Docker health check uses curl and grep inside the image. These details make Docker deployment more involved than installing the Next.js package alone.

The repository's Dockerfile uses Node.js 22 slim, installs native build tools for dependencies, runs npx prisma generate before npm run build, and starts the standalone Next.js server on port 3000. The image includes the PWA build output and sets PORT=3000 and HOSTNAME="0.0.0.0". These are concrete deployment constraints for operators who need container networking, database access, and persistent service configuration.

Playback, Sharing, and Search Boundaries

DMM's playback path is an integration rather than a built-in transcoder. The README says the Stremio addon can stream a user's Debrid library directly through Stremio and that a Cast addon can share those streams. The Debrid provider's WebDAV interface can separately expose the library to Infuse, Plex, Emby, or Jellyfin. DMM therefore sits between content selection and an external playback client. It does not document local transcoding, direct playback from the DMM browser page, or a guarantee that every external client supports the same provider features.

The Stremio integration is most relevant to users who already organize viewing through Stremio. The movie and television pages add cast, crew, trailers, related content, and person filmography pages, which makes DMM useful for discovery as well as library administration. Trakt synchronization covers a user's watchlist, collection, and custom lists. These features reduce the need to search each source separately, but they still depend on the relevant external API and the availability of metadata there.

Torrent search detects content already downloaded or currently downloading in the library. That is different from automatic monitoring: detection occurs during the search or library workflow described by the project, not through a background watcher. Sharing is intentionally minimal. The README states that a shared page contains filename, magnet hash, and file size, compressed into a URL and displayed through hashlists.debridmediamanager.com. It does not claim that the shared page transfers provider credentials or stores account identity. Users should understand that a shared URL is a distribution mechanism for torrent metadata, not a private account-backed playback session.

Why DMM Differs from Kodi, Stremio, and -arr Workflows

The README itself contrasts DMM with Kodi, FEN, Stremio, and '-arr apps. Its stated reason for choosing DMM is curation. The author says they prefer selecting large remux releases and found the previous setup too time consuming to maintain. That is a product-positioning statement, not a benchmark, but it identifies the practical difference. DMM emphasizes browsing and managing a curated collection rather than relying primarily on a media-center interface or an automation-oriented acquisition stack.

The alternative is not simply another Debrid front end. A basic Debrid-capable player can stream provider content but may provide less library organization, duplicate handling, provider-aware additions, or sharing. A conventional '-arr-style workflow can automate acquisition and maintenance, but it requires a different operational model and may be preferable for users who want scheduled monitoring rather than manual curation. Stremio remains useful as a playback client, and DMM integrates with it rather than replacing the need for Stremio itself.

DMM is the wrong tool when automatic background monitoring is non-negotiable. Its README explicitly says it does not monitor the library. It is also a poor fit for users who want a standalone local media server with no Debrid provider, or who expect DMM's browser interface to replace a database-backed automation system. The project depends on MySQL for its documented setup and on one or more external services for provider operations and optional metadata.

Maintenance, Licensing, and Upgrade Work

The repository is not archived, and the last push was on 2026-10-16. The repository has no GitHub releases, so version history through named releases is not available from the repository facts. The package version in package.json is 4.0.1, but the absence of GitHub releases means that the project should not be described as having a documented release cadence based on release artifacts.

The license is AGPL-3.0. The package metadata specifies AGPL-3.0-only. That is the relevant license identifier to check when incorporating or modifying the application. This article does not interpret the license or provide legal advice. Operators should review the LICENSE file and determine how their deployment, modifications, and network use interact with it.

Maintenance work is concentrated in the application stack and its integrations. package-lock.json pins dependency resolution, while the Docker build performs Prisma generation before building Next.js. Provider APIs, upload paths, Stremio behavior, Trakt credentials, metadata services, and the Tor and Redis services are all relevant to upgrades. The package scripts also define test:unit, test:integration, test:e2e, coverage, typecheck, lint, and format commands, but the README does not describe their execution requirements or deployment policy.

Editorial conclusion

Adopt Debrid Media Manager if you already use Real-Debrid, AllDebrid, TorBox, or another supported Debrid service and want a browser-based library with search, sharing, metadata, and Stremio support. Do not adopt it as a replacement for automatic monitoring or a self-contained media server, because the README says the Library page retrieves and caches torrent data when opened. Before deploying, verify the MySQL connection, provider account setup, DMM_ORIGIN, DMM_PROBLEM_SECRET, and any required integration keys in .env.example.

Frequently asked questions

What does Debrid Media Manager do?

Debrid Media Manager is a web app for adding movies and television torrents to supported Debrid providers, organizing the resulting library, searching for content, sharing collections, and integrating playback through Stremio or WebDAV-compatible clients.

How do I install Debrid Media Manager?

The README requires MySQL, a local environment file, and npm dependencies. It documents `cp .env.example .env.local`, `npm install`, and `npm run dev`, then directs the user to `http://localhost:3000`.

Does Debrid Media Manager continuously monitor a library?

No. The README states that it does not perform monitoring. Library information is retrieved when the Library page is opened and cached in the browser's local storage.

Which Debrid providers can I use with Debrid Media Manager?

The README names Real-Debrid, AllDebrid, and TorBox as examples of Debrid services. Its Add-button documentation also lists Premiumize, Offcloud, and Debrid-Link, with some provider-specific differences for uploads and direct links.

Does Debrid Media Manager include automatic background monitoring?

No. Automatic background monitoring is explicitly excluded by the README's description. A user who needs scheduled acquisition or continuous status polling should compare DMM with a workflow built for that requirement.

Official sources

  1. debridmediamanager/debrid-media-manager on GitHub
  2. Issues
  3. License: AGPL-3.0
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/debridmediamanager-debrid-media-manager.svg)](https://hysenlabs.com/projects/debridmediamanager-debrid-media-manager)

Was this useful?