Overview
This server provides a secure way to proxy and convert video streams using Streamlink. It supports various streaming protocols and includes features for custom headers, proxy support, and authentication.
Key Features
- Stream conversion using Streamlink
- Authentication protection for all endpoints
- Support for custom HTTP headers
- Proxy server support
- Channel configuration via JSON
- Docker and Docker Compose support
- RESTful API endpoints
- Real-time stream monitoring and recovery
- Support for MPEG-TS output format
Requirements
- Python 3.11 or newer
- FFmpeg
- Streamlink 6.5.0 or newer
- FastAPI 0.109.0+
- uvicorn 0.27.0+
- python-multipart 0.0.9+
- python-dotenv 1.0.0
- typing-extensions 4.9.0+
API Endpoints
Stream Endpoints
GET /stream/{channel_id} - Stream a channel by IDGET /stream/url - Stream from a custom URL with query parameters
Utility Endpoints
GET /utils/channels - List all available channelsPOST /utils/generate_url - Generate encoded streaming URLs
Installation Methods
Standard Installation
git clone https://git.fiorinis.com/Home/streamlink-server.git
cd streamlink-server
pip install -r src/requirements.txt
Docker Installation
docker-compose up -d
Hugging Face Spaces
Use the provided Dockerfile_HF for deployment on Hugging Face Spaces with:
- Optimized container size
- Pre-configured environment for Spaces
- Automatic HTTPS handling
- Integration with Hugging Face's monitoring
Documentation
For detailed API documentation and interactive testing, visit the Swagger UI.
For the OpenAPI specification, visit OpenAPI JSON.