XMLTV
I had the idea for this library because we wanted to cancel our paper TV guide subscription. With young children, my wife and I rarely have time to watch live TV — she often catches up on replay and checks the program guide once or twice a week.
XMLTV is an XML-based format for Electronic Program Guide (EPG) data. I wrote this library because there was no Rust crate to read or write XMLTV files at the time. It leverages serde for serialization and deserialization, and flattens empty tags like <new/> into booleans to reduce boilerplate.
A companion CLI provides:
- Filtering — by channel, time range, category, language, or star rating
- Data minimization — strip credits, icons, descriptions, and more to reduce file size
- Merging & deduplication — combine multiple XMLTV sources into one
- Multi-format export — XML, JSON, iCal, Atom, JSON Feed
- Timezone normalization — output everything in UTC, local time, or a custom offset
- Terminal UI — browse channels and the EPG interactively