SkillAgentSearch skills...

Tvapp2

Automatic M3U playlist and XML guide updater for IPTV clients.

Install / Use

/learn @TheBinaryNinja/Tvapp2

README

<div align="center"> <h6>A self-hosted docker container which allows you to retrieve M3U playlists and EPG guide data from numerous online IPTV services.</h6> <h1>♾️ TVApp2 ♾️</h1> </div> <br /> <div align="center"> <img src="docs/img/screenshots/01.gif" height="450"> <br /> <br /> <!-- prettier-ignore-start -->

[![Version][github-version-img]][github-version-uri] [![Downloads][github-downloads-img]][github-downloads-uri] [![Size][github-size-img]][github-size-img] [![Last Commit][github-commit-img]][github-commit-img] ![Contributors][contribs-all-img]

<!-- prettier-ignore-end --> <br /> <div align="center">

ViewView

</div> </div> <br />
<br /> <br />
<br />

About

TVApp2 is a docker image which allows you to download M3U playlist and EPG guide data which can be plugged into your IPTV applications such as Jellyfin, Plex, and Emby. It is a revision of the original app by dtankdempse which is no longer available. This app fetches data for:

  • TheTvApp
  • TVPass
  • MoveOnJoy
  • <sub>More coming soon</sub>
<br />

This project contains several repositories which all share the same code; use them as backups:

<br /> <br />

Quick Install

To install TVApp2 in docker; you will need to use either the 🗔 docker run command, or create a 📄 docker-compose.yml file which contains information about how to pull and start up.

<br />

Type out your 🗔 docker run command, or prepare a 📄 docker-compose.yml script. Examples are provided below. We have also provided charts with a list of the registries you can pull the image from, and a list of all the available environment variables you can use.

<br />

Pick one registry URL from the list Registry URLs and put it in your 🗔 docker run command, or in your 📄 docker-compose.yml.

For the environment variables, you may specify these in your 🗔 docker run command or 📄 docker-compose.yml file. See the examples below.

<br />

Registry URLs

| Pull URL | Registry | Architecture | Version | | --- | --- | --- | --- | | ghcr.io/thebinaryninja/tvapp2:latest<br />ghcr.io/thebinaryninja/tvapp2:development | Github | amd64 / arm64 | [![Github - Version][github-docker-version-img]][github-docker-version-uri] | | thebinaryninja/tvapp2:latest<br />thebinaryninja/tvapp2:development | Dockerhub | amd64 / arm64 | [![Github - Version][dockerhub-docker-version-img]][dockerhub-docker-version-uri] | | git.binaryninja.net/binaryninja/tvapp2:latest<br />git.binaryninja.net/binaryninja/tvapp2:development | Gitea | amd64 / arm64 | [![Gitea - Version][gitea-docker-version-img]][gitea-docker-version-uri] |

<br /> <br />

Environment Variables

The following is a list of environment variables you can declare within your docker-compose.yml or docker run command:

<br />

[!CAUTION]
Do not add " quotation marks to environment variables.

✔️ Correct

environment:
   - TASK_CRON_SYNC=*/60 * * * *

❌ Incorrect

environment:
   - TASK_CRON_SYNC="*/60 * * * *"
<br />

| Env Var | Default | Description | | --- | --- | --- | | TZ | Etc/UTC | Timezone for error / log reporting | | WEB_IP | 0.0.0.0 | IP to use for webserver | | WEB_PORT | 4124 | Port to use for webserver | | WEB_FOLDER | www | Internal container folder to keep TVApp2 web files in. <br /><br /> <sup>⚠️ This should not be used unless you know what you're doing</sup> | | WEB_ENCODING | deflate, br | Defines the HTTP Accept-Encoding request and response header. This value specifies what content encoding the sender can understand<br /><br />Gzip compression can be enabled by specifying 'gzip, deflate, br', however, it may break Jellyfin users. | | WEB_PROXY_HEADER | x-forwarded-for | Defines the header to look for when finding a client's IP address. Used to get a client's IP when behind a reverse proxy or Cloudflare | | HDHR_PORT | 6077 | HDHomeRun server default listening port | | URL_REPO | https://git.binaryninja.net/BinaryNinja/ | Determines where the data files will be downloaded from. Do not change this or you will be unable to get M3U and EPG data. | | FILE_URL | urls.txt | Filename for urls.txt cache file | | FILE_M3U | playlist.m3u8 | Filename for M3U playlist file | | FILE_EPG | xmltv.xml | Filename for XML guide data file | | FILE_GZP | xmltv.xml.gz | Filename for XML compressed as gzip .gz | | STREAM_QUALITY | hd | Stream quality<br />Can be either hd or sd | | TASK_CRON_SYNC | 0 0 */3 * * | Defines how often to refresh the M3U and XML IPTV data | | HEALTH_TIMER | 600000 | How often (in milliseconds) to run a health check | | DIR_BUILD | /usr/src/app | Path inside container where TVApp2 will be built. <br /><br /> <sup>⚠️ This should not be used unless you know what you're doing</sup> | | DIR_RUN | /usr/bin/app | Path inside container where TVApp2 will be placed after it is built <br /><br /> <sup>⚠️ This should not be used unless you know what you're doing</sup> | | LOG_LEVEL | 4 | Level of logging to display in console<br/>7 Trace <sup><sub>& below</sub></sup><br />6 Verbose <sup><sub>& below</sub></sup><br />5 Debug <sup><sub>& below</sub></sup><br />4 Info <sup><sub>& below</sub></sup><br />3 Notice <sup><sub>& below</sub></sup><br />2 Warn <sup><sub>& below</sub></sup><br />1 Error <sup><sub>only</sub></sup> |

<br /> <br />

Mountable Volumes

These paths can be mounted and shared between the TVApp2 docker container and your host machine:

| Container Path | Description | | --- | --- | | 📁 /usr/bin/app | <sub>Path where TVApp2 files will be placed once the app has been built. Includes 📄 formatted.dat, 📄 xmltv.1.xml, 📄 urls.txt, 📁 node_modules,

Related Skills

View on GitHub
GitHub Stars169
CategoryDevelopment
Updated1h ago
Forks19

Languages

JavaScript

Security Score

100/100

Audited on Apr 1, 2026

No findings