TOP  

xTeVe Step-by-Step Guide

Welcome to the wonderful world of xTeVe! — an open-source and free M3U proxy server designed for Plex DVR and Emby Live TV services. 

In this tutorial, we’ll be diving into the nitty-gritty details of what xTeVe is, what you need to get started, and how to download and install it on various operating systems. We’ll walk you through the initial configuration and show you how to use the interface for ongoing configuration. 

So buckle up and get ready for a fun and informative ride!

xTeVe guide

Disclaimer: This material has been developed strictly for informational purposes. It does not constitute endorsement of any activities (including illegal activities), products or services. You are solely responsible for complying with the applicable laws, including intellectual property laws, when using our services or relying on any information herein. We do not accept any liability for damage arising from the use of our services or information contained herein in any manner whatsoever, except where explicitly required by law.

Table of Contents.

  1. What is xTeVe? 
  2. xTeVe: What do you need to get started? 
  3. Downloading and Installing xTeVe (Linux, Windows, and Docker).
  4. xTeVe initial configuration. 
  5. xTeVe’s ongoing configuration. 
  6. Final Words

1. What is xTeVe?

xTeVe is an M3U proxy server designed for Plex DVR and Emby Live TV services. It is free and open-source under the MIT license. It establishes communication between your IPTV service provider, Plex DVR, and Emby Live TV services. xTeve uses M3U (files or URLs) and XMLTV (files or URLs) to get playlists and guide information.

Let’s get technical:

M3U files contain a list of names, URLs, metadata, and file paths for the multimedia files that make up a multimedia playlist. Within the context of an IPTV, the M3U file can provide a list of channels and streams that can be accessed by an IPTV player or client application such as Plex or Emby. 

Although you could use a media player such as VLC, media player, or Kodi to play the media contained within the playlist, you would need an M3U proxy like xTeVe to allow access and stream live TV channels over the internet and build up entire channel guides. It also lets the client device play the IPTV channels without directly accessing the provider’s server. An advantage of using such an M3U proxy is that it allows access to IPTV channels anywhere in the world.

How does it work?

The M3U proxy reads the M3U playlist file and establishes a connection with the IPTV provider. It acts as the middleman between the IPTV provider and the client app, such as Plex or Emby. 

xTeVe diagram

The M3U proxy server takes the IPTV streams from the provider, repackages them into a compatible format, and then streams them to the client device.

2. xTeVe: What do you need to get started?

You’ll need a server to run xTeVe (compatible with Windows, Linux, and macOS). Additionally, you’ll also need an active account with an IPTV provider. This account should give you access to the TV channels that you want to watch. You will also need the IPTV playlist file, which you can get from the IPTV provider (or third-party providers). And last, remember that there is no built-in player, so you’ll need a separate media player such as Plex or Emby.

a. Server’s requirements.

xTeVe is only supported by 64-bit processors. It can be installed in Windows, OS X, Linux, and FreeBSD (64-bit Intel/AMD), and in Linux (64-Bit ARM). It is, recommended to install it in a Docker container (hosted by Linux 64-bit). Your server should also be running an updated version of Plex Media Server or Emby. Learn all about setting up Plex Media Server in our 2023 complete guide.

Plex Requirements. 

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

Emby Requirements.

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

b. Configuration Requirements.

As mentioned in the previous section, xTeVe uses M3U (files or URLs) and XMLTV (file or URL) to deliver the list of channels and streams to the IPTV player or client apps like Plex or Emby. It reads the M3U playlist and opens communication between the IPTV provider and the app. 

Therefore, to set xTeVe up, you would need access to the M3U and XMLTV data, which the IPTV provider usually delivers, but you can also find from third-party sources. 

Finding M3U playlists

The easiest way to find M3U playlists is by searching online through a search engine platform such as Google or Bing. You can get M3U files or URLs on websites or forums, but it is paramount not to use sites that may host malware or pirated media. In addition, if you are currently subscribed to a streaming service such as Spotify or Apple Music, you can generate a playlist and export it as an M3U file.

Getting an XMLTV file

When you enter an M3U playlist URL in xTeVe, the server reads the playlist file and extracts the channel information. However, the M3U playlist file typically only contains the channel names and the stream URLs for the channels. It has no additional TV listing information, such as channel logos, program guide information, or channel metadata. This is where the XMLTV file comes into play. By importing an XMLTV file, you can add program guide information and other metadata to the channels in your M3U playlist. 

To manage IPTV playlists and EPG (Electronic Program Guide) data (XEPG and PMS), you can use the Xtream Editor, a web-based platform that allows you to organize and customize your channel listings. 

xTeVe and Xtream Editor
Photo by Xtream Editor

In Xtream-Editor, you would need to create a template > then create a playlist > and then download the M3U file and EPG data (XMLTV). With this software, you can create playlists (along with their XMLTV data) and then copy them.

xTeVe and Xtream Editor
Photo by Xtream Editor

Note: The steps to fully manage IPTV playlists and EPG data are outside the scope of this tutorial.

3. Downloading and Installing xTeVe (Linux, Windows, and Docker)

In this section, we will guide you through the process of downloading and installing xTeVe. We’ll cover the installation process on three different platforms: Linux, Windows, and Docker (via Linux and Windows).

Disclaimer: The following guide to download and install xTeVe is for educational purposes. We at Rapidseebox do not offer it as part of our solution or provide any customer support for this software.

a. Installing xTeVe via a Docker Container (recommended). 

The following are the recommended Docker images for xTeVe (according to official sources) if you are running it from Docker containers. These Docker images are designed for Linux 64-bit operating systems. They are packaged with additional components such as Guide2go (an XMLTV grabber for Schedules Direct), owi2plex (an XMLTV file grabber for Enigma receivers), and Zap2XML (open-source a Perl-based zap2it XMLTV grabber).

The recommended Docker images are: 

How to Install the xTeVe Docker Container (Linux). 

  • First, ensure you are running an updated version of Docker, then issue the “pull” command. We will be running xTeVe on Docker with cron.  
Installing xTeVe
  • To run the Docker container from the image, issue the following command. This command will start the Docker container running the xTeVe application (in detached mode -d, which means it is running in the background). 

Note: This is an example provided by (https://hub.docker.com/r/alturismo/xteve. You will need to change your TimeZone and mount volumes. For example, we changed the time zone and the mount volumes in the below configuration lines. 

Installing xTeVe
  • To check the status of the container, use the following command: 
Installing xTeVe
  • Use the following command to run the xTeVe container’s cronjob script. The ./config/cronjob.sh argument specifies the path to the cronjob script inside the container. This script is used to update the EPG data and other scheduled tasks.
Installing xTeVe
  • After running the xTeVe Docker container and checking its status, you can now access the xTeVe GUI by opening your web browser and going to http://localhost:34400/web. This can vary if you change the port or access the xTeVe server from a remote machine. 

Alternative Installation (Docker on Windows). 

For Windows, you can use a Docker container manager such as Docker Desktop

  • We downloaded the xTeVe Guide2Go image from the Docker Hub and created the container. The xTeVe + Guide2Go container is now running. 
Installing xTeVe Containers
Photo by Docker Desktop
  • If you installed the container, you’d use the http://localhost:34400/web/ URL address to access the GUI console. Or, you may have to change the local host if you are accessing xTeVe from a remote machine.  

b. Installing xTeVe directly on a Linux machine.

Installing xTeVe on Linux
Photo by Github.com
  • Open your Linux (Ubuntu) terminal and use the “wget” command to download the latest xTeVe package. 
  • For example:
Installing xTeVe on Linux
  • Now, extract the new xTeVe package. You can create a new directory to save all extracted folders. 
  • We will create a directory named “bin” in the home directory “~/” and we will extract all the contents of the new file “xteve_linux_amd64.zip” into this “bin” directory.
Installing xTeVe on Linux
  • We are now ready to use the xTeVe binary to run the xTeVe application. Go to the directory where you have extracted the xteve_linux_amd64.zip archive, set the correct permissions, and run the binary.
Installing xTeVe on Linux
  • Running the binary will run the xTeVe application. The path “/home/ubuntu/bin/xteve” (or ./xteve) is the path to the xTeVe executable we’re currently running. 
  • xTeVe is now ready to start serving your configured IPTV channels. To stop the xTeVe application from running, press Ctrl + C where xTeVe is running.

Configuring xTeVe

Now, you can launch xTeVe and generate the configuration file. You must rerun the xTeVe binary with the –configure option. If you have already extracted the xteve_linux_amd64.zip archive to the /home/ubuntu/bin/ directory (as we did previously), you can now follow these steps:

  • From the output (./xteve), you’ll see various xTeVe parameters. This output is quite helpful information that can help you configure xTeVe. Below is a summary of the relevant parameters.
Installing xTeVe on Linux
  • Tuner (Plex / Emby): This line shows the number of tuner devices available for Plex or Emby. In our case, it is only one (1).
  • EPG Source: This line indicates that the EPG (Electronic Program Guide) source for xTeVe is PMS (Plex Media Server).
  • Plex Channel Limit: Specifies the maximum number of channels that xTeVe can provide to Plex Media Server, which is set to 480 (by default).
  • Unfiltered Chan. Limit: This line specifies the maximum number of unfiltered channels that xTeVe can provide, which is also set to 480 (by default).
  • All streams: This shows that no streams (0) are playing in xTeVe.
  • Active streams: According to this line, there are currently no active (0) streams in xTeVe.
  • Filter: This line indicates that there are no filters (0) set in xTeVe.
  • DVR IP: This line specifies the IP address and port number of the DVR (Digital Video Recorder) that xTeVe is connected to. In our case, it is 172.31.83.239:8080.
  • Web Interface: This line specifies the URL for the xTeVe web interface, which is accessible through the specified IP address and port number and three other IP addresses.

Now, let’s configure xTeVe: 

Installing xTeVe on Linux
  • xTeVe will allow you to modify the parameters; as an example, in the following section, we will change the xTeVe port.
  • The above command (/home/ubuntu/bin/xteve -config) will launch xTeVe in configuration mode. It will generate a configuration file name xteve.json in the same directory as the xteve binary. 
Installing xTeVe on Linux
  • By default, xTeVe runs on port 34400, but we can specify a different port using the “-port” flag.
  • As an example, the following command launches xTeVe on port 8080. 
Installing xTeVe on Linux
  • By default, you can access the xTeVe web interface by opening a web browser and navigating to http://localhost:34400/web/ (or any other port if you changed it, such as in the previous example localhost:8080/web). If you are running xTeVe on a remote server, replace localhost with the IP address or hostname of the server.
  • To stop xTeVe, press Ctrl + C in the terminal window where xTeVe is running.

Note: if you have configured xTeVe to run as a daemon or service, you can start and stop it using the appropriate commands for your system.

c. Downloading and installing xTeVe on a Windows machine.

Downloading and running xTeVe on Windows is as simple as going to the official download link, downloading the zip file, uncompressing it, and running the .exe file with admin permissions. 

Downloading xTeVe on Windows
Photo by Github.com
  • Download the Windows (xteve_windows_amd64.zip) file, double-click it, and allow access to the Windows Firewall. Create a new folder, “xTeVe” or whichever you prefer, and extract the zip file’s contents there. 
  • Don’t forget to run the .exe as an administrator!
Installing xTeVe on Linux
  • The xTeVe service will start and will run in the background. Once running, you can access it by going to the provided web interface (localhost:34400/web or IP_XteVe_server:Port/web).
Installing xTeVe on Linux

Install xTeVe as a Windows service.  

You may also want to install xTeVe as a Windows service to make it automatically start when your computer starts. It will run in the background and won’t interfere with other applications you use on your computer. Running as a Windows service will also guarantee that xTeVe is reliable and manageable. 

  • Start by downloading a service manager such as NSSM and extract the contents to a folder on your computer.
  • Open the Command Prompt as an administrator and navigate to the folder where you extracted NSSM.
  • Type the following command to launch the NSSM service installer: “nssm install Xteve”
  • Set the following options:
    • Path: Enter the full path to the xTeVe executable file, e.g. C:\PathToXteve\xteve.exe
    • Startup directory: Enter the path to the folder where xTeVe is installed, e.g. C:\PathToXteve
    • Arguments: Enter any additional arguments you want to pass to xTeVe, such as -config=C:\PathToXteve\Config or -port=”XXXX” (where XXXX is the desired port number).
  • Click the “Install service” button to install xTeVe as a Windows service.
  • To start the xTeVe service, type the following command “nssm start xteve”

4. xTeVe Initial Configuration.

Now that xTeVe is running on your server and you can successfully open it, you must configure it. When you start with xTeVe, you’ll be asked to set up a few vital settings. 

Note: If xTeVe’s Web Interface IP address keeps changing every time you open it, you would need to assign it a static IP address from your router. This is likely because a DHCP server (most likely your home router) keeps “dynamically” assigning new IP addresses every time you start the xTeVe service. 

Open xTeVe’s GUI using the “IP_address:port/web” or “localhost:port/web.” You’ll be welcomed by the installation wizard. 

xTeVe initial configuration
01 – Configuration xTeVe – Photo by xTeVe

a. Number of Tuners. 

  • Set the number of tuners. xTeVe’s installation wizard will ask you to set up the number of tuners. Tuners are the number of parallel connections that can be established to the IPTV provider. If your IPTV provider provides you with more than one simultaneous user that can be on the same account, you’ll need to define it here. The number of parallel connections established with the provider will depend on the provider’s policies and restrictions.
  • To know the number of tuners, you’ll need to find out how many streams the IPTV provider gives you. Currently, we only have one tuner available, meaning xTeVe can only stream one channel simultaneously.
xTeVe initial configuration
02 – Configuration xTeVe – Photo by xTeVe

b. Select the EPG Source for xTeVe. 

An Electronic Program Guide (EPG) source is a data feed with information about TV channels and their programming schedules. These EPG sources are built in a machine-readable format. They are usually used by TV listings services, media center software, and IPTV servers to display TV guide information to users.

With xTeVe, you can select two EPG formats:

  • PMS: Where Plex / Emby does the configuration of the EPG data
  • XEPG: The EPG data in xTeVe is available as an XMLTV file which needs to be specified as the source. Your IPTV provider should provide XMLTV links, but you can also use third-party providers like epg.best, xtream-editor, or the iptv-org/epg community.
xTeVe initial configuration
03 – Configuration xTeVe – Photo by xTeVe
  • Find an M3U Playlist file or URL. As mentioned in the previous section, you can find one M3U playlist with a quick online search (but keep in mind that you’ll also need to bring the XMLTV file). 
  • A good source for playlists is GitHub – iptv-org/iptv: A Collection of publicly available IPTV channels worldwide.
xTeVe initial configuration
04 – Configuration xTeVe – Photo by xTeVe
  • If you selected XEPG as the EPG source in the previous section, you must specify an XMLTV file, local or from a web server.
  • The xTeVe web user interface (PMS as EPG source) will open as follows:
xTeVe initial configuration
04 – Configuration xTeVe – Photo by xTeVe

5. xTeVe Ongoing Configuration.

xTeVe’g GUI is simple but quite functional. On the top, you’ll find vital information on your settings. As shown in the installation section via CLI, in the GUI, you can also see information like xTeVe version, OS, DVR IP, UUID,  Arch, M3U URL, Available Streams, EPG Source, XEPG URL, XEPG Channels, Errors, and Warnings. 

The xTeVe’s left-hand menu shows important features like Playlist, Filter, XMLTV, Mapping, Settings, and Log. 

a. Managing your Playlists.

The following is an xTeVe web user interface (XEPG as EPG source).

  • On the Playlist window, you can see the current M3U playlists and their information. In addition, you will also be able to create “New” playlists from here. 
xTeVe ongoing configuration
01 – Setup xTeVe – Photo by xTeVe
  • If you click “New” > Add the new M3U playlist information, including Name, Description, M3U file, and Tuner/Streams. 
xTeVe ongoing configuration
02 – Setup xTeVe – Photo by xTeVe

b. Checking Logs

Checking the logs from the start helps find any errors and warnings that resulted in your configurations. 

  • Go to the “Log” menu in the left-hand menu and read through the logs to find any red or yellow lines. For example, we have got one warning. 
  • WARNING >… [xTeVe] [WARNING] xTeVe has loaded more than 480 streams. Use the filter to reduce the number of streams. 
xTeVe ongoing configuration
03 – Setup xTeVe – Photo by xTeVe
  • So, now we will create a filter because Plex can’t have more than 480 channels. 

c. Creating Filters.

Filters in Xteve allow you to manage and organize your channels. With filters, you can customize your IPTV playlist to suit your preferences, remove unwanted channels, or improve performance (by reducing the amount of data that xTeVe has to process). 

Here’s how to create filters in Xteve:

  • Click on the “Filters” tab on the left-hand menu.
  • Click on the “New” button to create a new filter.
  • Select the type of filter (i.e. M3U Group Title).
xTeVe ongoing configuration
04 – Setup xTeVe – Photo by xTeVe
  • Name your filter and select the criteria you want to use to filter your channels. You can filter channels by name, category, country, language, etc.
  • Once you have selected your criteria, click the “Save” button to create your new filter.
  • Your new filter will now appear in the “Filters” tab. 
  • You can click on it to view the channels that meet the filter criteria.
xTeVe ongoing configuration
05 – Setup xTeVe – Photo by xTeVe

Note: Bear in mind that if you create filters in xTeVe, and add channels later, the established filters will affect the new data that comes into xTeVe. So, you might not be able to see available streams or channels if you have pre-established filters. 

d. xTeVe Mapping

In xTeVe GUI, mapping refers to the process of assigning a specific channel from your IPTV source to a specific channel number on your device or player.

  • Once you add playlists and EPG channels, you must map playlist channels (M3U data) to EPG channels (XMLTV data). 
  • You will notice that some channels have their logo included but still need to be mapped. 
xTeVe ongoing configuration
01 Mapping xTeVe – Photo by xTeVe
  • Double-click on a channel. Give the channel a name, find the logo URL (if there is one), and select the EPG category. Most importantly, select the correct XMLTV file and XMLTV channel. 
xTeVe ongoing configuration
02 Mapping xTeVe – Photo by xTeVe
  • xTeVe uses color labels. The channels in red are not mapped, while the green ones are ready. When you start mapping, look for the correct EPG ID and match it with the channel name. If there is an EPG ID, there is media content. 
  • Once you have mapped enough playlist channels to EPG channels, click Save. You will also notice that XEPG channels start to appear. 
xTeVe ongoing configuration
03 Mapping xTeVe – Photo by xTeVe

e. Configuring xTeVe with Plex Media Server.  

Your xTeVe server should be running an updated version of Plex Media Server (PMS). In addition, your Plex Clients should come with DVR support, and your account should also have the Plex Pass. Learn all about setting up Plex Media Server in our 2023 complete guide. 

  • Start by going to xTeVe and copying the DVR IP
xTeVe ongoing configuration
01 Plex and xTeVe – Photo by xTeVe
  • Go to Plex Media Server > Live TV. You will see the list of channels provided by Plex. 
xTeVe ongoing configuration
02 Plex and xTeVe – Photo by xTeVe
  • To illustrate how to add channels to PMS using xTeve, we will configure Plex’s Live TV and DVR settings. 
  • Go to Settings > Live TV & DVR > Click on “Set Up Plex DVR.” 
xTeVe ongoing configuration
03 Plex and xTeVe – Photo by xTeVe
  • Plex Media Server will start looking for HDHomRune-based tuners. Click on “Don’t see your HDHomeRun device? Enter its network address manually.”
xTeVe ongoing configuration
04 Plex and xTeVe – Photo by xTeVe
  • Enter the HDHomeRun device address (your xTeVe server IP) and click “Connect.”
  • Your Plex Media Server will find it and recognize it. It will also find the available channels. 
xTeVe ongoing configuration
05 Plex and xTeVe – Photo by xTeVe

Tuner Setup.

  • If you are in a location where Plex’s built-in DVR guide data is unavailable or does not include the channels you need, you can use an external XMLTV service to provide the guide data for your Plex DVR. Using an external XMLTV service, you can expand the number of channels available to you in your Plex DVR.
  • To use an XMLTV Guide, you must provide the language and the XMLTV guide link and give the guide a title. 
xTeVe ongoing configuration
06 Plex and xTeVe – Photo by xTeVe
  • Click “Continue” to start the channel scan. 
xTeVe ongoing configuration
07 Plex and xTeVe – Photo by xTeVe
  • Plex Media Server will start downloading EPG data. It will give you access to your guide and channels in the Live TV in the sidebar menu. 
xTeVe ongoing configuration
08 Plex and xTeVe – Photo by xTeVe
  • Click on “View Guide.” On this screen, you will see the available channels. 
xTeVe ongoing configuration
09 Plex and xTeVe – Photo by xTeVe
  • Go back to LiveTV, and you will find the channels from your channel playlist added in xTeVe. 
xTeVe ongoing configuration
010 Plex and xTeVe – Photo by xTeVe

Note: If you cannot play the content, check the antenna or cable settings on Plex. In addition, you might also need to try changing the country along with the zip code (if you are using a third-party-provided XMLTV file). 

6. Final Words.

And that’s a wrap, folks! We hope you found this tutorial helpful and informative. With xTeVe, you now have the power to organize and streamline your streaming channels like never before. Remember, this is just the tip of the iceberg regarding what xTeVe can do.

Experiment with the interface and get creative with your channel mappings to truly make it your own. Happy streaming!

About author Diego Asturias

Avatar for Diego Asturias

Diego Asturias is a tech journalist who translates complex tech jargon into engaging content. He has a degree in Internetworking Tech from Washington DC, US, and tech certifications from Cisco, McAfee, and Wireshark. He has hands-on experience working in Latin America, South Korea, and West Africa. He has been featured in SiliconANGLE Media, Cloudbric, Pcwdld, Hackernoon, ITT Systems, SecurityGladiators, Rapidseedbox, and more.