Dispatcharr/apps/proxy/config.py
2025-03-09 15:10:56 -05:00

43 lines
No EOL
1.5 KiB
Python

"""Shared configuration between proxy types"""
class BaseConfig:
DEFAULT_USER_AGENT = 'VLC/3.0.20 LibVLC/3.0.20'
CHUNK_SIZE = 8192
CLIENT_POLL_INTERVAL = 0.1
MAX_RETRIES = 3
class HLSConfig(BaseConfig):
MIN_SEGMENTS = 12
MAX_SEGMENTS = 16
WINDOW_SIZE = 12
INITIAL_SEGMENTS = 3
INITIAL_CONNECTION_WINDOW = 10
CLIENT_TIMEOUT_FACTOR = 1.5
CLIENT_CLEANUP_INTERVAL = 10
FIRST_SEGMENT_TIMEOUT = 5.0
INITIAL_BUFFER_SECONDS = 25.0
MAX_INITIAL_SEGMENTS = 10
BUFFER_READY_TIMEOUT = 30.0
class TSConfig(BaseConfig):
"""Configuration settings for TS proxy"""
# Connection settings
CONNECTION_TIMEOUT = 10 # seconds to wait for initial connection
MAX_RETRIES = 3 # maximum connection retry attempts
# Buffer settings
INITIAL_BEHIND_CHUNKS = 30 # How many chunks behind to start a client
CHUNK_BATCH_SIZE = 5 # How many chunks to fetch in one batch
KEEPALIVE_INTERVAL = 0.5 # Seconds between keepalive packets when at buffer head
# Streaming settings
TARGET_BITRATE = 8000000 # Target bitrate (8 Mbps)
STREAM_TIMEOUT = 30 # Disconnect after this many seconds of no data
HEALTH_CHECK_INTERVAL = 5 # Check stream health every N seconds
# Redis settings
REDIS_CHUNK_TTL = 3600 # Chunks expire after 1 hour in Redis (renamed from REDIS_CHUNK_EXPIRY)
# User agent
DEFAULT_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'