Sportarr - Sports PVR for usenet and torrents. Like Sonarr & Radarr but for sports events.
Sportarr monitors sports leagues and events, searches your indexers for releases, and handles file renaming, organization, and integrates with media servers like Plex.
- Tracks events across all major sports (fighting sports, football, soccer, basketball, racing, etc.)
- Searches Usenet and torrent indexers automatically
- Manages quality upgrades when better releases become available
- Organizes files with customizable naming schemes
- Supports multi-part events (prelims, main cards) for fighting sports
- Integrates with Plex, Jellyfin, Emby for library updates
version: "3.8"
services:
sportarr:
image: sportarr/sportarr:latest
container_name: sportarr
environment:
- PUID=99
- PGID=100
- UMASK=022
- TZ=America/New_York # Optional: Set your timezone
volumes:
- /path/to/sportarr/config:/config
- /path/to/sports:/sports
ports:
- 1867:1867
restart: unless-stoppedThe /config volume stores your database and settings. The /sports volume is your media library root folder.
After starting the container, access the web UI at http://your-server-ip:1867.
docker run -d \
--name=sportarr \
-e PUID=99 \
-e PGID=100 \
-e UMASK=022 \
-e TZ=America/New_York \
-p 1867:1867 \
-v /path/to/sportarr/config:/config \
-v /path/to/sports:/sports \
--restart unless-stopped \
sportarr/sportarr:latestSportarr will be available in the Unraid Community Applications after official launch. Search for "sportarr" and install from there. The app is currently in alpha testing and remaining more hidden for limited visibility during this phase.
Download the latest release from the releases page. Extract the archive for your platform and run the executable.
By default, configuration is stored in a data subdirectory where you run Sportarr from. You can specify a custom location using the -data argument:
# Windows
Sportarr.exe -data C:\ProgramData\Sportarr
# Linux/macOS
./Sportarr -data /var/lib/sportarrOr set the Sportarr__DataPath environment variable:
# Linux/macOS
export Sportarr__DataPath=/var/lib/sportarr
./Sportarr
# Windows PowerShell
$env:Sportarr__DataPath = "C:\ProgramData\Sportarr"
.\Sportarr.exePriority order: Command-line -data argument > Environment variable > Default ./data
-
Root Folder - Go to Settings > Media Management and add a root folder. This is where Sportarr will store your sports library.
-
Download Client - Settings > Download Clients. Add your download client (qBittorrent, Transmission, Deluge, rTorrent, uTorrent, SABnzbd, NZBGet, or Decypharr). If using Docker, make sure both containers can access the same download path.
-
Indexers - Settings > Indexers. Add your Usenet indexers or torrent trackers. Sportarr supports Newznab and Torznab APIs, so Prowlarr integration works out of the box.
-
Add Content - Use the search to find leagues or events. Add them to your library and Sportarr will start monitoring.
Usenet: SABnzbd, NZBGet, NZBdav
Torrents: qBittorrent, Transmission, Deluge, rTorrent, uTorrent
Debrid/Proxy: Decypharr (torrents and usenet)
If you use Prowlarr, you can sync your indexers automatically:
- In Prowlarr, go to Settings > Apps
- Add Sonarr as an application (Sportarr isn't in Prowlarr yet, but the Sonarr option works)
- Use
http://localhost:1867as the URL (or your actual IP/hostname) - Get your API key from Sportarr's Settings > General
- Select TV (5000) categories for sync - this includes TV/HD (5040), TV/UHD (5045), and TV/Sport (5060)
Indexers will sync automatically and stay updated.
Sportarr uses a TV show-style naming convention that works well with Plex:
/sports/Sports League/Season 2024/Sports League - s2024e12 - Event Title - 1080p.mkv
For fighting sports with multi-part episodes enabled:
Sports League - s2024e12 - pt1 - Event Title.mkv (Early Prelims)
Sports League - s2024e12 - pt2 - Event Title.mkv (Prelims)
Sports League - s2024e12 - pt3 - Event Title.mkv (Main Card)
You can customize the naming format in Settings > Media Management.
Sportarr provides metadata agents for Plex and Jellyfin that fetch posters, banners, descriptions, and episode organization from sportarr.net.
Sportarr supports two methods for Plex integration:
For Plex 1.43.0+, use the new Custom Metadata Provider system. No plugin installation required!
- Open Plex Web and go to Settings → Metadata Agents
- Click + Add Provider
- Enter the URL:
https://sportarr.net/plex - Click + Add Agent and give it a name (e.g., "Sportarr")
- Restart Plex Media Server
- Create a TV Shows library, select your sports folder, and choose the Sportarr agent
For older Plex versions, download the legacy bundle from Sportarr UI (Settings > General > Media Server Agents) and copy to your Plex Plug-ins directory. Note: Plex has announced legacy agents will be deprecated in 2026.
See agents/plex/README.md for detailed instructions and troubleshooting.
-
Build the plugin or download from releases:
cd agents/jellyfin/Sportarr dotnet build -c Release -
Copy the DLL to your Jellyfin plugins directory:
- Docker:
/config/plugins/Sportarr/ - Windows:
%APPDATA%\Jellyfin\Server\plugins\Sportarr\ - Linux:
~/.local/share/jellyfin/plugins/Sportarr/
- Docker:
-
Restart Jellyfin
-
Create a library: select Shows, add your sports folder, enable Sportarr under Metadata Downloaders
See agents/jellyfin/README.md for detailed instructions.
⚠️ ALPHA FEATURE WARNING: The IPTV DVR functionality is in very early alpha stage. Expect bugs, missing features, and poor functionality while this feature is being developed. Use at your own risk and please report any issues you encounter.
Sportarr includes experimental support for recording live sports events directly from IPTV streams using FFmpeg.
- IPTV Source Management - Add M3U playlists or Xtream Codes providers
- Channel-to-League Mapping - Map IPTV channels to leagues for automatic recording
- Automatic DVR Scheduling - When you monitor an event, Sportarr can automatically schedule a DVR recording if the league has a mapped channel
- FFmpeg Recording - Records IPTV streams in transport stream format
- Auto-Import - Completed recordings are automatically imported into your event library
- TV Guide - EPG-style grid showing channels and their programming with DVR recordings highlighted
- Filtered M3U/EPG Export - Serve filtered playlists and EPG data to external IPTV apps
- FFmpeg must be installed and accessible in your system PATH
- A working IPTV source (M3U playlist or Xtream Codes credentials)
- Recording quality depends entirely on your IPTV source
- Stream reconnection may not work reliably with all providers
- Limited error handling for stream failures
- No hardware acceleration support yet
- File size estimation is approximate
-
Go to Settings > IPTV Sources and add your M3U playlist URL or Xtream Codes provider
-
Go to Settings > IPTV Channels to view imported channels and map them to leagues
-
Go to Settings > DVR Recordings to configure recording settings and view scheduled/completed recordings
-
When you monitor an event, if its league has a mapped channel, a DVR recording will be automatically scheduled
The TV Guide provides an EPG-style grid view of your IPTV channels and their programming:
- EPG Sources - Add XMLTV EPG sources to populate channel programming
- Time-based Navigation - Browse programming in 6-hour increments
- Filters - Show only scheduled recordings, sports channels, or enabled channels
- DVR Integration - Scheduled recordings are highlighted in the guide
- Quick Scheduling - Click any program to view details and schedule a DVR recording
Access the TV Guide from IPTV > TV Guide in the navigation menu.
Sportarr can serve filtered M3U playlists and EPG data for use with external IPTV applications like TiviMate, IPTV Smarters, or other players:
- Filtered M3U -
http://your-server:1867/api/iptv/filtered.m3u - Filtered EPG -
http://your-server:1867/api/iptv/filtered.xml
Optional query parameters:
sportsOnly=true- Only include sports channelsfavoritesOnly=true- Only include favorite channelssourceId=X- Only include channels from a specific source
The filtered exports respect your channel settings - hidden channels are excluded, and only enabled channels are included. Find the subscription URLs in Settings > IPTV Sources under "External App Subscription URLs".
This feature is under active development. Feedback and bug reports are welcome!
Can't connect to download client in Docker?
Use the container name (e.g., qbittorrent) instead of localhost. Make sure both containers are on the same Docker network.
Files not importing? Check that the download path is accessible from within the Sportarr container. The path your download client reports needs to be the same path Sportarr sees.
Indexer errors? Check your API keys and make sure you haven't hit rate limits. Logs are available in System > Logs.
- Discord - Best place for quick help
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - General questions
Requires .NET 8 SDK and Node.js 20+.
git clone https://github.com/Sportarr/Sportarr.git
cd Sportarr
# Backend
dotnet build src/Sportarr.Api.csproj
# Frontend
cd frontend
npm install
npm run buildGNU GPL v3 - see LICENSE.md
Sportarr is based on Sonarr. Thanks to the Sonarr team for the foundation.
















