- guest_watch.py: keyless WebSocket watcher on host rooms (piratetok-live-py 0.3.0).
A guest is active while its userId keeps appearing in link_mic_method events.
- app.py: when an enabled account is offline in its own room but is a guest on a
watched host, relay the host stream and show LIVE on host. Switch back when the
guest signal expires. Own-room behaviour is unchanged otherwise.
- Dockerfile: GUEST_WATCH_HOSTS=talolil, GUEST_ACTIVE_SECONDS=120.
- test_guest_watch.py: unit checks.
Resume the same owned publisher while the accepted lifecycle transition finishes, without duplicate transitions or pre-start timeout cancellation. Keep created/terminal lifecycle guards and existing account/channel/credential settings. New before-fix regressions reproduced four failures; all 383 checks pass after fix. Deployment explicitly approved by the owner while streams are running.
Recover repeated RTMPS startup failures using safe backup ingest routing
Same owned stream and broadcast, primary/backup route recovery with query-safe URL construction. Add redacted handshake diagnostics and prevent debug publish-success messages from being treated as output failures. Preserve credentials, channel, quota and account choices. 376 checks passed.
Fix live source handover without interrupting the YouTube publisher
Start the replacement reader after releasing its handover flag; cancel and join old readers exclusively. Handle CDN EOF/read failures inside the same FFmpeg, allow bounded first-byte grace, reuse recent compatible live observations and ignore 16x16 placeholder canvas dimensions. Preserve channel, user settings, events and Secrets. Regression coverage includes real HTTP/FFmpeg continuity; 367 checks passed.
Fix explicit channel confirmation and TikTok JSON cookie import
Keep the checked OAuth channel separate from the active journal channel. Add adopt-only confirmation with no broadcast start; preserve fail-closed guards, stop old publishers before archiving, clear old ingestion destinations, and scope history to its channel. Accept browser JSON cookie exports with expiry/domain filtering. Add deterministic dashboard, API and cookie regressions; isolate the local lifecycle ingest fixture.
Fail over to lower source without reopening RTMP
Arena maintenance
19c4131
Persist live stream transition diagnostics
Arena maintenance
dc5fd17
Forward decoder configuration changes in-session
Arena maintenance
1de09cd
Prioritize relay continuity under CPU quota
Arena maintenance
0a92b5b
Leave CPU headroom for dual CBR relays
Arena maintenance
85c5abf
Keep YouTube ingest at true CBR
Arena maintenance
b8ef8da
Reserve stable encoding for both relays
Arena maintenance
2211b63
Force stable output for measured account
Arena maintenance
dd15580
fix: recover dead FFmpeg senders and add iframe login
Arena maintenance
1a38430
Run the sender watchdog on every manager pass, detach stopped supervisors, protect detailed health, restore the dashboard, pin dependencies, and add regression coverage.
حارسا الحمل: عودة تلقائية إلى copy بعد 60ث + ترميز متزامن واحد
v2.13-quad: four H264 copies, two transcodes, 720-class YouTube canvas.
On deploy
dd3ad8e
Lock first canvas (eval=frame). No copy-recovery flash. Map 720x1440 to
720x1280 so YouTube does not starve. HEVC/PK encode only if a light slot
is free. cpu-basic cannot x264 four lives.
Never send HEVC to YouTube; closed GOP; recycle dead FFmpeg in 3s.
Player freeze until app restart is the first decoder config (h265/open GOP)
or a dead publisher while YouTube keeps the last frame. Stall 12 unchanged.
Latest curl_cffi 0.16+; matchgop fallback instead of default 720; health poll 60s.
Measured on On @aboodi1994: FLV went silent ~12s, FFmpeg died, YouTube
spun, then the same FLV was retried. HLS reconnects inside FFmpeg.
FLAP_LIMIT 2 so PK layout changes stick to a constant canvas sooner.
Sync full Tktktk engine (relay-v2.9-confirm) onto this Space.
Independent per-broadcaster relays, concurrency cap 5, confirm-before-exit
on idle offline, tests included. Space identity (title On) kept. Do not
enable OAuth automation here and on Tktktk against the same YouTube channel.
copy the full relay project into this test Space + the three lab-verified fixes (format guard on, timestamp-reset detector, optional audio map)