Skip to content

Rayce185/Recommendarr

Repository files navigation

Recommendarr

Recommendarr

Release Docker Pulls License

A self-hosted media recommendation engine for Plex. Learns from viewing behavior across all server users to generate personalized, explainable recommendations.

Features

  • 6 Recommendation Modes: Watch Tonight, Worth Grabbing, Rediscover, Mood Match, Group Night, Discovery Feed
  • AI-Powered Explanations: Optional LLM generates natural language "why we picked this" for each recommendation
  • Smart Mood Matching: Natural language mood input ("just got dumped, distract me, no romcoms") parsed into genre/keyword weights — with LLM enhancement when configured
  • Multi-Source Trending: Global TMDB, by country, by streaming provider, new releases, anime
  • Collection Tracking: Detects partially watched franchises (John Wick, MCU, etc.) with completion progress and one-click requests for missing parts
  • Group Night: Multi-user taste intersection — find what everyone will enjoy
  • Plex Wrapped: Per-user viewing statistics and insights
  • Social Layer: Taste overlap scores, server-wide trending, and friend system
  • Friend System: Request/accept/decline friends, activity feed (what friends watch), friend suggestions based on taste overlap, privacy controls
  • Group Night Friends: Quick-select friends in Group Night user picker
  • Genre Filters: Filter trending results by genre across all tabs
  • User-Preferred Countries: Auto-detected from watch history language distribution — quick-pick chips in By Country tab
  • Series Progress: Completion progress bars on TV recommendation cards
  • Discovery Feed: Personalized weekly mix based on taste profile
  • World Cinema Map: Geographic discovery with taste matching
  • Cultural Pulse: RSS-powered trending theme detection
  • Coming Soon Calendar: TMDB + Radarr/Sonarr release tracking
  • Notification Center: New recommendations, trending, and collection updates
  • Recommendation History: Full logging with stats and mode breakdown
  • "Because You Watched X": Explicit attribution showing which library items drove each recommendation
  • Why Not?: Negative transparency — explains why titles aren't recommended
  • Advanced Filters: Year range and rating threshold on recommendation pages
  • Plex OAuth Authentication: Secure login via Plex account with server access verification
  • Taste Profiles: Auto-generated from watch history with manual genre/keyword tuning
  • Feedback Loop: Thumbs up/down/dismiss — adjusts future recommendations
  • Plex Watchlist Integration: Add/remove directly from recommendation cards
  • Seerr Request Integration: Request media not yet in your library
  • Admin User Switcher: Preview any user's recommendations
  • Editable Settings: Runtime configuration via UI — no restart needed
  • Dark/Light Theme: OS preference detection with manual override
  • Mobile Responsive: Works on phones, tablets, and desktops

Screenshots

Watch Tonight
Watch Tonight — Personalized recommendations with poster art and explanations
Trending
Trending — Global and per-country trending with genre filters
Discovery Feed
Discovery Feed — Personalized weekly mix based on taste profile
Browse
Browse & Search — Full-text search with advanced filters
Mood Match
Mood Match — Natural language mood input with AI enhancement
Detail Modal
Title Details — Rich overlay with cast, ratings, streaming availability
World Cinema
World Cinema — Geographic discovery with taste matching
Calendar
Coming Soon — TMDB + Radarr/Sonarr release calendar
Taste Profile
Taste Profile — Auto-generated from watch history with manual tuning
Mobile
Mobile — Fully responsive on phones and tablets

Quick Start

Docker (recommended)

docker run -d \
  --name recommendarr \
  --restart unless-stopped \
  -p 5055:5055 \
  -v /path/to/data:/app/data \
  -e PLEX_URL=http://your-plex:32400 \
  -e PLEX_TOKEN=your-plex-token \
  -e TAUTULLI_URL=http://your-tautulli:8181 \
  -e TAUTULLI_API_KEY=your-tautulli-key \
  -e TMDB_API_KEY=your-tmdb-key \
  -e RADARR_URL=http://your-radarr:7878 \
  -e RADARR_API_KEY=your-radarr-key \
  -e SONARR_URL=http://your-sonarr:8989 \
  -e SONARR_API_KEY=your-sonarr-key \
  -e SEERR_URL=http://your-seerr:5055 \
  -e SEERR_API_KEY=your-seerr-key \
  -e TZ=America/New_York \
  rayce185/recommendarr:latest

Open http://your-server:5055 and log in with your Plex account.

Docker Compose

git clone https://github.com/Rayce185/Recommendarr.git
cd Recommendarr
cp .env.example .env
# Edit .env with your API keys (see .env.example for full docs)
docker compose up -d

unRAID

Install via Community Applications — search for "Recommendarr". Or use the Docker template manually from this repo.

Stack

  • Backend: Python / FastAPI
  • Frontend: React (Vite)
  • Services: Plex, Tautulli, Radarr, Sonarr, Seerr, TMDB
  • Optional AI: Ollama, OpenAI-compatible, OpenAI, or Anthropic for enhanced features

Requirements

  • Docker
  • Plex Media Server (with admin token)
  • Tautulli (for watch history)
  • At least one of: Radarr, Sonarr (for library data)
  • Seerr/Overseerr (for TMDB discovery + request proxy)
  • TMDB API key (free at themoviedb.org)

Optional: AI Integration

Recommendarr works without any LLM — all features have deterministic fallbacks. To enable AI-enhanced features:

  1. Go to Settings → AI Integration in the web UI
  2. Select a provider (Ollama, OpenAI-compatible, OpenAI, or Anthropic)
  3. Configure endpoint + model
  4. Enable features: AI Mood (natural language parsing) and/or AI Explanations (LLM-generated recommendation reasons)

Tested with Ollama + gemma3:4b (runs on any modern GPU with 4GB+ VRAM).

API

46+ REST endpoints. Interactive docs at /api/docs when running.

Contributing

Pull requests welcome. Please open an issue first to discuss significant changes.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors