Skip to content

Restrict Twitch VOD audio to common Twitch services - #1782

Merged
aleksandr-voitenko merged 5 commits into
stagingfrom
fix-dual-output-vod-routing
Sep 23, 2026
Merged

aleksandr-voitenko merged 5 commits into
stagingfrom
fix-dual-output-vod-routing

Conversation

@aleksandr-voitenko

@aleksandr-voitenko aleksandr-voitenko commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Detach stale VOD encoders when restarting Simple and Advanced outputs. Add a reusable loopback RTMP receiver and regression coverage for destination isolation, VOD toggles, and retained-output restarts.

Motivation & Context

Custom RTMP destinations such as TikTok could incorrectly receive Twitch’s VOD audio track, preventing ingest in Dual Output setups. Retained outputs could also keep transmitting that track after VOD was disabled or the destination changed.

VOD eligibility previously relied on the service’s settings label, which custom destinations could inherit from Twitch because of how the front-end deals with settings. Outputs also retained their own reference to the VOD encoder across stop/start cycles.

Changes:

Code:

  • Requires an actual common Twitch service before attaching VOD audio.
  • Reconciles VOD encoders on each Simple and Advanced streaming start,
    detaching stale tracks while preserving shared source audio routing.

Tests:

  • Adds a test loopback RTMP receiver that verifies transmitted audio and video without platform credentials.
  • Shares output setup, per-output signal handling, cleanup, and media assertions between the VOD and Simple streaming suites.
  • Keeps provider settings and expected results explicit in each test, with documented ownership and failure semantics.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Tests Tweak (non-breaking change to improve existing functionality)
  • Code cleanup (non-breaking change which makes code smaller or more readable)

Detach stale VOD encoders when restarting Simple and Advanced outputs.
Add a reusable loopback RTMP receiver and regression coverage for
destination isolation, VOD toggles, and retained-output restarts.
Reuse output setup, signal handling, and cleanup across VOD and Simple
streaming tests. Keep scenario settings explicit and document resource
ownership, with coverage for failed connections and incomplete media.
@aleksandr-voitenko aleksandr-voitenko changed the title [WIP] Restrict Twitch VOD audio to common Twitch services Restrict Twitch VOD audio to common Twitch services Sep 23, 2026
Reject and release pool reservations without a valid Twitch stream key, and require pool credentials for Dual Output retries. Report native stop errors and ensure failed tests release their secondary users and scenes and shut down OBS.
Comment thread tests/osn-tests/src/test_osn_streaming_vod.ts
@aleksandr-voitenko
aleksandr-voitenko merged commit ea5f1c8 into staging Sep 23, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants