/xteve

Latest Dockerized xTeVe v2.2.x IPTV proxy with Guide2go, zap2XML, Crond & Perl Support.

Primary LanguagePerl


xTeVe Docker Edition

Recommended by xTeVe

Image Maintainer: LeeD <hostmaster@dnsforge.com>


Buy us a Frosty Beverage!!

If you enjoy our docker image and would like to buy us a beer, well.. we're not going to stop you!! click here



For support click below to visit our xTeVe Discord server:

Discord



Description

xTeVe is a M3U proxy server for Plex, Emby and any client and provider which supports the .TS and .M3U8 (HLS) streaming formats.

xTeVe emulates a SiliconDust HDHomeRun OTA tuner, which allows it to expose IPTV style channels to software, which would not normally support it. This Docker image includes the following packages and features:

Docker 'run' Configuration & container mappings

The recommended default container settings are listed in the docker run command listed below:

docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest



Isolated (bridge) mode

To isolate the container in bridge mode use 'docker run' as follows. **Only use bridge mode if you fully understand its use** Generally for most users we recommend host mode.

In bridge mode the docker container will assign it's own dockernet ip address (usually in the 172.17.x network).

docker run -it -d --name=xteve -p 34400:34400 --restart=always -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest



Docker 'run' Configuration with Guide2go

If you plan to use guide2go simply, include the GUIDE2GO Volume to be able to access your files directly from the host. Existing users can also copy their existing .yaml configuration files in to this location.

docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf -v $PATH/guide2go:/home/xteve/guide2go/conf dnsforge/xteve:latest


The default Locale is configured as: America/New_York (EST) and the Web UI can be accessed at http://$HOST_IP:34400/web/



Custom Configuration

You can customize the container installation by passing options with 'docker run' or by selecting the "Environment" tab in your docker GUI. Below are a few examples of customizing the container configuration. Please see the "Parameters" table below for a list of all supported options.

Custom Locale (Timezone):

docker run -it -d --name=xteve --network=host --restart=always -e TZ=Europe/London -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest

Custom Port and Locale:

docker run -it -d --name=xteve --network=host --restart=always -e TZ=Europe/London -e XTEVE_PORT=8080 -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest


Default container paths

This container is configured with the following default environmental variables, for reference, here are the paths of the xTeVe installation:

Variable Path
   
$XTEVE_HOME /home/xteve
$XTEVE_BIN /home/xteve/bin
$XTEVE_CONF /home/xteve/conf
$XTEVE_CONF/data /home/xteve/conf/data
$XTEVE_CONF/backup /home/xteve/conf/backup
$GUIDE2GO_HOME /home/xteve/guide2go
$GUIDE2GO_CONF /home/xteve/guide2go/conf

Parameters

Parameter Description
   
--name Name of container image
--network Set network type [ host | bridge ]
--restart Enable auto restart for this container
-e TZ=Europe/London Set custom Locale
-p 34400 Default container port mapping [ 127.0.0.1:34400:34400 ]
-e XTEVE_PORT=8080 Set custom xTeVe Port
-e XTEVE_BRANCH=beta Set xTeVe git branch [ master|beta ] Default: master
-e XTEVE_DEBUG=1 Set xTeVe debug level [ 0-3 ] Default: 0=OFF
-e XTEVE_API=0 Enable/Disable API [ beta ] Default: 1=ON
-e GUIDE2GO_SERVER_HOST=10.0.0.1 Guide2go Token server [ host | ip ]
-e GUIDE2GO_SERVER_PORT=31337 Guide2go Token port [ port ]
-v Set volume mapping [ -v ~xteve:/home/xteve/conf ]
dnsforge/xteve:latest Latest Docker image


Linux Shell (Bash)

To connect to the xTeVe container to run local commands, use the following docker command to start a bash shell:

docker exec -it < container_name > /bin/bash

You will automatically be logged in as the root user. Type "su - xteve" to change to the xTeve user.



Linux

Run the container with the 'docker run' command with any desired parameters from the table above.

mkdir -p $PATH/xteve

docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf dnsforge/xteve:latest

Linux with Guide2go:

mkdir -p $PATH/xteve

mkdir -p $PATH/guide2go

docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf -v $PATH/guide2go:/home/xteve/guide2go/conf dnsforge/xteve:latest

Synology

Run the container with the 'docker run' command with any desired parameters from the table above. Alternatively you can launch this image in the Synology Docker GUI which is equivalent to 'docker run'.

mkdir /volume1/docker/xteve

docker run -it -d --name=xteve --network=host --restart=always -v /volume1/docker/xteve:/home/xteve/conf dnsforge/xteve:latest

Synology with Guide2go:

mkdir /volume1/docker/xteve

mkdir /volume1/docker/guide2go

docker run -it -d --name=xteve --network=host --restart=always -v /volume1/docker/xteve:/home/xteve/conf -v /volume1/docker/guide2go:/home/xteve/guide2go/conf dnsforge/xteve:latest

Guide2go Configuration

To use this feature you will need to purchase a Schedules Direct subscription for $25.00/yr. You can configure your guide2go lineup using the following command:

guide2conf --username < username > --password < password > --max-days < max_days [1-14] > --name < lineup_name >

When prompted configure your lineup and channels using these options:



Select "2. Add lineup" from the menu

Choose Country

Choose Postcode

Choose Provider



Select "4. Manage channels" from the menu

Choose "ALL" for your selected lineup.

NOTE: We do NOT recommend adding more than (1) Lineup to a single configuration file. If you want to run multiple lineups, follow the directions below for "Additional Guide2go Lineups".

Choose "0" to exit and then follow the prompts to run the initial lineup and automatically add a cron job to automate the guide2go data download..



Guide2go Crontab

You can now use the new guide2conf command line utility to automatically create a daily cron job. Alternatively you can manually modify the crontab by running 'crontab -e -u xteve' from a command prompt inside the container. You will need to add the guide2go XMLTV file located in $XTEVE_CONF/data/guide2go.xml to xTeVe->XMLTV in the xTeVe UI once it has been generated on the first run.


Manual crontab configuration:

# Run Schedules Direct crontab daily at 1:15 AM EST

15 1 * * * /home/xteve/bin/guide2conf --config /home/xteve/guide2go/conf/< lineup_name >.yaml



Additional Guide2go Lineups

You can have up to (4) separate guide2go lineups with one SD subscription. If you choose to create additional lineups we recommend you create separate guide2go configuration (YAML) files for each one. We also recommend staggering the lineup cron times, as Schedules Direct does limit how many concurrent connections you can have to their API at any one time. Follow the following steps to create additional lineups and crons.


guide2conf --username < username > --password < password > --max-days < max_days [1-14] > --name < lineup_name >



Select "2. Add lineup" from the menu

Choose Country

Choose Postcode

Choose Provider



Select "4. Manage channels" from the menu

Choose "NONE" for your original lineup

Choose "ALL" for your new lineup

Choose "0" to exit


The YAML file will now be written to $GUIDE2GO_CONF/< lineup_name >.yaml



Optionally automatically create a daily cron by following the prompts, otherwise you can manually add a cron later with the following command:

crontab -e -u xteve


Manual crontab configuration:

# Run Schedules Direct crontab daily at 1:15 AM EST

15 1 * * * /home/xteve/bin/guide2conf --config /home/xteve/guide2go/conf/< lineup_name >.yaml



zap2XML Crontab

To create an automated lineup and cron to run the zap2XML configuration on a daily basis, you will need to sign up for a free Zap2it account. You can then create the crontab using either the guide2conf utility or manually create the crontab by running the 'crontab -e -u xteve' command from a command prompt inside the container. You will need to add the zap2XML XMLTV file located in $XTEVE_CONF/data/< lineup_name >.xml to xTeVe->XMLTV once it has been generated on the first run.


guide2conf --username < username@domain.com > --password < password > --max-days < max_days[1-14] > --name < lineup_name >


Manual crontab configuration:

# Run zap2it crontab daily at 1:15 AM EST

15 1 * * * /home/xteve/bin/zap2xml.pl -u username@domain.com -p ******** -U -c $XTEVE_CACHE/zap2xml/< lineup_name> -o $XTEVE_CONF/data/< lineup_name >.xml


NOTE: Support for the tvguide.com service is no longer available as the service was discontinued.


Enjoy!