Sign inSign up

prengineer/xteve-playlist-splitter

By prengineer

Updated 8 months ago

A container that splits IPTV M3U playlists for use with xTeVe and Threadfin.

Image
Developer tools
0

1.5K

prengineer/xteve-playlist-splitter repository overview

image

Please Support This Project!

This project is being developed during my spare time. I would appreciate a donation if you found it useful.

You can also support me by sending a BitCoin donation to the following address:

19JXFGfRUV4NedS5tBGfJhkfRrN2EQtxVo


Supported Architectures

ArchitectureAKA
amd64x64
armlinux/arm/v7 (32 bit)
arm64linux/arm/v8 (aarch64)

About

xTeVe Playlist Splitter - This is an image that runs a script to split an IPTV M3U file into chunks of 480 to satisfy the xTeVe channel limit.

xTeVe refuses to serve more than 480 channels in each instance. If you need to serve more channels to Plex/Jellyfin/Emby, you need to create multiple instances of xTeVe. Breaking your M3U list into chunks that can be managed by separate xTeVe instances makes setup a lot easier.

Most IPTV providers provide a URL to:

  1. Their channel list, returned from an API as a JSON collection.
  2. Their Playlist M3U file, in the usual EXTINF format.
  3. Their XMLTV EPG guide.

This container does the following:

  1. Grabs the channel list to identify the channels and their numbers.
  2. Grab the M3U playlist.
  3. Make sure that the M3U playlist has the "tvg-chno" property with the right channel number from their list. That way, xTeVe and Plex/Jellyfin/Emby can auto map the channel numbers properly. (Only works if you are using an old version of xTeVe. V 2.0+ does not work, it has to be manually mapped.)
  4. Sorts the channel playlist by channel number.
  5. Splits the M3U Playlist into chunked lists with a maximum of 480 channels each.
  6. Split any TV Shows or Movies in the playlist to separate playlists.
  7. Leaves a full playlist with all channel numbers and ordered in the directory, if needed.

The container will share the files from the /data directory in case you need to access them from another application.

Just point to http://<containerip>:8080

If using a NAS, you can map port 8080 in the container to another port in the NAS and access it like this: http://<NASIP>:<mapped port>

Environment Variables

VariableValuesDescription
LISThttps://example.com/api/channelsA URL to the IPTV provider's API listing the channels and channel numbers.
PLAYLISThttps://example.com/playlist.m3uA URL to the IPTV provider's M3U playlist file.
SCHEDULE[ once ]Run only once.
SCHEDULE[ 0 3 1 * * ]A cron schedule in which to run the script.

Volumes

The container expects a volume to store the files that it will create to be mounted to the /data directory.

If your channels change often, for some reason, then pass this directory also to xTeVe to use.

How to use

  1. Assign the appropriate environment variable values.
  2. Assign the directory to mount as the /data directory.
  3. Run the container.

The container will log its results to the console and the files that you need will be in the folder mapped to the /data directory.

Tag summary

Content type

Image

Digest

sha256:e397bb9d1

Size

48.4 MB

Last updated

8 months ago

docker pull prengineer/xteve-playlist-splitter