Sign inSign up

a13labs/m3uproxy

By a13labs

•Updated about 1 year ago

A Go-based HTTP server designed to proxy HLS (HTTP Live Streaming) streams.

Image
Networking
Web servers
0

5.7K

a13labs/m3uproxy repository overview

⁠m3uproxy

m3uproxy is a Go-based HTTP server designed to proxy HLS (HTTP Live Streaming) streams. It provides a convenient way to manage and distribute streaming streams with user management and access control features.

⁠Features

  • M3U Playlist Generation: Serve dynamically generated M3U playlists for your streams.
  • XMLTV EPG Support: Provide an XMLTV formatted Electronic Program Guide (EPG) for supported streams.
  • HLS Stream Proxying: Securely proxy HLS streams via a token-based system.
  • User Management: Control access to the M3U playlist and streaming streams.
  • Fallback Message: Serve a "stream unavailable" message when necessary.

⁠Endpoints

⁠/streams.m3u (Restricted)
  • Description: Returns the M3U playlist with all available streams.
  • Access: Restricted to authenticated users.
  • Usage: This endpoint should be accessed only after proper authentication. It provides a list of streams in the M3U format.
⁠/epg.xml
  • Description: Returns the Electronic Program Guide (EPG) in XMLTV format.
  • Access: Public.
  • Usage: Useful for clients that support EPGs to fetch the program guide associated with the streams.
⁠/m3uproxy/proxy/{token}/{streamId}/*
  • Description: Proxies the HLS stream for the specified stream.
  • Access: Token-based access control.
  • Parameters:
    • token: A unique token to authenticate the request.
    • streamId: The identifier of the stream.
  • Usage: Used by clients to access the actual HLS stream. Replace {token} and {streamId} with valid values.
⁠/m3uproxy/streams/*
  • Description: Streams a "stream unavailable" message. (FFMPEG > 5.0 must be installed)
  • Access: Internal use only.
  • Usage: Automatically redirected when a stream is unavailable or an error occurs.

⁠Environment variables

  • M3UFILE: original m3u stream list (local or http) (default: "/config/playlist.m3u")
  • EPGFILE: epg file location (local or http) (default: "/config/epg.xml")
  • USERSFILE: users file (local or http) (default: "/config/users.json")
  • NOSERVICEFILE: file used for no service image (local) (default: "/app/assets/no_service_pt.jpg")
  • SCANTIME: schedule for scanning for streams availability (default: "600")
  • USERNAME: default user (default: "admin")
  • PASSWORD: default password (default: "admin")

⁠Contribute

Find more here⁠.

Tag summary

Content type

Image

Digest

sha256:830fa57fe…

Size

67.1 MB

Last updated

about 1 year ago

docker pull a13labs/m3uproxy