Note that the recent change/refactor to typscript doesn't implement everything the perl script had but they are working fast to bring it back up to par. Specifically, a lot of the extra information about programs is not included in the listings - new/repeat/episode info/cast info/etc.
I've been using the script that was maintained at GitHub - jef/zap2xml: Automate TV guides to XMLTV and that's been pretty reliable.
It recently changed to typescript, and it seems quite a bit faster too. I installed node and am running it that way. Maybe there's also a way to create a...