{"id":50866495,"url":"https://github.com/aneeshtigga/minitor","last_synced_at":"2026-06-15T02:01:05.663Z","repository":{"id":363968760,"uuid":"1265629755","full_name":"aneeshtigga/minitor","owner":"aneeshtigga","description":"A small, self-hosted Stremio addon for streaming torrents — searches via Jackett, then streams through Stremio's own engine or a local qBittorrent cache. A hobby take on how debrid services work.","archived":false,"fork":false,"pushed_at":"2026-06-11T06:15:39.000Z","size":200,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-11T06:24:53.374Z","etag":null,"topics":["debrid","jackett","qbittorrent","real-debrid","self-hosted","streaming","stremio","stremio-addon","tauri","torbox","torrent","torznab"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aneeshtigga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-11T00:22:47.000Z","updated_at":"2026-06-11T06:15:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aneeshtigga/minitor","commit_stats":null,"previous_names":["aneeshtigga/minitor"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/aneeshtigga/minitor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneeshtigga%2Fminitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneeshtigga%2Fminitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneeshtigga%2Fminitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneeshtigga%2Fminitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aneeshtigga","download_url":"https://codeload.github.com/aneeshtigga/minitor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aneeshtigga%2Fminitor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34344440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debrid","jackett","qbittorrent","real-debrid","self-hosted","streaming","stremio","stremio-addon","tauri","torbox","torrent","torznab"],"created_at":"2026-06-15T02:01:05.156Z","updated_at":"2026-06-15T02:01:05.652Z","avatar_url":"https://github.com/aneeshtigga.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"assets/minitor-icon.png\" alt=\"Minitor\" width=\"120\" height=\"120\" /\u003e\n\n# Minitor\n\n**A small, self-hosted [Stremio](https://www.stremio.com/) addon for streaming torrents.**\n\nIt searches via [Jackett](https://github.com/Jackett/Jackett) and either lets Stremio's\nown engine stream the torrent *(like Torrentio)*, or downloads it locally with\n[qBittorrent](https://www.qbittorrent.org/) and serves it back.\n\nMostly a learning project — a hobbyist's peek at how debrid services\n*(TorBox, Real-Debrid)* and streaming addons work under the hood.\n\n`Stremio addon` · `Jackett / Torznab` · `qBittorrent` · `self-hosted` · `beta`\n\n**macOS · Windows · Linux**\n\n\u003c/div\u003e\n\n---\n\n## ✨ What is it?\n\nDebrid services like TorBox and Real-Debrid download torrents to their servers and\nstream them to you. Minitor is a tiny take on that same idea, running on your own\nmachine. It won't match a real debrid service — there's no shared datacenter cache\nbehind it — but it's enough to search and play torrents from within Stremio, and to\nlearn how the pieces fit together.\n\n---\n\n## 🔀 Two streaming modes\n\nSet with `STREAM_MODE` (or the toggle in the desktop app):\n\n| Mode | What happens | Needs |\n|------|--------------|-------|\n| **`direct`** *(default)* | Hands Stremio the torrent's `infoHash` — Stremio's own engine streams it. No local download. *(Torrentio-style.)* | Jackett |\n| **`cache`** | Adds the torrent to qBittorrent, downloads it to disk, and range-streams the local file — a local copy you can keep, playable while it downloads. | Jackett + qBittorrent |\n\n\u003e The two modes use different addon ids, so you can install both in Stremio if you like.\n\n---\n\n## 🚀 Quick start — the desktop app\n\n\u003cdiv align=\"center\"\u003e\n\n[![Download for macOS](https://img.shields.io/badge/macOS-Apple_Silicon-000000?style=for-the-badge\u0026logo=apple\u0026logoColor=white)](../../releases/latest/download/Minitor-macOS-arm64.dmg)\n\u0026nbsp;\n[![Download for Windows](https://img.shields.io/badge/Windows-x64-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white)](../../releases/latest/download/Minitor-Windows-x64-setup.exe)\n\u0026nbsp;\n[![Download for Linux](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black)](../../releases/latest/download/Minitor-Linux-x86_64.AppImage)\n\n[![Total downloads](https://img.shields.io/github/downloads/aneeshtigga/minitor/total?style=flat\u0026logo=github\u0026label=downloads\u0026color=success)](../../releases)\n\n\u003csub\u003e\nalso:\n\u003ca href=\"../../releases/latest/download/Minitor-Windows-x64.msi\"\u003eWindows .msi\u003c/a\u003e ·\n\u003ca href=\"../../releases/latest/download/Minitor-Linux-x86_64.deb\"\u003eLinux .deb\u003c/a\u003e ·\n\u003ca href=\"../../releases/latest/download/Minitor-Linux-x86_64.rpm\"\u003e.rpm\u003c/a\u003e ·\n\u003ca href=\"../../releases/latest\"\u003eall releases\u003c/a\u003e\n\u003cbr\u003e\nButtons always grab the \u003cb\u003elatest release\u003c/b\u003e. Intel Macs: run from source.\n\u003c/sub\u003e\n\n\u003c/div\u003e\n\nThe app is a small control panel that tries to handle the setup for you:\n\n- Detects **Jackett** and **qBittorrent**, and installs the missing ones via your\n  package manager — Homebrew (macOS), winget (Windows), apt/dnf/pacman (Linux).\n  No package manager? It shows a **Download** button instead.\n- Configures Jackett (finds its API key, adds a few popular indexers)\n- **Direct / Cache** toggle + **Start / Stop**\n- Shows the addon URL to paste into Stremio\n- Stops the service when you quit\n\n**First launch.** The app is unsigned (no paid signing cert), so your OS may warn\non first open:\n\n- **macOS** — drag **Minitor → Applications**, then double-click the bundled\n  `unquarantine.command`, or run:\n  ```bash\n  xattr -dr com.apple.quarantine /Applications/Minitor.app\n  codesign --force --deep --sign - /Applications/Minitor.app\n  ```\n  *(Or right-click the app → Open the first time.)*\n- **Windows** — SmartScreen may show \"Windows protected your PC\" → **More info →\n  Run anyway**.\n- **Linux** — make the AppImage executable: `chmod +x Minitor_*.AppImage`.\n\n\u003e Cache mode only: enable qBittorrent's Web UI (Settings → Web UI, port 8080).\n\u003e Direct mode needs nothing extra.\n\n---\n\n## 🛠️ Run from source *(any OS)*\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e1 · Install Jackett (+ qBittorrent for cache mode)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# macOS (Homebrew)\nbrew install jackett \u0026\u0026 brew services start jackett   # → http://127.0.0.1:9117\nbrew install --cask qbittorrent                        # only for STREAM_MODE=cache\n\n# Windows (winget)\nwinget install Jackett.Jackett\nwinget install qBittorrent.qBittorrent\n\n# Linux (apt example)\nsudo apt-get install jackett qbittorrent\n```\n\nIn the Jackett UI (`http://127.0.0.1:9117`) add a few indexers + copy the API key\n(top-right). For qBittorrent, enable **Settings → Web UI** (port 8080).\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e2 · Configure \u003ccode\u003e.env\u003c/code\u003e\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ncp .env.example .env      # then edit\n```\n\n| Var | Meaning |\n|-----|---------|\n| `STREAM_MODE` | `direct` (default) or `cache` |\n| `JACKETT_URL`, `JACKETT_API_KEY` | your Jackett instance + key |\n| `QBIT_URL`, `QBIT_USER`, `QBIT_PASS` | qBittorrent Web UI *(cache mode)* |\n| `DOWNLOAD_DIR` | must match qBittorrent's save path *(cache mode)* |\n| `PUBLIC_URL` | `http://127.0.0.1:11472` — use your LAN IP for phone/TV |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e3 · Run\u003c/b\u003e\u003c/summary\u003e\n\n```bash\nnpm install\nnpm start          # or: npm run dev  (auto-restart)\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e4 · Install in Stremio\u003c/b\u003e\u003c/summary\u003e\n\nStremio → **Add-ons** → paste into the search box → **Install**:\n\n```\nhttp://127.0.0.1:11472/manifest.json\n```\n\nOpen any movie or series — Minitor searches Jackett by title (+ year) and lists\nranked streams inline.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eBuild the desktop app yourself\u003c/b\u003e\u003c/summary\u003e\n\nBuild on the OS you're targeting (Tauri can't cross-compile). Pick the matching\nsidecar script:\n\n```bash\nnpm install\nnpm run build:sidecar:arm64        # macOS Apple Silicon  (also: :x64, :win, :linux)\ncd desktop \u0026\u0026 npm install\nnpm run tauri build                # → src-tauri/target/release/bundle/\n```\n\nCI builds macOS (Apple Silicon), Windows and Linux automatically — push a `v*`\ntag (see `.github/workflows/release.yml`).\n\u003c/details\u003e\n\n---\n\n## 🔬 How it works\n\n```\n   Stremio ──/manifest.json──▶ Minitor (addon)\n           ──/stream/….json──▶ resolve IMDb id (Cinemeta) ──▶ search Jackett\n                               rank streams: tier ▸ seeders ▸ language\n                                       │\n            direct ────────────────────┤  Stremio's own engine streams via infoHash\n                                       │\n           cache  ─── GET /play/… ─────┘  Minitor range-streams a local file (HTTP 206)\n                                              │  qBittorrent downloads it\n                                              ▼  file on disk (DOWNLOAD_DIR)\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eProject map\u003c/b\u003e\u003c/summary\u003e\n\n| File / dir | Job |\n|------------|-----|\n| `src/addon.js` | manifest / catalog / meta / stream — the Stremio bridge |\n| `src/cinemeta.js` | IMDb id → title / year |\n| `src/search.js` | search, anchored title+year relevance, ranking, result cache |\n| `src/jackett.js` | Jackett Torznab search |\n| `src/jackett-setup.js` | discover API key + auto-add indexers |\n| `src/resolve-magnet.js` | page-URL → magnet (apibay / HTML scrape) fallback |\n| `src/qbittorrent.js` | qBittorrent Web API client *(cache mode)* |\n| `src/cache.js` | local cache index + piece-aware status *(cache mode)* |\n| `src/stream.js` | `/play/:hash` — local HTTP range/seek streaming *(cache mode)* |\n| `desktop/` | Tauri macOS control panel (Rust core + webview UI) |\n\u003c/details\u003e\n\n---\n\n## ⚠️ Notes \u0026 limitations\n\nIt's still in beta, so expect rough edges:\n\n- **Search quality** depends entirely on which indexers you add in Jackett.\n- A single machine can't make the **first** play faster — it's gated by the same\n  peers/seeders. Real debrid services are fast because their cache is shared across\n  many users; Minitor has none of that.\n- No transcoding — your player must support the codec/container (mkv/mp4 are usually fine).\n- Please only use it for content you're legally allowed to download.\n\n\u003cdiv align=\"center\"\u003e\n\u003csub\u003eBuilt to learn how Stremio addons, BitTorrent streaming, and debrid services work.\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faneeshtigga%2Fminitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faneeshtigga%2Fminitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faneeshtigga%2Fminitor/lists"}