xTeVe generates the golden XMLTV Channels generates the golden M3U Input - M3U Channels DVR M3U output (5) Input - XMLTV Pluto for channels - hourly Epg123 - daily XEEV - daily (2) 1 - xTeVe! Output - M3U used by Plex, points to Channels DVR (7) Output - XMLTV used by python XMLTV post-process (4) Input - M3U custom logo links from grapevine Logo links manually copied from xTeVe (1) Channel numbers decided here? (as EPG-ID) nginx links added here 2 - XEEV Editor! Output - M3U Combined playlists, points to nginx CGI used by python M3U post-process (3) Output - XMLTV used for xTeVe input (1) Input - M3U XEEV combined output M3U (2) 3 - Python! copy EPG-ID to channel number Output - M3U XEEV golden M3U (5) Input - XMLTV xTeVe output XMLTV (1) 4 - Python! remove duplicates fix episodes logos to programs Output - XMLTV xTeVe golden XMLTV used by all (5,6,7) Input - M3U OTA scan (HDHomeRun) XEEV golden M3U, nginx CGI (3) Input - XMLTV xTeVe golden XMLTV, for each M3U input (4) 5 - Channels DVR! Output - M3U forwards to HDHomeRun and nginx CGI Output - XMLTV not used? Input - M3U Channels DVR M3U output (5) Input - XMLTV xTeVe golden XMLTV (4) 6 - Emby! Input - M3U xTeVe tuner (1) Input - XMLTV xTeVe golden XMLTV (4) 7 - Plex! Plex M3U path: XEEV Editor Python script - hourly Channels DVR - hourly Python script - hourly xTeVe Tuner - 3 hours Plex - 3 hours Plex XMLTV path: Epg123, Pluto for Channels, XEEV xTeVe Tuner - 3 hours Python script - hourly Plex - 3 hours Emby M3U path: XEEV Editor Python script - hourly Channels DVR - hourly Python script - hourly Emby - 3 hours Emby XMLTV path: Epg123, Pluto for Channels, XEEV xTeVe Tuner - 3 hours Python script - hourly Emby - 3 hours