Skip to content
M3U Proxy for Plex DVR and Emby Live TV
Go JavaScript TypeScript CSS Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Aug 3, 2019
html Add mapping desc. function Dec 13, 2019
src Fixed broken merge Dec 14, 2019
ts Add mapping desc. function Dec 13, 2019
.gitignore update Aug 23, 2019
LICENSE v2.0.0.0000 Aug 2, 2019 v2.0.0.0000 Aug 2, 2019 Small spelling / grammar fixes. Nov 5, 2019 Update 2020-01-13 Jan 13, 2020
xteve.go Fixed broken merge Dec 14, 2019



M3U Proxy for Plex DVR and Emby Live TV.

Documentation for setup and configuration is here.


  • Bitcoin: 1c1iCe4CJPfNUXtqxKBbW2Qd2EtqRPWme



  • Plex Media Server ( or newer)
  • Plex Client with DVR support
  • Plex Pass


  • Emby Server ( or newer)
  • Emby Client with Live-TV support
  • Emby Premiere



  • Merge external M3U files
  • Merge external XMLTV files
  • Automatic M3U and XMLTV update
  • M3U and XMLTV export

Channel management

  • Filtering streams
  • Channel mapping
  • Channel order
  • Channel logos
  • Channel categories


  • Buffer with HLS / M3U8 support
  • Re-streaming
  • Number of tuners adjustable
  • Compatible with Plex / Emby EPG

Downloads v2 | 64 Bit only

64 Bit Intel / AMD

64 Bit ARM

Recommended Docker Image (Linux 64 Bit)

Thanks to @alturismo and @LeeD for creating the Docker Images.

Created by alturismo:
xTeVe / Guide2go
xTeVe / Guide2go / owi2plex


  • Guide2go: XMLTV grabber for Schedules Direct
  • owi2plex: XMLTV file grabber for Enigma receivers

Created by LeeD:
xTeVe / Guide2go / Zap2XML


  • Guide2go: XMLTV grabber for Schedules Direct
  • Zap2XML: Perl based zap2it XMLTV grabber
  • Bash: A Unix / Linux shell
  • Crond: Daemon to execute scheduled commands
  • Perl: Programming language

xTeVe Beta branch

New features and bug fixes are only available in beta branch. Only after successful testing are they are merged into the master branch.

It is not recommended to use the beta version in a production system.

With the command line argument branch the Git Branch can be changed. xTeVe must be started via the terminal.

Switch from master to beta branch:

xteve -branch beta

[xTeVe] GitHub:      
[xTeVe] Git Branch:            beta [xteve-project]

Switch from beta to master branch:

xteve -branch master

[xTeVe] GitHub:      
[xTeVe] Git Branch:            master [xteve-project]

When the branch is changed, an update is only performed if there is a new version and the update function is activated in the settings.

Build from source code [Go / Golang]


  • Go (go1.12.4 or newer)



  1. Download source code
  2. Install dependencies
go get
go get
go get
  1. Build xTeVe
go build xteve.go

Fork without pull request 📣

When creating a fork, the xTeVe GitHub account must be changed from the source code or the update function disabled. Future updates of the xteve-project would update your fork. 😉

xteve.go - Line: 29

var GitHub = GitHubStruct{Branch: "master", User: "xteve-project", Repo: "xTeVe-Downloads", Update: true}

  Branch: GitHub Branch
  User:   GitHub Username
  Repo:   GitHub Repository
  Update: Automatic updates from the GitHub repository [true|false]
You can’t perform that action at this time.