# xTeVe: an M3U proxy that needs Plex Pass or Emby Premiere before it does anything

> xTeVe is a Go program that merges M3U and XMLTV files and presents them to Plex DVR or Emby Live TV as a tuner. The paid server tiers it requires, a release list that stops in 2021 and a self-updater pointed at another repository are the three things to check first.

**xteve-project/xTeVe** — M3U Proxy for Plex DVR and Emby Live TV

- Repository: https://github.com/xteve-project/xTeVe
- Stars: 2,279 · Forks: 253
- Language: Go
- License: MIT
- Published: 2026-10-14 · Updated: 2026-10-30 · Language: en
- Canonical page: https://hysenlabs.com/projects/xteve-project-xteve

## Plex Pass and Emby Premiere are hard requirements, not extras

xTeVe presents itself to a media server as a tuner, so the server has to support live TV and DVR before xTeVe has anything to attach to. For Plex the requirements are Plex Media Server 1.11.1.4730 or newer, a Plex client with DVR support, and Plex Pass. For Emby they are Emby Server 3.5.3.0 or newer, an Emby client with Live-TV support, and Emby Premiere.

Those are the version floors stated for the two servers, and both paths include a paid subscription. A household on free Plex or free Emby cannot use xTeVe for its intended job, and nothing else in the project works around that. The program is MIT licensed, so xTeVe itself costs nothing, but the question of whether xTeVe is free to use has a second half: the server in front of it is not. Jellyfin appears in no requirement list, so a Jellyfin owner finds no support statement either way.

## Merging M3U and XMLTV files, then filtering what survives

The file features are narrow and concrete. xTeVe merges external M3U files, merges external XMLTV files, updates both automatically, and exports both again. That makes it a combiner: several playlist sources go in, one playlist and one guide come out toward the media server.

On top of that sits channel management. The feature list names filtering streams, channel mapping, channel order, channel logos and channel categories. Mapping is the step that ties a stream in a playlist to a guide entry, and ordering decides how the lineup appears in the server. The README is a list of nouns here and does not walk through any of them, so the real workflow lives in the separate xTeVe-Documentation repository, whose configuration.md the README links as the place for setup and configuration. Anyone who wants to know what a filter expression looks like has to read that page, not this one.

The export side is worth a note for people who run more than one server. Because M3U and XMLTV can be exported again, the merged result is not locked inside the program. The README does not say whether the export reflects the filters and mapping applied in xTeVe, so check that against the linked configuration page before relying on it for a second player.

## Re-streaming through a buffer, with HLS and M3U8 support

Three streaming features are listed: a buffer with HLS and M3U8 support, re-streaming, and an adjustable number of tuners. Compatibility with the Plex and Emby EPG is listed beside them.

The tuner count matters because a Plex or Emby server counts tuners to decide how many channels can be watched or recorded at once, and xTeVe lets that number be set. The README gives no default, no ceiling and no guidance on how many simultaneous streams a given provider allows. Re-streaming means the media server pulls video from xTeVe, not from the provider directly, so xTeVe sits in the data path of every stream. The README makes no claim about CPU use, memory or throughput through that buffer. Anyone planning many simultaneous channels on a small machine has to measure it, because the repository supplies no figures to plan from.

## Zip archives from a separate downloads repository, 64 bit only

Downloads for version 2 are marked 64 Bit only. Intel and AMD builds exist as zip files for Windows, OS X, Linux and FreeBSD, and a single ARM build exists for Linux 64 Bit. All of them are linked from the xTeVe-Downloads repository, not from a GitHub release attached to this one. A 32 bit machine, including older ARM boards, has no listed build, and ARM on Windows, OS X or FreeBSD is not offered either.

For Docker, the README recommends images by two contributors. alturismo publishes xTeVe, xTeVe / Guide2go and xTeVe / Guide2go / owi2plex on Docker Hub. Guide2go is an XMLTV grabber for Schedules Direct and owi2plex is an XMLTV file grabber for Enigma receivers. LeeD publishes dnsforge/xteve, which adds Guide2go, Zap2XML, Bash, Crond and Perl. Those images are third party work, and the xTeVe README only recommends them. Both are described for Linux 64 Bit, which matches the single Linux amd64 zip and leaves Windows users on the plain archive. Which image to pick depends on the guide source you use: Schedules Direct, an Enigma receiver, or zap2it.

## The beta branch gets features first and is not meant for production

New features and bug fixes land in a beta branch and are merged into master only after successful testing. The README says plainly that using the beta version in a production system is not recommended.

Switching happens through the branch command line argument, which means xTeVe has to be started from a terminal. The two commands are:

```
xteve -branch beta
xteve -branch master
```

The startup output then prints a Git Branch line showing beta [xteve-project] or master [xteve-project]. Changing branch does not by itself replace the binary. An update is performed only when a new version exists and the update function is switched on in the settings. A user who flips to beta with updates disabled stays on the old build and simply sees a different branch label. The repository root also holds changelog-beta.md, which is where beta changes are recorded.

## Building with go build xteve.go, and a self-updater aimed at another repository

Building from source needs Go 1.16.2 or newer according to the README, and go.mod declares go 1.16. Three dependencies are listed: go-ssdp from koron, websocket from gorilla, and osext from kardianos. The README's steps are to download the source, fetch the dependencies, then build:

```
go get github.com/koron/go-ssdp
go get github.com/gorilla/websocket
go get github.com/kardianos/osext
```

```
go build xteve.go
```

The go.mod file pins gorilla/websocket v1.4.2, kardianos/osext at a 2019 commit, and koron/go-ssdp v0.0.2, each marked indirect. Forks carry a trap. Line 29 of xteve.go sets a GitHubStruct with Branch master, User xteve-project, Repo xTeVe-Downloads and Update true. The README warns that future updates from xteve-project would overwrite your fork, so a fork must change the account or set Update to false.

## Last tagged release is 2.2.0.200 from March 2021, with pushes since

The three releases on record are 2.2.0.200 on 29 March 2021, 2.1.2.0120 on 15 February 2020 and 2.1.1.0111 on 13 December 2019. Nothing newer carries a release tag. The default branch received a push on 24 August 2026, and the repository is not archived, so work continues on the branch even though no release followed 2.2.0.200.

That gap changes how to read the README. The version floors, the Go 1.16.2 requirement and the donation address for Bitcoin all come from a document last tagged in 2021. Anyone who searches for xTeVe next to Threadfin or Dispatcharr is looking at the same question: whether to stay on a tool whose tagged releases stopped. The README makes no comparison with either product, so the reasons to switch or stay have to come from elsewhere. The root also contains README-DEV.md, which is the document for people working on the code.

## Conclusion

Use xTeVe if you already pay for Plex Pass or Emby Premiere, hold M3U and XMLTV sources of your own, and want one place to filter, map and order channels. Skip it if you run neither server or expect a tagged release newer than 2.2.0.200 from March 2021. Before installing, read the setup guide in the xTeVe-Documentation repository, then decide whether you accept a binary that fetches updates from xTeVe-Downloads on its own.

## FAQ

### Is Threadfin better than xTeVe?

The xTeVe README makes no comparison with Threadfin. It states that the last tagged release is 2.2.0.200 from March 2021 and that the default branch was pushed to on 24 August 2026.

### How to use xTeVe with Plex?

Plex needs Media Server 1.11.1.4730 or newer, a client with DVR support and Plex Pass. The setup steps live in the configuration.md page of the xTeVe-Documentation repository that the README links.

### Is xTeVe free to use?

xTeVe is MIT licensed. The Plex path requires Plex Pass and the Emby path requires Emby Premiere, so the media server side is a paid requirement.

### Can I add IPTV to Plex?

xTeVe is described as an M3U proxy for Plex DVR and Emby Live TV, and it merges external M3U and XMLTV files. The README does not use the word IPTV, so provider details come from the linked documentation.

## Sources

- [Issues](https://github.com/xteve-project/xTeVe/issues)
- [License: MIT](https://github.com/xteve-project/xTeVe/blob/master/LICENSE)
- [README](https://github.com/xteve-project/xTeVe/blob/master/README.md)
- [Releases](https://github.com/xteve-project/xTeVe/releases)
- [xteve-project/xTeVe on GitHub](https://github.com/xteve-project/xTeVe)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/xteve-project-xteve
