Sign inSign up

kj4ezj/zap2xml

By kj4ezj

Updated over 2 years ago

Download TV guide data for free.

Image
0

4.3K

kj4ezj/zap2xml repository overview

zap2xml

The zap2xml Perl script is a command-line utility that extracts electronic program guide (EPG) data for over-the-air (OTA) or cable television from any one of several service providers, parses it, collates it, and saves it in a format compatible with various media center applications. For example, you can use zap2xml to download guide data from zap2it.com in XMLTV format for free for Jellyfin, instead of paying $35/yr. for Schedules Direct.

This repo is a fork of shuaiscott/zap2xml. Their last commit was pushed April 2021 and the maintainer will not be able to access their GitHub account until 2025. The purpose of this fork is to:

  1. Rebuild the container to pull in security updates since April 2021.
  2. Add CICD with scheduled builds to continue to pull in security updates as they come.
  3. Publish the container somewhere more reliable that Docker Hub.
  4. Consolidate community bug fixes and improvements.
  5. Reduce complexity.

If you are browsing forks of shuaiscott/zap2xml wondering which fork you should use and contribute to, if any, please consider this one.

Index
  1. Usage
  2. See Also

Usage

You will need the docker engine installed to use this project.

Pull (download) this container from the GitHub container registry.

docker pull ghcr.io/kj4ezj/zap2xml

This container is also available on Docker Hub.

docker pull docker.io/kj4ezj/zap2xml

Download guide data to a file called tv-guide.xml in the current folder.

docker run -v "$(pwd):/data" kj4ezj/zap2xml /bin/sh -c "/zap2xml.pl -u '$ZAP2IT_USERNAME' -p '$ZAP2IT_PASSWORD' -U -o /data/tv-guide.xml"

The upstream repo provided a script that wraps zap2xml and runs it every 12 hours. You can run it in the foreground...

docker run -v "$(pwd):/data" -e "USERNAME=$ZAP2IT_USERNAME" -e "PASSWORD=$ZAP2IT_PASSWORD" -e XMLTV_FILENAME=tv-guide.xml kj4ezj/zap2xml

...or the background.

docker run -d -v "$(pwd):/data" -e "USERNAME=$ZAP2IT_USERNAME" -e "PASSWORD=$ZAP2IT_PASSWORD" -e XMLTV_FILENAME=tv-guide.xml kj4ezj/zap2xml

The wrapper loops forever, so you will need to manually kill the container. This command kills the last container you started.

docker kill "$(docker ps | tail -1 | awk '{print $1}')"

For this reason and others, the wrapper will be removed in a subsequent version. If you plan to rely upon it, please pull your container by git tag.

See Also

This list is not exhaustive, there may be other compatible consumers and providers.


Legal Notice
This repo contains assets created in collaboration with a large language model, machine learning algorithm, or weak artificial intelligence (AI). This notice is required in some countries.

Tag summary

Content type

Image

Digest

sha256:0cf9b63ec

Size

21.4 MB

Last updated

over 2 years ago

docker pull kj4ezj/zap2xml