MediaFusion is a self hosted Stremio addon that fans out across indexers and debrid providers
The ultimate open-source streaming platform
At a glance
- What is it?
- MediaFusion is a Python and FastAPI streaming platform that aggregates catalogues from indexers and RSS feeds, resolves them through debrid providers, and exposes the result as a Stremio addon, a Kodi source, a browser player or a Torznab API. It suits self hosters who want one aggregation layer under their own control, and the legal and stability caveats are real.
- Who is it for?
- Adopt MediaFusion if you want a single aggregation layer you host yourself, with a Torznab endpoint for Radarr and Sonarr and encrypted credentials in the manifest URL, and do not adopt it if you want a service with a support contract, because the developer states that no warranties are given for third party sources or for the community hosted instances.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 10 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
One aggregation layer instead of ten addons
MediaFusion positions itself as an open source streaming platform with one job: gather streams from the sources you configure and hand the result to whichever client you use. The README describes it as aggregating streams from configured sources, managing playback via supported providers, and letting you watch on Stremio, on Kodi, or directly in the browser.
The topic tags say what it is built for: stremio-addon, stremio-addons, debrid, movies, series and bollywood. The client list in the feature summary makes the point more sharply: Stremio, Kodi, a browser player, and a Torznab API for Radarr and Sonarr. That last entry is the one that separates MediaFusion from a plain Stremio addon, because Torznab means the same catalogue can feed an automated media request stack rather than a person clicking through an interface.
The aggregation inputs are equally concrete. The README lists Prowlarr, Jackett, public indexers, Torrentio, Zilean and RSS feeds as stream sources, and catalogues covering movies, series, live TV and sports in 50 or more languages. So the architecture is a fan out: you point it at a set of indexers, it queries them, normalises what it finds, and re-exposes the result through a single addon URL.
That is the practical problem it solves. The alternative is a browser full of installed addons, each with its own configuration, its own update cycle and its own partial catalogue. MediaFusion consolidates that into one service you control.
Debrid providers are the resolution layer, not a side feature
The feature summary describes Debrid and P2P streaming, naming Real-Debrid, AllDebrid, Premiumize, Torbox and eight more providers. A debrid service is a hosted cache that resolves a torrent to an instant playable link, and it is the component that turns an indexer hit into something a client can actually play.
Placing that resolution in the platform rather than in the client is the main design decision. Once the provider is chosen and the credential stored, the user never has to think about the torrent again. From the client side the result looks like an ordinary stream URL, which is what lets the same backend serve Stremio, Kodi and a browser player.
The credential handling is the part with an unusual design choice, and it is worth understanding before you point the tool at a paid account. The README lists encrypted user data as a feature, with AES-256 encrypted credentials in manifest URLs. The idea is that the manifest URL handed to a client carries the user specific data in encrypted form, so the client sees an opaque token rather than your provider key in plain text. pycryptodome is in the dependency list, which is consistent with that claim.
There is a genuine trade-off in that scheme. The credential travels with the manifest URL, so anyone who obtains that URL holds the encrypted payload, and the decryption key has to exist on the server side for the request to work. The README does not document key rotation, revocation or what happens when a device is reinstalled, so treat the manifest URL as a secret of the same order as the account it unlocks.
The backend stack: FastAPI, Redis, task queues and a Rust worker
The pyproject manifest is the most revealing document in the repository. The project name is mediafusion at version 6.1.6, it requires Python 3.12 or later, and the licence is MIT.
The server side is FastAPI with uvicorn, pydantic for validation and pydantic-settings for configuration, which is the standard way this kind of service reads its environment. Data work goes through sqlmodel, alembic for migrations and asyncpg for Postgres, so there is a relational store behind the catalogue. Redis appears twice, once as redis[hiredis] and once through taskiq-redis, and taskiq is the task queue, which is how long running scraping and provider calls get off the request path.
The scraping stack is wide. scrapy is present, along with scrapling[fetchers], beautifulsoup4, httpx, aiohttp-socks and socksio for proxy aware fetching, and ratelimit and tenacity for pacing and retry. yt-dlp and parsett handle media parsing, bencodepy handles torrent metadata, and thefuzz does fuzzy title matching so a catalogue entry still matches when the indexer spells the title differently. There is also aiowebdav, pikpakapi, aioqbt, seedrcc, m3u-ipytv and telethon, which are the connectors for the various non indexer sources.
The Makefile shows the other half. It defines a build that produces a Docker image, plus targets for a Rust build, a Rust test and a Rust dev server, and it names a parity harness with a Rust host on port 8001 and a Python host on port 8000, which is how a Rust implementation and the Python one are compared side by side. The python-deprecated directory at the top level suggests the older implementation is being kept around for reference while the work moves elsewhere.
Deploying it yourself with Docker
The fastest path is a community instance and requires nothing from you. The README lists three: ElfHosted at mediafusion.elfhosted.com, an ElfHosted dev and beta instance at mediafusion-dev.elfhosted.com, and Midnight at mediafusionfortheweebs.midnightignite.me. The stated procedure is to open an instance, configure your preferences, and click Install in Stremio. A community instance is the right way to try the software before deciding to host it.
For self hosting, the README names Docker Compose, Kubernetes or direct binary deployment, and the documentation has a Docker Compose Deployment page and a Configuration Reference page that explains all environment variables. The Makefile targets the container build:
docker build --build-arg VERSION=$(VERSION) -t $(DOCKER_IMAGE) -f deployment/Dockerfile .The image naming and platform targets are set in the same file:
IMAGE_NAME = mediafusion
DOCKER_REPO = mhdzumair
PLATFORMS = linux/amd64,linux/arm64Two details in the Makefile are worth knowing about. There is a comment noting that the image is a single one because the worker runs via a CMD override, so the API and the background worker share an image and differ by command. And the proxy settings are baked in as HTTP_PROXY and HTTPS_PROXY pointing at a local address, with a comment about ignoring file events during build and run to debounce rapid saves and avoid overlapping restarts racing for the same port. For an install in a region where indexers are slow or blocked, the proxy variables are the ones you will most likely need to change.
The documented minimum for running from source is Python 3.12, and the project uses uv, since a uv.lock is committed at the top level.
What the disclaimer actually tells you about reliability
The disclaimer in the README is long, and it is the most useful paragraph in the project for anyone making a decision. The developer states that the software is developed and published for educational and personal use only, that no warranties are made and no responsibility is accepted for how the software is used, for the availability or content of any third party sources it connects to, or for the operation of any community hosted instance.
That third item is the practical one. Community instances are hosted by independent community members, and the developer says he collaborates with instance operators but is not responsible for their availability, uptime, hosting costs, or any modifications made to the software running on them. In other words, the ElfHosted and Midnight instances are free gifts with no service level, and the code running on them may not match the code you would run yourself. If uptime matters, host it yourself.
The disclaimer also says MediaFusion is not affiliated with any scraping sites or content providers, which is a statement about affiliation rather than a legal opinion about use. What is and is not lawful to stream depends on your jurisdiction and on the sources you connect, and MediaFusion is a technical aggregator: it will connect to whatever indexers and feeds you give it, and it does not vet them. If you intend to run this, that judgement is yours to make rather than something the licence resolves.
One more practical constraint is buried in the feature list rather than the disclaimer. The catalogue includes live TV and sports, and a sports category on an aggregator depends on sources that are frequently unstable, so expect dead links in that category more than in movies.
Maintenance pace, licence and what a version number buys you
MediaFusion is not archived, and the last push was on 2026-10-13, so work is landing. The release history shows a steady sequence of patch versions: 6.1.4 on 2026-08-13, 6.1.5 on 2026-08-21 and 6.1.6 on 2026-09-09. Version numbers here are conventional semver rather than the dated nightly tags some projects use, and the manifest version matches the newest release, which is a good sign for a project where the Docker tag and the package version need to agree.
The licence is MIT for the whole project, both in the manifest and in the LICENSE file at the root. That is the permissive end of the spectrum: you can run it, modify it, and redistribute it without the copyleft obligations that GPL would impose, and the notice requirement is to keep the licence text.
The cost you absorb instead of licensing is operational. You are running a service that talks to debrid providers, indexers, cloud storage connectors and scraping targets, and the upstream dependency list is long enough that a breaking change in any of those libraries can land on you. The repository carries an AGENTS.md and a CONTRIBUTING.md with a development setup guide, plus dev dependencies including pytest, pytest-asyncio, locust for load testing and ruff for linting, so there is a real project workflow behind the releases rather than a single maintainer pushing binaries.
The comparison worth making explicitly is with a single Stremio addon that queries one indexer. That is simpler, has no server to run and no database to migrate, and it breaks the moment that indexer changes its API. MediaFusion is the opposite trade: more moving parts, more configuration, and a single place to update when any of the upstream sources change.
Editorial conclusion
Adopt MediaFusion if you want a single aggregation layer you host yourself, with a Torznab endpoint for Radarr and Sonarr and encrypted credentials in the manifest URL, and do not adopt it if you want a service with a support contract, because the developer states that no warranties are given for third party sources or for the community hosted instances. Before you deploy, read the disclaimer in the README, decide whether your indexer and debrid arrangement is lawful in your jurisdiction, and check the environment variable reference in the configuration documentation. The current version is 6.1.6 and the last push was on 2026-10-13.
Frequently asked questions
What is MediaFusion and what does it do?
MediaFusion is a MIT licensed Python and FastAPI streaming platform that aggregates streams from configured sources, manages playback through supported providers, and serves Stremio, Kodi, a browser player and a Torznab API for Radarr and Sonarr.
Which debrid providers does MediaFusion support?
The README names Real-Debrid, AllDebrid, Premiumize and Torbox, and states there are eight more providers beyond those listed.
Can I use MediaFusion without hosting it myself?
Yes. The README lists community instances including ElfHosted at mediafusion.elfhosted.com and Midnight at mediafusionfortheweebs.midnightignite.me, where you open the instance, set your preferences and click Install in Stremio. The developer states that no responsibility is taken for the operation or uptime of community hosted instances.
How do I deploy MediaFusion myself?
Self hosting is supported through Docker Compose, Kubernetes or a direct binary deployment, and the documentation includes a Docker Compose deployment page and a configuration reference. The project requires Python 3.12 or later and uses uv, with a Docker build driven by a Makefile target.
How does MediaFusion protect debrid credentials?
The README lists encrypted user data as a feature, with AES-256 encrypted credentials carried in manifest URLs, so a client receives an opaque token instead of a plain provider key. The documentation does not describe key rotation or revocation.
Official sources
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.
[](https://hysenlabs.com/projects/mhdzumair-mediafusion)Was this useful?