Skip to content

Fix YouTube Dual Stream + Vertical RTMP - #6162

Open
michelinewu wants to merge 2 commits into
masterfrom
mw_yt_both_rtmp_vertical
Open

Fix YouTube Dual Stream + Vertical RTMP#6162
michelinewu wants to merge 2 commits into
masterfrom
mw_yt_both_rtmp_vertical

Conversation

@michelinewu

Copy link
Copy Markdown
Contributor

Fix YouTube Vertical Stream Never Going Live When Combined With a Custom RTMP Destination

Issues

For a YouTube dual stream with a custom RTMP destination assigned to the vertical display, the vertical YouTube stream silently never went live. The horizontal side worked fine, and no error surfaced anywhere.

  • isVerticalDualStreamDestination in app/services/streaming/streaming.ts:599-602 checked the wrong scope.

  • RestreamService.setupIngest() in app/services/restream.ts:768-790 didn't await completion. Any error thrown inside became an unhandled rejection that never reached the try/catch around beforeGoLive(). So even when this method should have fixed the vertical display's settings, the correction could have or silently failed)by the time the vertical OBS streaming output was actually created.

Fixes

  • isVerticalDualStreamDestination now verifies the YouTube vertical relay really is the only thing on vertical so a custom RTMP destination on vertical now correctly falls through to the restream/multistream path instead of colliding with the YouTube relay on the same settings object. setupIngest()'s promise is now correctly awaited.

  • Also added a YouTube Dual Stream test.

Files changed: app/services/streaming/streaming.ts, app/services/restream.ts

Performance Implications

None on the success path. The Promise.all change in setupIngest() now correctly awaits instead of fires-and-forgets, no additional work added.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The newly added “YouTube Dual Stream” test does not currently configure the custom destination on the vertical display, so it doesn’t reliably guard the reported regression.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Fixes a dual-output edge case where YouTube dual stream combined with a custom RTMP destination on the vertical display could prevent the vertical stream from ever going live, due to incorrect destination classification and an un-awaited async ingest setup in the Restream flow.

Changes:

  • Corrected vertical dual-stream detection to avoid treating “YouTube dual stream + vertical custom destination” as a single-target vertical output.
  • Updated RestreamService.setupIngest() to properly await per-display ingest configuration in dual output mode.
  • Added a YouTube dual-stream e2e test scenario (needs an adjustment to actually cover the vertical custom destination case).
File summaries
File Description
test/regular/streaming/youtube.ts Adds a “YouTube Dual Stream” test flow including custom destination scenarios.
app/services/streaming/streaming.ts Fixes vertical dual-stream classification logic to prevent settings collisions with custom destinations.
app/services/restream.ts Awaits dual-output ingest setup work so failures propagate to surrounding error handling.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +127 to +131
// Test custom destination with vertical display
await clickGoLive();
await waitForSettingsWindowLoaded();
await goLiveWithDualOutput('youtube');
} finally {
@bundlemon

bundlemon Bot commented Sep 8, 2026

Copy link
Copy Markdown

BundleMon

Files updated (1)
Status Path Size Limits
renderer.(hash).js
10.48MB (+61B 0%) -
Unchanged files (3)
Status Path Size Limits
vendors~renderer.(hash).js
4.67MB -
updater.js
115.29KB -
guest-api.js
40.23KB -

Total files change +61B 0%

Final result: ✅

View report in BundleMon website ➡️


Current branch size history | Target branch size history

@michelinewu michelinewu added bug work in progress needs QA requires QA testing on the branch before merging labels Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug needs QA requires QA testing on the branch before merging work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants