Convert Figma logo to code with AI

xteve-project logoxTeVe

M3U Proxy for Plex DVR and Emby Live TV

1,821
234
1,821
199

Top Related Projects

Tvheadend is the leading TV streaming server for Linux with ATSC, DVB-C/C2, DVB-S/S2, DVB-T/T2, IPTV, SAT>IP and unix pipe input sources

34,085

The Free Software Media System

1,194

UPnP Media Server for 2024: Stream your digital media through your home network and consume it on all kinds of UPnP supporting devices 📱💻📺

Quick Overview

xTeVe is an M3U proxy server for Plex DVR and Emby Live TV. It acts as a bridge between IPTV services and media servers, allowing users to integrate their IPTV channels into Plex or Emby as if they were traditional TV tuners.

Pros

  • Supports multiple IPTV providers and formats (M3U, XMLTV)
  • Easy integration with Plex and Emby
  • Web-based user interface for configuration and management
  • Active development and community support

Cons

  • Requires some technical knowledge to set up and configure
  • May require additional hardware resources depending on the number of streams
  • Limited documentation for advanced features
  • Potential legal concerns depending on the source of IPTV streams

Getting Started

  1. Download the latest release for your operating system from the GitHub releases page.

  2. Extract the downloaded archive and run the xTeVe executable:

./xteve
  1. Access the web interface at http://localhost:34400 to configure your IPTV sources and settings.

  2. In Plex or Emby, add a new TV tuner using the xTeVe URL (e.g., http://localhost:34400/xmltv/xteve.xml for EPG and http://localhost:34400/m3u/xteve.m3u for channels).

  3. Scan for channels in your media server and enjoy your IPTV content.

For more detailed instructions and advanced configuration options, refer to the xTeVe wiki.

Competitor Comparisons

Tvheadend is the leading TV streaming server for Linux with ATSC, DVB-C/C2, DVB-S/S2, DVB-T/T2, IPTV, SAT>IP and unix pipe input sources

Pros of tvheadend

  • More comprehensive TV management system with recording capabilities
  • Supports a wider range of TV tuners and input sources
  • Has a built-in Electronic Program Guide (EPG) grabber

Cons of tvheadend

  • More complex setup and configuration process
  • Heavier resource usage due to its extensive feature set
  • Less focused on IPTV streaming compared to xTeVe

Code Comparison

tvheadend (C):

static void http_stream_run(http_connection_t *hc, profile_chain_t *prch,
                            const char *name, const char *info)
{
  streaming_queue_t sq;
  th_subscription_t *s;
  streaming_target_t *st;
  int error;

xTeVe (Go):

func (config *Config) LoadConfig() (err error) {
    var configFile = config.GetConfigPath()
    jsonString, err := ioutil.ReadFile(configFile)
    if err != nil {
        return
    }

tvheadend is written in C and offers lower-level control over TV streaming and management, while xTeVe is written in Go and focuses on providing a simpler IPTV proxy solution. tvheadend's code snippet shows its streaming functionality, whereas xTeVe's code demonstrates configuration loading, highlighting their different primary focuses.

34,085

The Free Software Media System

Pros of Jellyfin

  • Full-featured media server with a rich user interface
  • Supports a wide range of media types and formats
  • Active development with frequent updates and improvements

Cons of Jellyfin

  • More resource-intensive due to its comprehensive feature set
  • Steeper learning curve for setup and configuration
  • May be overkill for users only needing IPTV functionality

Code Comparison

xTeVe (Go):

func (config *Config) getIPTVConfig() *IPTVConfig {
    return &config.Files.IPTV
}

Jellyfin (C#):

public class MediaSourceInfo
{
    public string Path { get; set; }
    public string Protocol { get; set; }
    public MediaProtocol MediaProtocol { get; set; }
}

Key Differences

  • xTeVe focuses specifically on IPTV and DVR functionality, while Jellyfin is a comprehensive media server solution
  • xTeVe is written in Go, whereas Jellyfin is primarily developed in C#
  • Jellyfin offers a more polished user interface and broader device support
  • xTeVe is more lightweight and easier to set up for basic IPTV needs

Use Cases

  • Choose xTeVe for a lightweight, IPTV-focused solution with lower resource requirements
  • Opt for Jellyfin when seeking a full-featured media server with extensive format support and a rich user experience
1,194

UPnP Media Server for 2024: Stream your digital media through your home network and consume it on all kinds of UPnP supporting devices 📱💻📺

Pros of Gerbera

  • More comprehensive media server solution, supporting UPnP/DLNA protocols
  • Actively maintained with regular updates and a larger community
  • Supports a wider range of media types and transcoding options

Cons of Gerbera

  • More complex setup and configuration process
  • Higher system resource requirements due to its broader feature set
  • Less focused on IPTV and live TV streaming compared to xTeVe

Code Comparison

xTeVe (Go):

func (config *Config) GetMappings() []Mapping {
    return config.Mapping
}

Gerbera (C++):

std::shared_ptr<CdsObject> CdsResourceManager::createObject(const std::string& objectType)
{
    return std::make_shared<CdsObject>(objectType);
}

Summary

Gerbera is a more comprehensive media server solution with broader support for various media types and protocols, while xTeVe focuses primarily on IPTV and live TV streaming. Gerbera offers more features but requires more setup and resources, whereas xTeVe is simpler and more specialized for its specific use case. The code comparison shows the different languages used (Go for xTeVe, C++ for Gerbera) and hints at their architectural differences.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

xTeVe

xTeVe

M3U Proxy for Plex DVR and Emby Live TV.

Documentation for setup and configuration is here.

Donation

  • Bitcoin: 1c1iCe4CJPfNUXtqxKBbW2Qd2EtqRPWme
    Bitcoin

Requirements

Plex

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

Emby

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

Features

Files

  • 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

Streaming

  • 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
xTeVe / Guide2go
xTeVe / Guide2go / owi2plex

Including:

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

Created by LeeD:
xTeVe / Guide2go / Zap2XML

Including:

  • 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:                https://github.com/xteve-project
[xTeVe] Git Branch:            beta [xteve-project]
...

Switch from beta to master branch:

xteve -branch master

...
[xTeVe] GitHub:                https://github.com/xteve-project
[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]

Requirements

  • Go (go1.16.2 or newer)

Dependencies

Build

  1. Download source code
  2. Install dependencies
go get github.com/koron/go-ssdp
go get github.com/gorilla/websocket
go get github.com/kardianos/osext
  1. Build xTeVe
go build xteve.go

Fork without pull request :mega:

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. :wink:

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]
*/