{"id":43067899,"url":"https://github.com/semi-column/tmdb-discover-plus","last_synced_at":"2026-05-23T07:11:30.613Z","repository":{"id":331660511,"uuid":"1128155924","full_name":"semi-column/tmdb-discover-plus","owner":"semi-column","description":"Create custom Stremio catalogs with TMDB's powerful filtering","archived":false,"fork":false,"pushed_at":"2026-05-21T05:46:52.000Z","size":6208,"stargazers_count":42,"open_issues_count":3,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-21T12:22:33.908Z","etag":null,"topics":["catalog","discover","open-source","self-hosted","streaming","stremio","stremio-addon","tmdb"],"latest_commit_sha":null,"homepage":"https://tmdb-discover-plus.elfhosted.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semi-column.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"docs/SECURITY.md","support":".github/SUPPORT.md","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},"funding":{"github":"semi-column","ko_fi":"semicolumn"}},"created_at":"2026-01-05T08:15:24.000Z","updated_at":"2026-05-21T05:46:41.000Z","dependencies_parsed_at":"2026-02-16T11:07:31.776Z","dependency_job_id":"97d28aa4-75ca-4f5f-b421-4aeea44c48d4","html_url":"https://github.com/semi-column/tmdb-discover-plus","commit_stats":null,"previous_names":["semi-column/tmdb-discover-plus"],"tags_count":179,"template":false,"template_full_name":null,"purl":"pkg:github/semi-column/tmdb-discover-plus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semi-column%2Ftmdb-discover-plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semi-column%2Ftmdb-discover-plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semi-column%2Ftmdb-discover-plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semi-column%2Ftmdb-discover-plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semi-column","download_url":"https://codeload.github.com/semi-column/tmdb-discover-plus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semi-column%2Ftmdb-discover-plus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33386166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["catalog","discover","open-source","self-hosted","streaming","stremio","stremio-addon","tmdb"],"created_at":"2026-01-31T13:13:14.213Z","updated_at":"2026-05-23T07:11:30.571Z","avatar_url":"https://github.com/semi-column.png","language":"TypeScript","funding_links":["https://github.com/sponsors/semi-column","https://ko-fi.com/semicolumn"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"client/public/logo.png\" alt=\"TMDB Discover+ Logo\" width=\"150\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eTMDB Discover+\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e🎬 Create Custom Movie \u0026 TV Show Catalogs for Stremio\u003c/strong\u003e\u003cbr/\u003e\n  \u003cem\u003eUnlock the full power of TMDB's discover API with advanced filtering and personalized catalogs\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/semi-column/tmdb-discover-plus/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/semi-column/tmdb-discover-plus?style=flat-square\u0026logo=github\u0026label=stable\" alt=\"GitHub Release\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/X2N3btmEG2\"\u003e\n    \u003cimg src=\"https://img.shields.io/discord/1466384279717285961?style=flat-square\u0026logo=discord\u0026logoColor=white\u0026label=Discord\u0026color=5865F2\" alt=\"Discord\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nodejs.org/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/node-%3E%3D22-brightgreen?style=flat-square\u0026logo=node.js\u0026logoColor=white\" alt=\"Node.js\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/docker-ready-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white\" alt=\"Docker\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://stremio.com/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Stremio-Addon-8A2BE2?style=flat-square\" alt=\"Stremio Addon\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.themoviedb.org/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/TMDB-API-01D277?style=flat-square\u0026logo=themoviedatabase\u0026logoColor=white\" alt=\"TMDB API\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ko-fi.com/semicolumn\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Ko--fi-Support%20Development-FF5E5B?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=white\" alt=\"Ko-Fi\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 🤔 Why TMDB Discover+?\n\n### vs. Default Stremio Catalogs\n\n- 🎯 **Precise Filtering** - Go beyond basic genre filters\n- 🔄 **Dynamic Updates** - Date presets stay current automatically\n- 📊 **Quality Control** - Filter by vote count and ratings\n- 🎬 **Production Insight** - Filter by studios and companies\n\n### vs. Other TMDB Addons\n\n- 🔧 **Unlimited Catalogs** - Not just predefined lists\n- 💾 **Persistent Configs** - Save and manage multiple setups\n- 👁️ **Live Preview** - See results before installing\n- 🚀 **Modern Tech Stack** - Fast, reliable, and actively maintained\n\n### For Power Users\n\n- 🐳 **Docker Ready** - Self-host with full control\n- 🔌 **Multiple Databases** - Postgres, MongoDB, or memory\n- ⚡ **Redis Caching** - Optimized performance\n- 📊 **Status API** - Monitor your instance\n\n---\n\n## ✨ What is TMDB Discover+?\n\nTMDB Discover+ is a **powerful Stremio addon** that unlocks the full potential of The Movie Database's discover API. Create unlimited personalized catalogs with advanced filters like genre, year, rating, runtime, streaming providers, and much more.\n\nWhether you're hunting for:\n\n- 🎞️ Hidden gems from the 90s\n- 🆕 Upcoming releases on your favorite streaming services\n- 🌍 Critically acclaimed foreign films\n- 🏆 Award-winning documentaries\n- 🎭 Indie films from specific production companies\n\n**TMDB Discover+ has you covered!**\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshot.png\" alt=\"TMDB Discover+ Configuration Interface\" width=\"800\" /\u003e\n\u003c/p\u003e\n\n---\n\n## 🌐 Public Instances\n\nChoose the instance that best fits your needs:\n\n| Instance                                                   | Channel   | Status     | Description                                                                     |\n| ---------------------------------------------------------- | --------- | ---------- | ------------------------------------------------------------------------------- |\n| **[ElfHosted](https://tmdb-discover-plus.elfhosted.com/)** | 🟢 Stable | Production | ✅ **Recommended for daily use**\u003cbr/\u003ePostgreSQL + Redis for optimal performance |\n\n\u003e **💡 Tip:** The stable instance is free to use and recommended for most users.\n\n---\n\n## 🚀 Key Features\n\n### 🎬 Unlimited Custom Catalogs\n\nCreate as many personalized movie and TV show catalogs as you want with different filter combinations.\n\n### 🔍 Advanced Filtering Engine\n\n- **🎭 Genres** - Filter by one or more genres (with exclude support)\n- **📅 Year Range** - Release year from/to\n- **⭐ Rating Range** - TMDB vote average (0-10)\n- **⏱️ Runtime** - Filter by duration with presets (Short, Standard, Long, Epic)\n- **🌐 Language \u0026 Country** - Filter by original language and origin country\n- **📺 Streaming Services** - Filter by watch provider (Netflix, Disney+, Prime Video, etc.)\n- **👥 People** - Filter by actors, directors, crew\n- **🏷️ Keywords** - Include or exclude specific keywords\n- **🏢 Companies** - Filter or exclude production companies\n- **🗳️ Vote Count** - Minimum votes for quality filtering\n\n### 📅 Dynamic Date Presets\n\n\"Last 30 days\" always means 30 days from **today**, not when you created the catalog—smart and up-to-date!\n\n### 🎲 Smart Randomization\n\nDedicated randomization toggle that works seamlessly with any sort order for discovering unexpected favorites.\n\n### ⚙️ Configuration Manager\n\nSave, switch between, and manage multiple addon configurations effortlessly.\n\n### 👀 Live Preview\n\nSee your catalog results before installing with clickable links to TMDB—no surprises!\n\n### 🆔 IMDB Integration\n\nFull IMDB ID support ensures maximum compatibility with Stremio and other addons.\n\n### 🐳 Self-Hostable\n\nComplete Docker support with PostgreSQL/MongoDB and Redis/Memory cache options for full control.\n\n---\n\n## 📋 Table of Contents\n\n- [Quick Start](#-quick-start)\n- [Self-Hosting](#-self-hosting)\n  - [Docker (Recommended)](#docker-recommended)\n  - [Manual Installation](#manual-installation)\n  - [Cloud Deployment](#cloud-deployment)\n- [Configuration](#%EF%B8%8F-configuration)\n- [Usage](#-usage)\n- [API Reference](#-api-reference)\n- [Development](#%EF%B8%8F-development)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n---\n\n## 🚀 Quick Start\n\n### 🌟 Use a Public Instance\n\nThe easiest way to get started—no installation required!\n\n**Visit [tmdb-discover-plus.elfhosted.com](https://tmdb-discover-plus.elfhosted.com/)** and:\n\n1. 🔑 Enter your free TMDB API key ([Get one here](https://www.themoviedb.org/settings/api))\n2. 🎨 Create catalogs with your preferred filters\n3. 📥 Click \"Install to Stremio\"\n4. ✨ Start discovering!\n\n### Prerequisites\n\n- **TMDB API Key** - [Get a free key here](https://www.themoviedb.org/settings/api) (takes 2 minutes)\n- **Stremio** - [Download here](https://www.stremio.com/) if you don't have it\n\n---\n\n## 🏠 Self-Hosting\n\n### Docker (Recommended)\n\nThe easiest way to self-host TMDB Discover+ with full persistence and caching:\n\n```bash\n# Clone the repository\ngit clone https://github.com/semi-column/tmdb-discover-plus.git\ncd tmdb-discover-plus\n\n# Copy environment file\ncp .env.example .env\n\n# Edit .env to choose your database (Postgres/Mongo) and cache (Redis/Memory)\nnano .env\n\n# Build and run with Docker Compose\ndocker-compose up -d\n```\n\nThe addon will be available at `http://localhost:7000`\n\n#### Docker Environment Variables\n\n| Variable          | Description                                     | Default               |\n| ----------------- | ----------------------------------------------- | --------------------- |\n| `PORT`            | Server port                                     | `7000`                |\n| `DATABASE_DRIVER` | Storage backend (`postgres`, `mongo`, `memory`) | `postgres`            |\n| `POSTGRES_URI`    | Postgres connection URL                         | (internal docker url) |\n| `MONGODB_URI`     | MongoDB connection URL                          | (internal docker url) |\n| `CACHE_DRIVER`    | Cache backend (`redis`, `memory`)               | `redis`               |\n| `REDIS_URL`       | Redis connection URL                            | `redis://redis:6379`  |\n| `LOG_LEVEL`       | Logging level (debug/info/warn/error)           | `info`                |\n\n### Manual Installation\n\n#### Requirements\n\n- Node.js 22+\n- npm or yarn\n- Postgres or MongoDB (Recommended for persistence)\n- Redis (Optional for caching)\n\n#### Steps\n\n```bash\n# Clone the repository\ngit clone https://github.com/semi-column/tmdb-discover-plus.git\ncd tmdb-discover-plus\n\n# Install all dependencies\nnpm run install:all\n\n# Copy and configure environment\ncp .env.example .env\n# Edit .env to configure your DB and Cache connections\n\n# Build the frontend\nnpm run build\n\n# Start the server\nnpm start\n```\n\n### Cloud Deployment\n\n#### Render / Railway / Fly.io\n\n1. Fork this repository\n2. Connect to your cloud provider\n3. Set environment variables:\n   - `MONGODB_URI` (optional)\n   - `PORT` (usually auto-set)\n4. Deploy!\n\n#### Reverse Proxy (nginx)\n\nIf running behind a reverse proxy:\n\n```nginx\nlocation / {\n    proxy_pass http://localhost:7000;\n    proxy_http_version 1.1;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n}\n```\n\n---\n\n## ⚙️ Configuration\n\n### Environment Variables\n\nSee [docs/environment.md](docs/environment.md) for a complete reference of all 28 environment variables.\n\nCreate a `.env` file from `.env.example`:\n\n```bash\n# Database Configuration\nDATABASE_DRIVER=postgres\nPOSTGRES_URI=postgres://user:pass@localhost:5432/tmdb_discover\n# MONGODB_URI=mongodb+srv://...\n\n# Cache Configuration\nCACHE_DRIVER=redis\nREDIS_URL=redis://localhost:6379\n\n# Server Settings\nPORT=7000\nLOG_LEVEL=info\nCORS_ORIGIN=*\n```\n\n### Filter Options\n\n| Filter                | Description                                                               |\n| --------------------- | ------------------------------------------------------------------------- |\n| **Genres**            | Filter by one or more genres                                              |\n| **Exclude Genres**    | Exclude specific genres from results                                      |\n| **Year Range**        | Release year from/to                                                      |\n| **Rating Range**      | TMDB vote average (0-10)                                                  |\n| **Runtime**           | Filter by duration in minutes (with presets: Short, Standard, Long, Epic) |\n| **Sort By**           | Popularity, Rating, Release Date, Revenue                                 |\n| **Randomize**         | Fetch a random page from results and shuffle them locally                 |\n| **Language**          | Original language filter                                                  |\n| **Country**           | Origin country filter                                                     |\n| **Region**            | Regional release filter (for theatrical releases)                         |\n| **First Air Date**    | TV show premiere date filter                                              |\n| **Date Presets**      | Quick filters: Last 30/90 days, Last 6 months, This/Last Year             |\n| **Min Votes**         | Minimum vote count for quality filtering                                  |\n| **Streaming Service** | Filter by watch provider                                                  |\n| **People**            | Filter by actors, directors                                               |\n| **Companies**         | Filter by production company                                              |\n| **Exclude Companies** | Exclude specific production companies                                     |\n| **Keywords**          | Filter by content keywords                                                |\n| **Exclude Keywords**  | Exclude content with specific keywords                                    |\n| **IMDB Only**         | Only show items with IMDB IDs                                             |\n\n---\n\n## 📖 Usage\n\n### Getting Started Guide\n\n1. **🌐 Open the Configuration Page**\n   - Visit your instance URL (e.g., `http://localhost:7000` or public instance)\n\n2. **🔑 Enter Your TMDB API Key**\n   - Get a free key from [TMDB](https://www.themoviedb.org/settings/api)\n   - Only takes 2 minutes to sign up!\n\n3. **🎨 Create Your First Catalog**\n   - Click \"Add Catalog\"\n   - Choose from preset templates or create custom filters\n   - Use \"Preview\" to see results in real-time\n\n4. **💾 Save \u0026 Install**\n   - Click \"Save Configuration\"\n   - Click \"Install to Stremio\" to add the addon\n   - Your catalogs will appear in Stremio!\n\n5. **✏️ Edit Anytime**\n   - Return to your configuration URL to modify catalogs\n   - Changes sync automatically\n\n### 💡 Pro Tips\n\n- **🎲 Randomize** - Enable randomization to discover hidden gems\n- **📅 Use Date Presets** - \"Last 30 days\" automatically updates daily\n- **⭐ Filter by Votes** - Set minimum vote count to avoid obscure titles\n- **🏢 Exclude Studios** - Filter out specific production companies\n- **🔍 Preview First** - Always preview before installing to verify results\n\n---\n\n## ❓ FAQ \u0026 Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eHow do I get a TMDB API key?\u003c/b\u003e\u003c/summary\u003e\n\n1. Go to [themoviedb.org](https://www.themoviedb.org/)\n2. Create a free account\n3. Go to Settings → API\n4. Request an API key (choose \"Developer\" option)\n5. Fill in basic details—it's approved instantly!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eMy catalogs aren't showing up in Stremio\u003c/b\u003e\u003c/summary\u003e\n\nTry these steps:\n\n1. Make sure you clicked \"Install to Stremio\"\n2. Restart the Stremio app\n3. Check if the addon appears in Settings → Addons\n4. Verify your configuration URL is correct\n5. Check browser console for errors (F12)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCan I use this without self-hosting?\u003c/b\u003e\u003c/summary\u003e\n\nYes! Use one of our public instances:\n\n- **Stable:** [tmdb-discover-plus.elfhosted.com](https://tmdb-discover-plus.elfhosted.com/)\n\nNo installation required!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eHow many catalogs can I create?\u003c/b\u003e\u003c/summary\u003e\n\nThere's no hard limit! However, for performance:\n\n- Keep it under 20 catalogs for best experience\n- Each catalog is loaded separately by Stremio\n- Consider using meaningful filters to avoid overlaps\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eDoes this addon provide streams?\u003c/b\u003e\u003c/summary\u003e\n\n**No.** TMDB Discover+ is a **catalog addon** that helps you discover movies and TV shows. You need other Stremio addons (like Torrentio, The Movie Database +, etc.) to actually stream content.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eIs my TMDB API key secure?\u003c/b\u003e\u003c/summary\u003e\n\nYes! Your API key is:\n\n- Encrypted at rest using AES-256\n- Never logged or exposed in responses\n- Only used for TMDB API calls\n- Stored securely in the database\n\nFor self-hosted instances, you have full control!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eWhy do some filters not work together?\u003c/b\u003e\u003c/summary\u003e\n\nTMDB's API has some limitations:\n\n- Some filter combinations may return no results\n- \"With people\" filter works best with fewer other filters\n- Try using preview to verify filter combinations work\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCan I export/import my configuration?\u003c/b\u003e\u003c/summary\u003e\n\nCurrently, configurations are tied to your user ID. We're considering adding export/import in future versions!\n\nFollow the project for updates or contribute this feature!\n\n\u003c/details\u003e\n\n---\n\n## 📖 Usage\n\n\u003e **Note:** This section has been moved above. See the [Getting Started Guide](#-usage) for detailed usage instructions.\n\n---\n\n## 📡 API Reference\n\nSee [docs/api.md](docs/api.md) for comprehensive API documentation with request/response shapes, auth requirements, and rate limits. See [docs/architecture.md](docs/architecture.md) for system architecture.\n\n### Health \u0026 Status\n\n| Endpoint          | Description                                      |\n| ----------------- | ------------------------------------------------ |\n| `GET /health`     | Basic health check                               |\n| `GET /api/status` | Version, build info, uptime, database/cache type |\n\nThe `/api/status` endpoint returns:\n\n```json\n{\n  \"version\": \"2.6.7\",\n  \"tag\": \"v2.6.7\",\n  \"channel\": \"stable\",\n  \"commitHash\": \"abc1234\",\n  \"buildTime\": \"2026-02-02T12:00:00.000Z\",\n  \"uptime\": 3600,\n  \"environment\": \"production\",\n  \"database\": \"postgres\",\n  \"cache\": \"redis\",\n  \"stats\": { \"users\": 100, \"catalogs\": 250 }\n}\n```\n\n### Stremio Addon Endpoints\n\n| Endpoint                                     | Description            |\n| -------------------------------------------- | ---------------------- |\n| `GET /:userId/manifest.json`                 | Stremio addon manifest |\n| `GET /:userId/catalog/:type/:id.json`        | Catalog results        |\n| `GET /:userId/catalog/:type/:id/:extra.json` | Paginated catalog      |\n\n### Configuration API\n\n| Endpoint              | Method | Description              |\n| --------------------- | ------ | ------------------------ |\n| `/api/config`         | POST   | Create new configuration |\n| `/api/config/:userId` | GET    | Get user configuration   |\n| `/api/config/:userId` | PUT    | Update configuration     |\n| `/api/validate-key`   | POST   | Validate TMDB API key    |\n| `/api/preview`        | POST   | Preview catalog results  |\n\n### TMDB Data Endpoints\n\n| Endpoint                     | Description                     |\n| ---------------------------- | ------------------------------- |\n| `/api/genres/:type`          | Get genres for movie/series     |\n| `/api/languages`             | Get available languages         |\n| `/api/countries`             | Get available countries         |\n| `/api/watch-providers/:type` | Get streaming providers         |\n| `/api/search/person`         | Search for actors/directors     |\n| `/api/search/company`        | Search for production companies |\n| `/api/search/keyword`        | Search for keywords             |\n\n---\n\n## 🛠️ Development\n\n### Prerequisites\n\n- Node.js 22+\n- npm\n\n### Setup\n\n```bash\n# Clone and install\ngit clone https://github.com/semi-column/tmdb-discover-plus.git\ncd tmdb-discover-plus\nnpm run install:all\n\n# Start development servers (frontend + backend)\nnpm run dev\n```\n\n- Frontend: http://localhost:5173 (with hot reload)\n- Backend: http://localhost:7000 (with watch mode)\n\n### Project Structure\n\n```\ntmdb-discover-plus/\n├── client/                 # React frontend\n│   ├── src/\n│   │   ├── components/     # React components\n│   │   ├── hooks/          # Custom hooks\n│   │   ├── services/       # API client\n│   │   └── styles/         # CSS styles\n│   └── public/             # Static assets\n├── server/                 # Express backend\n│   └── src/\n│       ├── routes/         # API routes\n│       ├── services/       # Business logic\n│       ├── models/         # Database models\n│       └── utils/          # Helpers, logger, validation\n├── Dockerfile              # Production Docker image\n├── docker-compose.yml      # Docker Compose config\n└── .env.example            # Environment template\n```\n\n### Tech Stack\n\n**Backend:**\n\n- **Runtime:** Node.js 22+ with ES Modules\n- **Framework:** Express.js\n- **Databases:** PostgreSQL / MongoDB (with in-memory fallback)\n- **Caching:** Redis / Memory\n- **HTTP Client:** node-fetch\n\n**Frontend:**\n\n- **Framework:** React 19 with Hooks\n- **Build Tool:** Vite (lightning fast ⚡)\n- **Styling:** CSS with custom properties (CSS Variables)\n- **Icons:** Lucide React\n- **State Management:** React Hooks (useState, useEffect, custom hooks)\n\n**DevOps:**\n\n- **Containerization:** Docker \u0026 Docker Compose\n- **CI/CD:** GitHub Actions\n- **Release Management:** Release Please (automated versioning)\n- **Code Quality:** Prettier, ESLint, Husky (pre-commit hooks)\n\n---\n\n## 🗺️ Roadmap\n\nWe're constantly improving TMDB Discover+! Here's what's on the horizon:\n\n### 🚧 Planned Features\n\n- [ ] **Import/Export Configurations** - Share catalog setups with friends\n- [ ] **Template Library** - Pre-made catalog templates for common use cases\n- [ ] **Enhanced Analytics** - View your catalog usage statistics\n- [ ] **Multi-language UI** - Support for multiple interface languages\n- [ ] **Advanced Sorting** - More sorting options and combinations\n- [ ] **Watched History Integration** - Filter out already-watched content\n- [ ] **Collections Support** - Create catalogs from TMDB collections\n\n### 💭 Under Consideration\n\n- GraphQL API for advanced integrations\n- Mobile app for configuration management\n- Collaborative catalogs (share with family/friends)\n- Integration with Trakt.tv\n- Custom poster/artwork selection\n\n**Want to contribute?** Check out our [Contributing Guide](docs/CONTRIBUTING.md) or [open a discussion](https://github.com/semi-column/tmdb-discover-plus/discussions)!\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions from everyone! Whether you're fixing bugs, adding features, improving docs, or suggesting ideas—your help is appreciated! 🎉\n\n**Quick Links:**\n\n- 📖 [Contributing Guidelines](docs/CONTRIBUTING.md)\n- 🐛 [Report a Bug](https://github.com/semi-column/tmdb-discover-plus/issues/new?template=bug_report.yml)\n- ✨ [Request a Feature](https://github.com/semi-column/tmdb-discover-plus/issues/new?template=feature_request.yml)\n- 💬 [Join Discussions](https://github.com/semi-column/tmdb-discover-plus/discussions)\n- 🔒 [Security Policy](docs/SECURITY.md)\n\n### How to Contribute\n\n1. 🍴 Fork the repository\n2. 🔧 Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. 💻 Make your changes and test them\n4. 📝 Commit using [Conventional Commits](https://conventionalcommits.org/) (`git commit -m 'feat: add amazing feature'`)\n5. 🚀 Push to your branch (`git push origin feature/amazing-feature`)\n6. 🎉 Open a Pull Request\n\n**First-time contributor?** Look for issues labeled [`good first issue`](https://github.com/semi-column/tmdb-discover-plus/labels/good%20first%20issue)!\n\n---\n\n## 💬 Community \u0026 Support\n\n### Get Help\n\n- 💬 **[Discord Server](https://discord.gg/X2N3btmEG2)** - Real-time chat and support\n- 🗣️ **[GitHub Discussions](https://github.com/semi-column/tmdb-discover-plus/discussions)** - Q\u0026A and ideas\n- 🐛 **[Issue Tracker](https://github.com/semi-column/tmdb-discover-plus/issues)** - Bug reports\n- 📖 **[Documentation](https://github.com/semi-column/tmdb-discover-plus#readme)** - This README\n\n### Stay Updated\n\n- ⭐ **Star the repo** to get notifications for new releases\n- 👀 **Watch releases** on GitHub\n- 🐦 Follow development progress in [GitHub Projects](https://github.com/semi-column/tmdb-discover-plus/projects)\n\n### Community Guidelines\n\nWe're committed to providing a welcoming and inspiring community for all. Please review our:\n\n- 📜 [Code of Conduct](docs/CODE_OF_CONDUCT.md)\n- 🛡️ [Security Policy](docs/SECURITY.md)\n- 🤝 [Contributing Guidelines](docs/CONTRIBUTING.md)\n\n---\n\n## ⭐ Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=semi-column/tmdb-discover-plus\u0026type=Date)](https://star-history.com/#semi-column/tmdb-discover-plus\u0026Date)\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eHelp us grow by starring the repository! ⭐\u003c/em\u003e\n\u003c/p\u003e\n\n---\n\n## 🔗 Related Projects \u0026 Ecosystem\n\n### Recommended Stremio Addons\n\nThese addons work great with TMDB Discover+:\n\n- **[Torrentio](https://torrentio.strem.fun/)** - Torrent streams\n- **[Comet](https://github.com/g0ldyy/comet)** - Debrid streams\n- **[MediaFusion](https://mediafusion.elfhosted.com/)** - Multiple streaming sources\n\n### Useful Tools\n\n- **[TMDB](https://www.themoviedb.org/)** - Browse and discover content\n- **[RPDB](https://ratingposterdb.com/)** - High-quality posters\n- **[Stremio Community](https://www.reddit.com/r/StremioAddons/)** - Reddit community\n\n\u003e **Note:** TMDB Discover+ is a catalog addon. You need stream addons (like Torrentio) to actually watch content!\n\n---\n\n## 📊 Project Stats\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/repo-size/semi-column/tmdb-discover-plus?style=flat-square\u0026label=Repo%20Size\" alt=\"Repo Size\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/languages/top/semi-column/tmdb-discover-plus?style=flat-square\" alt=\"Top Language\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/commit-activity/m/semi-column/tmdb-discover-plus?style=flat-square\u0026label=Commit%20Activity\" alt=\"Commit Activity\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/last-commit/semi-column/tmdb-discover-plus?style=flat-square\u0026label=Last%20Commit\" alt=\"Last Commit\" /\u003e\n\u003c/p\u003e\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## ⚠️ Disclaimer\n\nThis project is **not affiliated with, endorsed by, or sponsored by** The Movie Database (TMDB) or Stremio.\n\n- All product names, logos, and brands are property of their respective owners\n- This addon uses the TMDB API for metadata but is an independent, community-driven project\n- Users are responsible for complying with TMDB's Terms of Service and API usage guidelines\n- The developers assume no responsibility for any misuse of this software or violation of third-party terms of service\n- This addon provides catalog discovery only—streaming content depends on your other Stremio addons\n\n**Use responsibly and respect content creators!**\n\n---\n\n## 🙏 Credits \u0026 Acknowledgments\n\nBuilt with amazing open-source technologies and services:\n\n- **[TMDB](https://www.themoviedb.org/)** - The Movie Database API for comprehensive metadata\n- **[Stremio](https://www.stremio.com/)** - The media center platform that makes it all possible\n- **[Lucide](https://lucide.dev/)** - Beautiful, consistent icons\n- **[ElfHosted](https://elfhosted.com/)** - Reliable hosting for the stable instance\n- **[RPDB](https://ratingposterdb.com/)** - High-quality posters and ratings\n\nSpecial thanks to:\n\n- All our [contributors](https://github.com/semi-column/tmdb-discover-plus/graphs/contributors) who help improve this project\n- The Stremio community for their support and feedback\n- Everyone who has starred, shared, or sponsored this project\n\nMade possible by the open-source community! ❤️\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ by the TMDB Discover+ community\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemi-column%2Ftmdb-discover-plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemi-column%2Ftmdb-discover-plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemi-column%2Ftmdb-discover-plus/lists"}