Initial setup
Connect to Dispatcharr
- In Teamarr, go to Settings > Dispatcharr
- Enable the integration toggle
- Enter your Dispatcharr URL (e.g.,
http://dispatcharr:9191) - Enter your Dispatcharr username and password
- Click Test — the status badge should show “Connected”
- Click Save
Set up the EPG source in Dispatcharr
Dispatcharr needs to pull the XMLTV data that Teamarr generates.
- In Teamarr, go to the EPG page and copy the XMLTV URL:
- In Dispatcharr, add a new EPG source using that URL
- Back in Teamarr Settings > Dispatcharr, select your Teamarr EPG source from the dropdown
- Click Save
Configure default assignments
Still in Settings > Dispatcharr, set the defaults that Teamarr uses when creating new channels:
- Default Channel Profiles — which Dispatcharr profiles Teamarr-managed channels appear in
- Default Stream Profile — which stream profile to assign to streams attached to those channels
- Default Channel Group — which channel group to assign channels to (static name, dynamic
{sport}or{league}wildcard, or a custom pattern)
How it works day-to-day
Channel lifecycle
Each EPG generation run follows this sequence:- Teamarr refreshes your M3U accounts in Dispatcharr to get the latest stream data
- Streams are matched to real sporting events and templates are resolved
- Channels are created in Dispatcharr with names, logos, EPG data, streams, and profile/group assignments
- Channels are updated when event data changes (scores, status, stream availability)
- Channels are deleted when events end, based on the channel lifecycle timing configured in Settings
M3U account refresh
Before stream matching begins, Teamarr triggers a refresh of your M3U accounts in Dispatcharr. This ensures Teamarr is working with the latest available streams at the time of each EPG generation run.Profile and group sync
Teamarr enforces profile and group assignments on every generation run. If a channel’s profiles are changed manually in Dispatcharr, Teamarr corrects them on the next run. This self-healing behavior keeps your channel configuration consistent without manual intervention.
{sport} and {league} — automatically create matching profiles and groups in Dispatcharr if they do not already exist.
Reconciliation and drift detection
The Channels page can detect drift between Teamarr’s expected state and Dispatcharr’s actual state:| Status | Meaning | Action |
|---|---|---|
| Drifted | Channel exists in both but has mismatched profiles, streams, or settings | Automatically corrected on the next generation run |
| Orphaned | Channel exists in Dispatcharr but is not tracked by Teamarr | Can be cleaned up manually from the Channels page |
Network configuration
Teamarr and Dispatcharr need to reach each other over the network. The correct URL format depends on how they are deployed.Docker Compose on the same host
If both containers share the same Docker network, use container names as hostnames:Separate hosts
Use the IP address or hostname of each server:Troubleshooting connection issues
| Problem | Solution |
|---|---|
| Status shows “Disconnected” | Verify the URL is correct and Dispatcharr is running. Check that both containers are on the same Docker network if running on the same host. |
| Status shows “Error” | Hover over the status badge for details. Common causes: wrong credentials, firewall blocking the port, or Dispatcharr behind a reverse proxy with SSL mismatch. |
| EPG source dropdown is empty | Add the Teamarr XMLTV URL as an EPG source in Dispatcharr before returning to Teamarr Settings to select it. |
| Channels not appearing in Dispatcharr | Run EPG generation manually. Verify you have at least one template assigned and that streams are available in your M3U accounts. |