[Skip to content](https://github.com/mhdzumair/MediaFusion#start-of-content)

You signed in with another tab or window. [Reload](https://github.com/mhdzumair/MediaFusion) to refresh your session.You signed out in another tab or window. [Reload](https://github.com/mhdzumair/MediaFusion) to refresh your session.You switched accounts on another tab or window. [Reload](https://github.com/mhdzumair/MediaFusion) to refresh your session.Dismiss alert

{{ message }}

[mhdzumair](https://github.com/mhdzumair)/ **[MediaFusion](https://github.com/mhdzumair/MediaFusion)** Public

- [Sponsor](https://github.com/sponsors/mhdzumair)
- [Notifications](https://github.com/login?return_to=%2Fmhdzumair%2FMediaFusion) You must be signed in to change notification settings
- [Fork\\
129](https://github.com/login?return_to=%2Fmhdzumair%2FMediaFusion)
- [Star\\
898](https://github.com/login?return_to=%2Fmhdzumair%2FMediaFusion)


main

[**5** Branches](https://github.com/mhdzumair/MediaFusion/branches) [**228** Tags](https://github.com/mhdzumair/MediaFusion/tags)

[Go to Branches page](https://github.com/mhdzumair/MediaFusion/branches)[Go to Tags page](https://github.com/mhdzumair/MediaFusion/tags)

Go to file

Code

Open more actions menu

## Folders and files

| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>[![mhdzumair](https://avatars.githubusercontent.com/u/44891939?v=4&size=40)](https://github.com/mhdzumair)[mhdzumair](https://github.com/mhdzumair/MediaFusion/commits?author=mhdzumair)<br>[fix: resolve hdr\_formats TypeError, migration 42601 crash, and series](https://github.com/mhdzumair/MediaFusion/commit/07f50d3925777136f00b4b518d15ab751cd8ef1d)<br>Open commit detailssuccess<br>last weekJun 28, 2026<br>[07f50d3](https://github.com/mhdzumair/MediaFusion/commit/07f50d3925777136f00b4b518d15ab751cd8ef1d) · last weekJun 28, 2026<br>## History<br>[2,183 Commits](https://github.com/mhdzumair/MediaFusion/commits/main/) <br>Open commit details<br>[View commit history for this file.](https://github.com/mhdzumair/MediaFusion/commits/main/) 2,183 Commits |
| [.githooks](https://github.com/mhdzumair/MediaFusion/tree/main/.githooks ".githooks") | [.githooks](https://github.com/mhdzumair/MediaFusion/tree/main/.githooks ".githooks") | [update pre hook to run format](https://github.com/mhdzumair/MediaFusion/commit/bf812161ee4bb37b2113b1b69b49587a10ec587f "update pre hook to run format") | last monthJun 7, 2026 |
| [.github](https://github.com/mhdzumair/MediaFusion/tree/main/.github ".github") | [.github](https://github.com/mhdzumair/MediaFusion/tree/main/.github ".github") | [fix: add required toolchain input to dtolnay/rust-toolchain action](https://github.com/mhdzumair/MediaFusion/commit/2d3a22bad1a5255a9f06c5e44ac80bd55b966301 "fix: add required toolchain input to dtolnay/rust-toolchain action") | last weekJun 24, 2026 |
| [backend](https://github.com/mhdzumair/MediaFusion/tree/main/backend "backend") | [backend](https://github.com/mhdzumair/MediaFusion/tree/main/backend "backend") | [fix: resolve hdr\_formats TypeError, migration 42601 crash, and series](https://github.com/mhdzumair/MediaFusion/commit/07f50d3925777136f00b4b518d15ab751cd8ef1d "fix: resolve hdr_formats TypeError, migration 42601 crash, and series stream_media_link gap  - UI: fix TypeError when hdr_formats is a string[] (API returns array);   add   Array.isArray guards in StreamCard, StreamEditSheet, and   ContentDetailPage   mirroring the existing guard in MyStreamPosterCard; update StreamInfo   type   to reflect the real runtime shape (string | string[])  - migrate.rs: split semicolon-joined SET commands into two separate   sqlx::query   calls so they work under Postgres extended protocol (fixes 42601 crash   on startup)  - stream_store.rs: also call link_stream_to_media_with_flags for series   torrents   that have per-episode file entries; previously only file_media_link   was written,   leaving total_streams = 0 and hiding series from catalog queries  - migration 0035: backfills stream_media_link and total_streams for   series that   already have file_media_link data from before this fix  fixes #703, #702") | last weekJun 28, 2026 |
| [clients](https://github.com/mhdzumair/MediaFusion/tree/main/clients "clients") | [clients](https://github.com/mhdzumair/MediaFusion/tree/main/clients "clients") | [fix: resolve hdr\_formats TypeError, migration 42601 crash, and series](https://github.com/mhdzumair/MediaFusion/commit/07f50d3925777136f00b4b518d15ab751cd8ef1d "fix: resolve hdr_formats TypeError, migration 42601 crash, and series stream_media_link gap  - UI: fix TypeError when hdr_formats is a string[] (API returns array);   add   Array.isArray guards in StreamCard, StreamEditSheet, and   ContentDetailPage   mirroring the existing guard in MyStreamPosterCard; update StreamInfo   type   to reflect the real runtime shape (string | string[])  - migrate.rs: split semicolon-joined SET commands into two separate   sqlx::query   calls so they work under Postgres extended protocol (fixes 42601 crash   on startup)  - stream_store.rs: also call link_stream_to_media_with_flags for series   torrents   that have per-episode file entries; previously only file_media_link   was written,   leaving total_streams = 0 and hiding series from catalog queries  - migration 0035: backfills stream_media_link and total_streams for   series that   already have file_media_link data from before this fix  fixes #703, #702") | last weekJun 28, 2026 |
| [deployment](https://github.com/mhdzumair/MediaFusion/tree/main/deployment "deployment") | [deployment](https://github.com/mhdzumair/MediaFusion/tree/main/deployment "deployment") | [chore: update version to 6.0.0-beta.26](https://github.com/mhdzumair/MediaFusion/commit/f3d5e7cdd9a9bd20d48a1824748725ea24f365ad "chore: update version to 6.0.0-beta.26") | last weekJun 25, 2026 |
| [docs](https://github.com/mhdzumair/MediaFusion/tree/main/docs "docs") | [docs](https://github.com/mhdzumair/MediaFusion/tree/main/docs "docs") | [feat: add include-proxy mode and non-debrid proxy bypass for outbound](https://github.com/mhdzumair/MediaFusion/commit/7282751977126807dd619a655e073b2065af88c3 "feat: add include-proxy mode and non-debrid proxy bypass for outbound HTTP  - Add REQUESTS_PROXY_INCLUDE_DEBRID_PROVIDERS: when non-empty, only   listed   debrid providers route through the proxy; all others connect directly.   Takes precedence over the existing exclude list. - Add REQUESTS_PROXY_NON_DEBRID_ENABLED (default true): set to false to   bypass the proxy for general HTTP calls (catalog, indexers, discovery)   while leaving debrid provider routing untouched. - Route DHT peer TCP connections (demagnetize) through the proxy when   REQUESTS_PROXY_URL is set; supports SOCKS5, SOCKS4, and HTTP CONNECT. - Update both proxy_bypass_clients() callers (encrypt, profiles) and   validator::validate_provider_credentials to honour include mode. - Document all three new env vars in env-reference.md and   content-sources.md.") | last weekJun 24, 2026 |
| [python-deprecated](https://github.com/mhdzumair/MediaFusion/tree/main/python-deprecated "python-deprecated") | [python-deprecated](https://github.com/mhdzumair/MediaFusion/tree/main/python-deprecated "python-deprecated") | [feat(migration): adopt native Postgres enums + sqlx macros, fix scraping](https://github.com/mhdzumair/MediaFusion/commit/b79fccd1224b71696c66ec17c44dcec94e5f061c "feat(migration): adopt native Postgres enums + sqlx macros, fix scraping issues  Main changes (Cursor migration + manual fixes): - Replace all string-cast WHERE comparisons (type::text = 'MOVIE',   status::text = $N,   format!(\"m.type::text = '{...}'\")) with native enum binds — no cast,   no injection risk - Convert db/meta.rs Internal branch to query_as! macro (compile-time   SQL verification,   mirrors External branch; collapses duplicated base_sql) - Port contribution bot handlers (bot/) to Rust with full parity to   Python - Update all DB query result types to use MediaId/UserId/MediaType   newtypes so wrong   types cause compile errors rather than silent runtime failures - Add 13 new .sqlx/ entries for offline SQLX compile-time query   verification - Fix configure.rs: preserve secret_str through redirect to   /app/configure?secret_str= - Fix metrics_middleware.rs: RAII InFlightGuard prevents stuck in-flight   counter on   client disconnect / future cancellation - Fix easynews.rs: 401 short-circuits all remaining queries   (user-specific cred failure) - Fix torbox_search.rs: 429 skips title query and returns early   (per-token rate limit) - Fix public_indexer_registry.rs: sort non-CF indexers first so byparr   sites run last - Disable CF bypass (byparr) in live API fan_out — Chromium sessions   only in bg workers - Add source health gate (NZBIndex + Binsearch) — 429s record failures;   gate blocks   further calls once success rate falls below threshold - Fix /metrics column bug (media_type → type); replace COUNT(*) full   table scans on   large stream tables with pg_stat_user_tables n_live_tup estimates - Remove unauthenticated /metrics root route; keep /api/v1/metrics under   api_key_middleware - Log Zilean response body on JSON parse failure (was silently dropping   error context) - Add Grafana + Prometheus dev stack (docker-compose-grafana-dev.yml,   prometheus-dev.yml)") | 2 months agoMay 30, 2026 |
| [resources](https://github.com/mhdzumair/MediaFusion/tree/main/resources "resources") | [resources](https://github.com/mhdzumair/MediaFusion/tree/main/resources "resources") | [feat: add full Unicode text rendering to poster generator](https://github.com/mhdzumair/MediaFusion/commit/c7c4e27d3714c8863e7a80ce16fe51e93275157e "feat: add full Unicode text rendering to poster generator  Replace ab_glyph per-glyph fallback with cosmic-text 0.19 (rustybuzz shaping + BiDi) for correct rendering of Cyrillic, Arabic, Hebrew, Devanagari, CJK, and other scripts.  - Bundle NotoSans-Bold and NotoSansArabic-Bold for guaranteed coverage   of Cyrillic/Greek/Arabic/Persian without system font dependency - Thread-local FontSystem+SwashCache (initialised once per worker thread) - Fix ghost monogram opacity: cosmic-text 0.19 ignores input Color alpha   in draw callbacks; scale c.a() by desired opacity in the callback instead - Unicode-aware char count (chars() not len()) for title font-size selection - Expand gen_poster_samples with 28 test cases across all major script families") | 2 weeks agoJun 23, 2026 |
| [.dockerignore](https://github.com/mhdzumair/MediaFusion/blob/main/.dockerignore ".dockerignore") | [.dockerignore](https://github.com/mhdzumair/MediaFusion/blob/main/.dockerignore ".dockerignore") | [fix docker build](https://github.com/mhdzumair/MediaFusion/commit/2426d3e986c880954b4f0dff4370b3f83e37c8cc "fix docker build") | 2 months agoMay 19, 2026 |
| [.gitignore](https://github.com/mhdzumair/MediaFusion/blob/main/.gitignore ".gitignore") | [.gitignore](https://github.com/mhdzumair/MediaFusion/blob/main/.gitignore ".gitignore") | [Add NSFW classifier ONNX model & scope-based keyword filters, stream](https://github.com/mhdzumair/MediaFusion/commit/b6c4df94507221176869d8b522ae01f9bf7f9a51 "Add NSFW classifier ONNX model & scope-based keyword filters, stream keyword blocking, and word-boundary matching  - Add `scope` column to `keyword_filters` ('all' | 'stream' | 'media') - `adult-keywords.txt` → renamed to `media-keywords-filters.txt`, synced   as scope='media' - New `stream-keywords-filters.txt` synced as scope='stream' - DB trigger and PL/pgSQL recompute only use scope∈{'all','media'} for   `media.is_keyword_blocked` - `KeywordFilterCache` splits into `keywords` (media) and   `stream_keywords` (stream) - `matches_blocked_keyword()` uses stream keywords; new   `matches_blocked_media_keyword()` for media  - Add `stream.is_keyword_blocked BOOLEAN` with trigger   `check_stream_keyword_blocked()` - Trigger uses scope∈{'all','stream'} keywords with word-boundary regex - Rust `recompute_stream_keyword_blocked()` batch-updates all streams on   startup/keyword change - All stream queries exclude `is_keyword_blocked=true` for regular users - Admin/moderator: `/api/v1/catalog/:type/:id/streams` includes   keyword-blocked streams with flag - Stremio stream endpoint: keyword-blocked streams always hidden - Frontend `StreamCard`: \"Keyword Blocked\" orange badge visible to   admin/moderator  - Add `media.keyword_block_override BOOLEAN` — admin can suppress   false-positive keyword blocks - Toggle endpoint: `POST /api/v1/admin/media/{id}/keyword-override` - ContentDetailPage shows override/restore buttons for admin; orange vs   green keyword badge  - All keyword regex patterns wrapped with `\y...\y` (PostgreSQL POSIX   word boundary) - \"cock\" no longer matches inside \"cocktail\"; \"cock.fight.2024\" still   matches via dot boundary - Rust in-memory `whole_word_match()` mirrors same logic for pre-import   scraper filtering - Whitelist remains substring-match (permissive)  - `validate_provider_credentials` selects correct HTTP client per   provider - `catalog_browse.rs` live cache check uses per-provider proxy client - `AppState::proxy_bypass_clients()` getter for no-proxy client +   excluded services list  - NSFW classifier (ONNX model), admin review UI, poster scoring pipeline - `media.poster_nsfw_flagged` included in unified restriction predicate - Import-time NSFW scan enqueue gated on `POSTER_NSFW_ENABLED` config  - Single `restriction_fragment()` SQL helper: NOT (is_blocked OR   (is_keyword_blocked AND NOT keyword_block_override) OR   poster_nsfw_flagged) - `media_is_restricted()` and `info_hash_is_restricted()` async guards   used across all endpoints - Admin/moderator can access restricted media detail/streams for review  - Blocked library tab: URL-paginated (b_page/b_filter), filter dropdown,   visible keyword/NSFW badges - NSFW review tab: URL-paginated (n_page/n_filter), solid score badges - Dynamic breadcrumb back label stored in sessionStorage per navigation   source - Keyword filter admin tab: scope badges, scope filter, inline scope   change per row  - Both media and stream recompute functions log keywords count, rows   updated, and elapsed_ms on completion") | 2 weeks agoJun 21, 2026 |
| [AGENTS.md](https://github.com/mhdzumair/MediaFusion/blob/main/AGENTS.md "AGENTS.md") | [AGENTS.md](https://github.com/mhdzumair/MediaFusion/blob/main/AGENTS.md "AGENTS.md") | [Enhance CI pipeline and documentation for multi-platform release bina…](https://github.com/mhdzumair/MediaFusion/commit/2864cda1daecad33e676a59827e5e22278f6a8c6 "Enhance CI pipeline and documentation for multi-platform release binaries  - Updated CI configuration to build and upload release binaries for Linux, macOS, and Windows. - Changed terminology in documentation to reflect that binaries are now pre-built release binaries instead of statically compiled musl binaries. - Improved deployment instructions to include specific asset names and examples for macOS and Windows. - Added conditional allocator configuration for Windows in Rust code to optimize memory management.") | last monthJun 2, 2026 |
| [CONTRIBUTING.md](https://github.com/mhdzumair/MediaFusion/blob/main/CONTRIBUTING.md "CONTRIBUTING.md") | [CONTRIBUTING.md](https://github.com/mhdzumair/MediaFusion/blob/main/CONTRIBUTING.md "CONTRIBUTING.md") | [Add contributor guideline](https://github.com/mhdzumair/MediaFusion/commit/2f7d48568702b29a09c0c389a430f66d9d205ef2 "Add contributor guideline") | 3 years agoOct 4, 2023 |
| [LICENSE](https://github.com/mhdzumair/MediaFusion/blob/main/LICENSE "LICENSE") | [LICENSE](https://github.com/mhdzumair/MediaFusion/blob/main/LICENSE "LICENSE") | [Create LICENSE](https://github.com/mhdzumair/MediaFusion/commit/86b2ec3d69eea6dd1e0cf58a9eb307ae2d863418 "Create LICENSE") | 3 years agoAug 6, 2023 |
| [Makefile](https://github.com/mhdzumair/MediaFusion/blob/main/Makefile "Makefile") | [Makefile](https://github.com/mhdzumair/MediaFusion/blob/main/Makefile "Makefile") | [Implement Rust v6 parity for backend gaps.](https://github.com/mhdzumair/MediaFusion/commit/f2a586dac8a0cbfb70ebddaa373333f135c88858 "Implement Rust v6 parity for backend gaps.  Adds Telegram bot wizard completion, auth contract alignment, rate limiting, TV stream dispatch, scheduler jobs, debrid/usenet providers, and shared middleware (request ID, role guards, metrics path masking) so the Rust backend matches the deprecated Python behavior.") | last monthJun 2, 2026 |
| [README.md](https://github.com/mhdzumair/MediaFusion/blob/main/README.md "README.md") | [README.md](https://github.com/mhdzumair/MediaFusion/blob/main/README.md "README.md") | [docs: set up MkDocs Material documentation site](https://github.com/mhdzumair/MediaFusion/commit/c01fbe9a44ae638217177a16f14d8db3d5411faf "docs: set up MkDocs Material documentation site  - Add mkdocs.yml with Material theme, dark/light toggle, Mermaid diagram   support, tabbed content, and search - Add GitHub Actions workflow for auto-deploy to GitHub Pages on push to main - Add mkdocs-material and mkdocs-glightbox to pyproject.toml docs group - Restructure docs/ into Getting Started, Deployment, Configuration,   Integrations, and Reference sections (28 pages total) - Rewrite env reference from Rust config.rs — 180+ vars in 18 grouped sections - Rewrite database ERD with Mermaid diagrams reflecting the 6.0 schema - Add features.md showcasing the full platform capability - Update contributing.md with Rust + Python workflow, PR checklist, scraper guide - Simplify README to essentials with link to docs site - Add all three community instances (ElfHosted, ElfHosted dev/beta, Midnight) - Fix branding: streaming platform, not addon - Replace Discord with Telegram community link - Update disclaimer to clarify developer and community instance responsibility") | last monthJun 1, 2026 |
| [mkdocs.yml](https://github.com/mhdzumair/MediaFusion/blob/main/mkdocs.yml "mkdocs.yml") | [mkdocs.yml](https://github.com/mhdzumair/MediaFusion/blob/main/mkdocs.yml "mkdocs.yml") | [docs: add Worker CLI reference page for --run-job, --list-jobs, --args](https://github.com/mhdzumair/MediaFusion/commit/be448dfec9a5862df6c1d51e6c8d4348feecf31b "docs: add Worker CLI reference page for --run-job, --list-jobs, --args") | last monthJun 1, 2026 |
| [pyproject.toml](https://github.com/mhdzumair/MediaFusion/blob/main/pyproject.toml "pyproject.toml") | [pyproject.toml](https://github.com/mhdzumair/MediaFusion/blob/main/pyproject.toml "pyproject.toml") | [chore: update version to 6.0.0-beta.26](https://github.com/mhdzumair/MediaFusion/commit/f3d5e7cdd9a9bd20d48a1824748725ea24f365ad "chore: update version to 6.0.0-beta.26") | last weekJun 25, 2026 |
| [uv.lock](https://github.com/mhdzumair/MediaFusion/blob/main/uv.lock "uv.lock") | [uv.lock](https://github.com/mhdzumair/MediaFusion/blob/main/uv.lock "uv.lock") | [chore: update version to 6.0.0-beta.26](https://github.com/mhdzumair/MediaFusion/commit/f3d5e7cdd9a9bd20d48a1824748725ea24f365ad "chore: update version to 6.0.0-beta.26") | last weekJun 25, 2026 |
| View all files |

## Repository files navigation

# MediaFusion

[Permalink: MediaFusion](https://github.com/mhdzumair/MediaFusion#mediafusion)

[![Media Fusion Logo](https://github.com/mhdzumair/MediaFusion/raw/main/resources/images/mediafusion_logo.png?raw=true)](https://github.com/mhdzumair/MediaFusion/blob/main/resources/images/mediafusion_logo.png?raw=true)

**The ultimate open-source streaming platform.** Aggregate streams from your configured sources, manage playback via supported providers, and enjoy on Stremio, Kodi, or directly in your browser.

[![Documentation](https://camo.githubusercontent.com/d3eb436b2acf5a6ad11cafa2c67db4d78a58f5480f7a8f8dd9866682312a9c17/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63732d6d68647a756d6169722e6769746875622e696f2532464d65646961467573696f6e2d626c7565)](https://mhdzumair.github.io/MediaFusion/)[![GitHub release](https://camo.githubusercontent.com/9e66089f5471e33875d2a05cb5e3cf0ebfecb7ba15abf0fc11dacb5c0536fae6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d68647a756d6169722f4d65646961467573696f6e)](https://github.com/mhdzumair/MediaFusion/releases)[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://github.com/mhdzumair/MediaFusion/blob/main/LICENSE)[![Telegram](https://camo.githubusercontent.com/6db580dffe4d1ce86cddba2b5f3e70cbaa0194f5399dbe07cfae35e1a021b198/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54656c656772616d2d6a6f696e2d626c75653f6c6f676f3d74656c656772616d)](https://t.me/mediafusion_stremio_addon)

* * *

## Quick Start

[Permalink: Quick Start](https://github.com/mhdzumair/MediaFusion#quick-start)

**Use the community instance** — no setup required:

| Instance | URL |
| --- | --- |
| ElfHosted | [mediafusion.elfhosted.com](https://mediafusion.elfhosted.com/) |
| ElfHosted (dev/beta) | [mediafusion-dev.elfhosted.com](https://mediafusion-dev.elfhosted.com/) |
| Midnight | [mediafusionfortheweebs.midnightignite.me](https://mediafusionfortheweebs.midnightignite.me/) |

Open an instance, configure your preferences, and click **Install in Stremio**.

* * *

## Documentation

[Permalink: Documentation](https://github.com/mhdzumair/MediaFusion#documentation)

Full documentation including deployment guides, configuration reference, and integration instructions is at:

**[mhdzumair.github.io/MediaFusion](https://mhdzumair.github.io/MediaFusion/)**

Key pages:

- [Quick Start](https://mhdzumair.github.io/MediaFusion/getting-started/quick-start/) — 2-minute setup with a community instance
- [Features](https://mhdzumair.github.io/MediaFusion/features/) — full feature overview
- [Docker Compose Deployment](https://mhdzumair.github.io/MediaFusion/deployment/docker-compose/) — self-host with Docker
- [Configuration Reference](https://mhdzumair.github.io/MediaFusion/configuration/) — all environment variables explained
- [Contributing](https://mhdzumair.github.io/MediaFusion/contributing/) — development setup and contribution guide

* * *

## Key Features

[Permalink: Key Features](https://github.com/mhdzumair/MediaFusion#key-features)

- **Debrid & P2P streaming** — Real-Debrid, AllDebrid, Premiumize, Torbox, and 8 more providers
- **Rich catalogs** — Movies, series, live TV, sports in 50+ languages
- **Smart stream aggregation** — Prowlarr, Jackett, public indexers, Torrentio, Zilean, RSS feeds
- **Multi-client** — Stremio, Kodi, browser player, Torznab API for Radarr/Sonarr
- **Self-hosted** — Docker Compose, Kubernetes, or direct binary deployment
- **Encrypted user data** — AES-256 encrypted credentials in manifest URLs

* * *

## Contributors

[Permalink: Contributors](https://github.com/mhdzumair/MediaFusion#contributors)

[![](https://camo.githubusercontent.com/e11a0ebb1ddb165fda2eb08c3e381ac1e28181d73014b8f3d68a0503e0706d8a/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d6d68647a756d6169722f4d65646961467573696f6e)](https://github.com/mhdzumair/MediaFusion/graphs/contributors)

* * *

## Disclaimer

[Permalink: Disclaimer](https://github.com/mhdzumair/MediaFusion#disclaimer)

> **Use at your own risk.** MediaFusion is developed and published for educational and personal use only. The developer (Mohamed Zumair) makes no warranties and accepts no responsibility 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 instances. Community instances are generously hosted by independent community members. The developer collaborates with instance operators but is not responsible for the availability, uptime, hosting costs, or any modifications made to the software running on third-party instances. MediaFusion is not affiliated with any scraping sites or content providers.

## About

The ultimate open-source streaming platform


[mhdzumair.github.io/MediaFusion/](https://mhdzumair.github.io/MediaFusion/ "https://mhdzumair.github.io/MediaFusion/")

### Topics

[movies](https://github.com/topics/movies "Topic: movies") [series](https://github.com/topics/series "Topic: series") [debrid](https://github.com/topics/debrid "Topic: debrid") [bollywood](https://github.com/topics/bollywood "Topic: bollywood") [stremio-addon](https://github.com/topics/stremio-addon "Topic: stremio-addon") [stremio-addons](https://github.com/topics/stremio-addons "Topic: stremio-addons")

### Resources

[Readme](https://github.com/mhdzumair/MediaFusion#readme-ov-file)

### License

[MIT license](https://github.com/mhdzumair/MediaFusion#MIT-1-ov-file)

### Contributing

[Contributing](https://github.com/mhdzumair/MediaFusion#contributing-ov-file)

### Uh oh!

There was an error while loading. [Please reload this page](https://github.com/mhdzumair/MediaFusion).

[Activity](https://github.com/mhdzumair/MediaFusion/activity)

### Stars

[**898**\\
stars](https://github.com/mhdzumair/MediaFusion/stargazers)

### Watchers

[**11**\\
watching](https://github.com/mhdzumair/MediaFusion/watchers)

### Forks

[**129**\\
forks](https://github.com/mhdzumair/MediaFusion/forks)

[Report repository](https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fmhdzumair%2FMediaFusion&report=mhdzumair+%28user%29)

## [Releases\  220](https://github.com/mhdzumair/MediaFusion/releases)

[6.0.0-beta.26\\
Latest\\
\\
last weekJun 25, 2026](https://github.com/mhdzumair/MediaFusion/releases/tag/6.0.0-beta.26)

[\+ 219 releases](https://github.com/mhdzumair/MediaFusion/releases)

## Sponsor this project

### Uh oh!

There was an error while loading. [Please reload this page](https://github.com/mhdzumair/MediaFusion).

## [Contributors\  29](https://github.com/mhdzumair/MediaFusion/graphs/contributors)

- [![@mhdzumair](https://avatars.githubusercontent.com/u/44891939?s=64&v=4)](https://github.com/mhdzumair)
- [![@actions-user](https://avatars.githubusercontent.com/u/65916846?s=64&v=4)](https://github.com/actions-user)
- [![@ragmehos](https://avatars.githubusercontent.com/u/112108222?s=64&v=4)](https://github.com/ragmehos)
- [![@claude](https://avatars.githubusercontent.com/u/81847?s=64&v=4)](https://github.com/claude)
- [![@MunifTanjim](https://avatars.githubusercontent.com/u/8050659?s=64&v=4)](https://github.com/MunifTanjim)
- [![@jishnurk](https://avatars.githubusercontent.com/u/1780520?s=64&v=4)](https://github.com/jishnurk)
- [![@luigibarretta](https://avatars.githubusercontent.com/u/272482861?s=64&v=4)](https://github.com/luigibarretta)
- [![@funkypenguin](https://avatars.githubusercontent.com/u/1524686?s=64&v=4)](https://github.com/funkypenguin)
- [![@dependabot[bot]](https://avatars.githubusercontent.com/in/29110?s=64&v=4)](https://github.com/apps/dependabot)
- [![@constantindjonkam](https://avatars.githubusercontent.com/u/70917662?s=64&v=4)](https://github.com/constantindjonkam)
- [![@lynchmv](https://avatars.githubusercontent.com/u/511008?s=64&v=4)](https://github.com/lynchmv)
- [![@IbbyLabs](https://avatars.githubusercontent.com/u/40578997?s=64&v=4)](https://github.com/IbbyLabs)
- [![@cursoragent](https://avatars.githubusercontent.com/u/199161495?s=64&v=4)](https://github.com/cursoragent)
- [![@vijayvcm](https://avatars.githubusercontent.com/u/11239522?s=64&v=4)](https://github.com/vijayvcm)

[\+ 15 contributors](https://github.com/mhdzumair/MediaFusion/graphs/contributors)

## Languages

- [Python37.5%](https://github.com/mhdzumair/MediaFusion/search?l=python)
- [Rust32.3%](https://github.com/mhdzumair/MediaFusion/search?l=rust)
- [TypeScript27.6%](https://github.com/mhdzumair/MediaFusion/search?l=typescript)
- [JavaScript1.5%](https://github.com/mhdzumair/MediaFusion/search?l=javascript)
- [CSS0.3%](https://github.com/mhdzumair/MediaFusion/search?l=css)
- [PLpgSQL0.3%](https://github.com/mhdzumair/MediaFusion/search?l=plpgsql)
- Other0.5%

You can’t perform that action at this time.