# Local dev (running services directly on the host) uses localhost. # docker-compose overrides DATABASE_URL/REDIS_URL/SHARED_MEDIA_ROOT to # internal container hostnames — see infra/docker-compose.yml. DATABASE_URL=postgresql://streamclipper:streamclipper@localhost:5432/streamclipper REDIS_URL=redis://localhost:6379 SHARED_MEDIA_ROOT=./shared-media # Canlı yayın tespiti yt-dlp ile yapılıyor (bkz. youtubePolling.ts) — # YouTube Data API key gerekmiyor. OPENAI_API_KEY= TELEGRAM_BOT_TOKEN= TELEGRAM_CHAT_ID= POLL_INTERVAL_MS=60000 SEGMENT_TIME_SEC=900 API_DAEMON_PORT=4001 # Signs the panel's login session cookies (frontend). Generate with: # openssl rand -base64 32 # Required in production (docker-compose fails to start without it) — a # fixed insecure default is only used for local dev when unset. SESSION_SECRET= # Set to a live YouTube URL to bypass the 60s polling loop and start # capturing immediately — useful for testing the pipeline without waiting # for a real scheduled stream. FORCE_LIVE_URL= # YouTube cookies (Netscape cookies.txt content) are configured from the # panel's /settings page, not here — they rotate every few hours and are # stored in the app_settings table so they can be updated without a # redeploy. Use a throwaway/secondary Google account, not your main one — # it's a live session credential. # URL of a bgutil-ytdlp-pot-provider HTTP server (see docker-compose.yml # sc_pot_provider). Needed alongside cookies to avoid YouTube's "The page # needs to be reloaded" proof-of-origin token check. In docker-compose this # is auto-set to http://sc_pot_provider:4416; leave blank for local dev # unless you're running the provider yourself. YTDLP_POT_PROVIDER_URL= # Residential/ISP proxy (http://user:pass@host:port) for yt-dlp calls. # Datacenter server IPs get progressively more flagged the more they're # used for yt-dlp requests — a clean residential/ISP IP avoids that. Use an # ISP proxy product specifically (e.g. Oxylabs "ISP Proxies"), not a plain # datacenter proxy — the latter has the same problem as the server itself. PROXY_URL= # Processed raw recordings (raw_segments) older than this get auto-deleted # (DB row + file) — PRD's auto-purge lifecycle. Only segments already fully # analyzed (no candidate still waiting on STT) are eligible. RAW_SEGMENT_TTL_HOURS=24 # Video render (yüz takibi + 9:16 crop + altyazı) her segment/stt-scoring # işinden çok daha ağır — düşük tutulur ki aynı anda birden fazla render # worker container'ını boğmasın. VIDEO_RENDER_CONCURRENCY=2 # api-daemon'ın durdur/zorla-başlat/render-tetikle gibi durum-değiştiren # endpoint'lerini korur (bu daemon'ın portu Coolify'de public'e açık). # frontend ve api-daemon aynı değeri kullanmalı. Generate: openssl rand -hex 24 # Boş bırakılırsa (sadece local dev için) bu endpoint'ler korumasız kalır. INTERNAL_API_TOKEN=