bbergle-zap2xml

bbergle-zap2xml

Docker app from BBergle's Repository

Overview

Environment Variable-driven configuration of zap2xml This is now using a new repo spencerlandis/zap2xml Go to https://tvlistings.zap2it.com and make an account, once it is made you can enter the credentials in the fields below

zap2xml

Automate TV guides to XMLTV format. Easy to use, up-to-date. See below for getting started.

I also somewhat maintain a version of the original in the historical-perl branch if you're interested in that.

How to use

Node.js

npm i && npm run build && node dist/index.js

See Command line arguments for configuration options.

Docker

Tag Description
latest Stable zap2xml releases
nightly HEAD zap2xml release

docker-compose

services:
  zap2xml:
    container_name: zap2xml
    image: ghcr.io/jef/zap2xml:latest
    environment:
      OUTPUT_FILE: /xmltv/xmltv.xml
    volumes:
      - ./xmltv:/xmltv
    restart: unless-stopped

See Environment variables for configuration options.

Configuration

Environment variables

Variable Description Default
LINEUP_ID Lineup ID; Read more in the Wiki USA-lineupId-DEFAULT (Attenna)
TIMESPAN Timespan in hours (up to 360 = 15 days, default: 6) 6
PREF User Preferences, comma separated list. m for showing music, p for showing pay-per-view, h for showing HD (empty)
COUNTRY Country code (default: USA) USA
POSTAL_CODE Postal code of where shows are available. 30309
USER_AGENT Custom user agent string for HTTP requests. Uses random if not specified
TZ Timezone System default
SLEEP_TIME Sleep time before next run in seconds (default: 21600, Only used with Docker.) 21600
OUTPUT_FILE Output file name (default: xmltv.xml) xmltv.xml

Command line arguments

Argument Description Default
--lineupId Lineup ID; Read more in the Wiki USA-lineupId-DEFAULT (Attenna)
--timespan Timespan in hours (up to 360 = 15 days, default: 6) 6
--pref User Preferences, comma separated list. m for showing music, p for showing pay-per-view, h for showing HD (empty)
--country Country code (default: USA) USA
--postalCode Postal code of where shows are available. 30309
--userAgent Custom user agent string for HTTP requests. Uses random if not specified
--timezone Timezone System default
--outputFile Output file name (default: xmltv.xml) xmltv.xml

Setup and running in intervals

Running natively

You can run zap2xml natively on your system. It is recommended to use a task scheduler to run it in intervals.

Here are some links to get you started on your machine:

If you want to run zap2xml in intervals, you can use a task scheduler like cron on Linux or the Task Scheduler on Windows. Each of the wiki pages above has a section on how to set up zap2xml to run in intervals.

Running in Docker

You can run zap2xml in a Docker container. The SLEEP_TIME environment variable can be used to set the interval between runs. The default is 21600 seconds (6 hours).

FAQ

How do I get my Lineup ID?

Visit https://github.com/jef/zap2xml/wiki/Retrieving-Lineup-ID

Install bbergle-zap2xml on Unraid in a few clicks.

Find bbergle-zap2xml in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for bbergle-zap2xml Review the template variables and paths Click Install

Download Statistics

4,607
Total Downloads

Details

Repository
spencerlandis/zap2xml
Last Updated2025-07-02
First Seen2025-05-22

Runtime arguments

Network
bridge
Shell
sh
Privileged
false

Template configuration

Container Path 1Pathrw
Target
/data
Container Variable 1Variable{3}
Target
USERNAME
Container Variable 2Variable{3}
Target
PASSWORD
Container Variable 3Variable{3}
Target
XMLTV_FILENAME
Default
xmltv.xml
Value
xmltv.xml
Container Variable 4Variable{3}
Target
OPT_ARGS
Container Variable 5Variable{3}
Target
SLEEPTIME
Default
43200
Value
43200