Tip
New to Dispatcharr plugins? Start with the Dispatcharr Plugin Workflow guide. It explains what each plugin and tool does, where they overlap, and what order to use them in.
Guide assignments this plugin has written on the author's own installation: one per channel per applied run, counted from what Dispatcharr confirmed, so previews add nothing and a channel reassigned later counts again. The opening figure was reconstructed from past exports and is an estimate; everything after it is measured.
Before installing or using this plugin, it is highly recommended that you create a backup of your Dispatcharr database. This plugin modifies EPG assignments on channels and can rename channels.
Click here for instructions on how to back up your database.
Dispatcharr can assign a programme guide to a channel, but nothing checks whether that assignment actually works. EPG Janitor finds the channels where it does not, and fixes them.
Assign a guide to channels that have none. Auto-match scores every channel against every eligible EPG entry using two independent methods and takes the better result: weighted structural signals over US callsign, state, city and network, and a fuzzy name pipeline running alias lookup, then exact, then substring, then token-sort comparison. Every run has a preview that writes a CSV and changes nothing.
Repair guides that are assigned but empty. Scan & Heal finds channels whose EPG assignment carries no actual programme data, searches for a working replacement among the sources you allow, and only commits one that has real programme data in the window you set.
Recognise US over-the-air stations properly. Callsigns are matched in
parentheses (ABC (WABC)), at the end of a name (WABC-DT), and in the leading
CALLSIGN (NETWORK) form used by feeds such as jesmann-US. A shared
high-confidence callsign anchors the match and a disagreement rejects it. Every
callsign the FCC licenses is shipped with the plugin, so a real station is
recognised even when it is absent from the channel databases, while
callsign-shaped English words such as KILN and WHIP are not mistaken for
stations.
Avoid the mistakes that look like successes. Numbered and time-shifted
siblings do not cross-match, so Fox Sports 1 does not take Fox Sports 2's
guide and ITV2 does not take ITV2 +1's. Regional variants route to the
correct regional feed. Number words fold to digits, CamelCase splits, and dotted
compounds split, while radio frequencies are left alone.
Clean up in bulk. Remove EPG assignments by regular expression, from hidden channels, or from whole groups. Tag channels with missing programme data with a visible suffix. Export any run to CSV with the score, the method and the reasoning for every row.
Know what a run did, and what it was told to do. Every CSV export opens with a commented preamble naming the report, stating the counts the run produced, and listing the settings it used under the names the form gives them. Button colour tells you the consequence before you press anything: red can remove a guide assignment and always confirms first, orange writes data but removes no assignment, green runs an operation that writes no channel data, and blue only reads. Exports can be cleaned up by age, which is off unless you set a number of days, and never touches another plugin's files.
Watch for guides going stale, if you want it. An optional freshness watchdog checks every EPG source on a schedule and refreshes any that has errored or is running out of guide data. It is off by default and writes system events only.
Everything runs inside Dispatcharr against its database directly, so there are no API credentials to configure. There are no required dependencies.
- User guide: every setting, every action, how matching works, and troubleshooting by symptom
- Changelog: what changed in each version
- All documentation: the index
Read the warning about East to Pacific reassignment before your first bulk apply on cable or premium channels. A channel whose name carries no regional marker can be moved from an East feed to a Pacific one, shifting its whole guide by two to three hours.
- Dispatcharr v0.20.0 or newer
- Python 3.13+ (bundled with Dispatcharr)
- No required dependencies, standard library only. Optionally uses
rapidfuzzfor faster matching if it happens to be installed in the environment; if absent, a corrected pure-Python scorer computes the identical score
- Download the latest
EPG-Janitor.zipfrom the Releases page. - Log in to Dispatcharr's web UI.
- Navigate to Plugins then Import Plugin and upload the zip.
- Enable the plugin after installation.
- Remove the old plugin. Navigate to Plugins, click the trash icon next to EPG Janitor, confirm.
- Restart Dispatcharr. Log out, then
docker restart dispatcharr(or equivalent). - Install the new version. Log back in, import the new zip, enable.
- Your settings are preserved. Dispatcharr stores plugin settings in its database separately from plugin code. Updates do not clear your configuration.
EPG Janitor is published in the Dispatcharr Plugins official repository, so you can install and update it directly from Dispatcharr's Plugin Hub without downloading the zip manually.
- Fuzzy matching pipeline ported from the Lineuparr plugin
- Weighted structural scoring over callsign, state, city and network is EPG Janitor original
- Alias table seeded from Lineuparr's community-curated channel aliases
- Station callsign data derived from the FCC Licensing and Management System public database
This plugin is free and always will be. If it saves you time and you would like to support the work, you can sponsor it at github.com/sponsors/PiratesIRC.
Sponsoring buys no priority, no private support and no influence over what gets built. Bug reports and pull requests are just as welcome from everyone.
See CONTRIBUTING.md.
MIT. See LICENSE.
All product names, trademarks, and registered trademarks mentioned in this project are the property of their respective owners. Channel alias data is community-compiled from publicly available information and is not affiliated with or endorsed by any broadcaster.