2025-04-05 16:25:05 -05:00
2025-05-02 19:16:21 -05:00
2025-02-23 20:31:57 -06:00
2025-03-04 00:17:35 -06:00
2025-02-23 20:31:57 -06:00
2025-02-23 20:31:57 -06:00
2025-02-23 20:31:57 -06:00

streamlink-server

Run your m3u and mpd streams through streamlink with authentication

Purpose

Convert unstable or incompatible video streams into a format that media players can reliably play and record by processing them through streamlink.

Requirements

  • Python 3.11 or newer
  • FFmpeg
  • streamlink
  • Python packages (install via pip):
    • FastAPI
    • uvicorn
    • python-dotenv
    • python-multipart

Installation

git clone https://github.com/purplescorpion1/streamlink-server.git
cd streamlink-server
pip install -r src/requirements.txt

Configuration

  1. Create a .env file in the project root:
AUTH_USERNAME=your_username
AUTH_PASSWORD=your_password
  1. Configure your channels in data/channels.json:
{
    "channels": [
        {
            "id": "1",
            "name": "Example Channel",
            "url": "https://example.com/stream.m3u8"
        }
    ]
}

Usage

  1. Start the server:
python src/stream_link_server.py

The server will start on port 6090 by default.

  1. Access your streams:
  • List all channels: http://localhost:6090/channels?username=xxx&password=xxx
  • Stream specific channel: http://localhost:6090/{channel_id}?username=xxx&password=xxx

Docker Support

Run with Docker Compose:

docker-compose up -d

Environment Variables

  • AUTH_USERNAME: Username for authentication
  • AUTH_PASSWORD: Password for authentication
  • PORT: Server port (default: 6090)

Notes

  • Make sure streamlink is properly installed and available in your system PATH
  • All streams require authentication with username/password
  • The server provides a clean HTTP interface for your media players
Description
No description provided
Readme 224 KiB
Languages
Python 81.2%
HTML 17.1%
Dockerfile 1.7%