YouTube Dashboard — User Manual

A complete guide to scheduling, controlling, and monitoring your YouTube live streams

1.Overview: What YouTube Functionality Is Used

StreamStudio integrates with the YouTube Live Streaming API (part of the YouTube Data API v3) to let you schedule, control, and monitor live broadcasts directly from this dashboard — without needing to open YouTube Studio.

OAuth 2.0 Authentication

StepWhat happens
Connect YouTubeThe app redirects you to Google's OAuth consent screen. You authorize the app to manage your YouTube channel.
Token storageAfter you consent, Google sends back a refresh token (long-lived) stored securely against your user account. Your Google password is never stored.
Token refreshEvery API call exchanges the refresh token for a short-lived access token behind the scenes. You stay connected until you click Disconnect.

OAuth scopes requested

  • youtube — manage your YouTube account (broadcasts, streams, videos, thumbnails)
  • youtube.force-ssl — see, edit, and permanently delete your YouTube videos

YouTube API Endpoints Used

FeatureYouTube API EndpointMethod
Connect channelchannels?part=snippet&mine=trueGET
List stream keysliveStreams?part=snippet,cdn,contentDetails&mine=trueGET
Create broadcastliveBroadcastsPOST
Create stream keyliveStreamsPOST
Bind broadcast ↔ streamliveBroadcasts/bindPOST
Re-bind to different keyliveBroadcasts/bindPOST
Go live (transition)liveBroadcasts/transition?broadcastStatus=livePOST
Transition to testingliveBroadcasts/transition?broadcastStatus=testingPOST
End stream (transition)liveBroadcasts/transition?broadcastStatus=completePOST
Check stream signalliveStreams?part=statusGET
Check broadcast statusliveBroadcasts?part=statusGET
List all broadcastsliveBroadcasts?broadcastStatus=…GET
Fetch video statsvideos?part=statistics,liveStreamingDetails,snippetGET
Set category / embeddablevideos?part=snippet,statusPUT
Upload custom thumbnailupload/youtube/v3/thumbnails/setPOST
Delete broadcastliveBroadcastsDELETE

Automated Background Jobs

Two scheduled workflows run automatically (unless an admin disables them in Settings):

WorkflowWhat it does
Auto Sync YouTube StreamsPeriodically imports new broadcasts from your YouTube channel into the dashboard so they appear even if created directly in YouTube Studio.
Auto Refresh Stream StatusesChecks the live lifecycle status of all your non-ended streams and updates their dashboard status (scheduled → live → ended) automatically.

2.Getting Started

Prerequisites

  • You must be logged in to StreamStudio and have been invited by an admin.
  • You must have a YouTube channel (not just a Google account). Create one at youtube.com first if needed.
  • You must be the channel owner or a manager of the brand account. Viewers and editors cannot authorize the Live Streaming API.

Connecting Your YouTube Channel

  1. Open the Stream Dashboard (the "YouTube" page in the sidebar).
  2. Click the Connect YouTube button in the top-right area.
  3. A new browser tab opens with Google's consent screen. Choose the Google account that owns your YouTube channel.
  4. Review the permissions and click Allow.
  5. Return to the dashboard — your channel name and profile picture now appear in the button area.
ℹ️
The OAuth consent screen opens in a new top-level tab because Google does not allow OAuth inside an embedded iframe. If the tab doesn't open, check your browser's pop-up blocker.

Disconnecting

Click the logout icon next to your channel name. This deletes the stored refresh token. Your streams remain on YouTube but will no longer be controllable from this dashboard until you reconnect.

3.The Stream Dashboard

The dashboard is your command center, organized into a toolbar, summary stats, and stream sections.

Header Toolbar

ButtonAction
Connect YouTube / Channel badgeConnect or disconnect your YouTube channel.
Refresh StatusesManually triggers a status check on all your non-ended streams. Updates each stream's status from YouTube's current lifecycle state.
Sync from YouTubeImports broadcasts that exist on your YouTube channel but aren't yet in the dashboard. A dialog asks whether to clear existing records first.
Test StreamCreates a private, unlisted test broadcast for verifying your encoder setup before going live.
New StreamOpens the Create Stream form.

Summary Stats

  • Live Now — number of your streams currently broadcasting.
  • Scheduled — number of upcoming streams not yet started.

Stream Sections

SectionWhat it shows
Live Now (red)Streams with status "live".
Scheduled (yellow)Streams with status "scheduled" that haven't started yet.
Recently Ended (grey)Streams that ended within the last 7 days.

Test streams appear in a separate Test Streams section above the regular sections.

4.Creating a New Stream

  1. Click New Stream on the dashboard.
  2. Fill in the form (see field table below).
  3. Click Create Stream.
FieldRequiredDescription
Stream TitleYesThe title shown on YouTube.
DescriptionNoAppears below the video on YouTube.
VisibilityYesPublic (anyone can watch), Unlisted (link only), or Private (only you). Default: Public.
Scheduled Date and TimeNoWhen the stream is planned to start. Leave blank for "start now."
Stream KeyNoChoose an existing reusable stream key from the dropdown, or leave it on "Create a new stream key" to generate a fresh one.
ThumbnailNoPaste a URL or click Upload to choose an image. Pushed to YouTube after creation.
Internal NotesNoPrivate notes visible only in the dashboard (not on YouTube).

What happens behind the scenes

  1. A live broadcast is created on YouTube with your title, description, visibility, and scheduled time.
  2. A live stream (stream key) is either fetched (if you selected an existing one) or created new.
  3. The broadcast is bound to the stream key.
  4. The video category is set to Sports (17).
  5. If you uploaded a thumbnail, it is pushed to YouTube.
  6. A stream record is saved in the dashboard with the YouTube broadcast ID, stream key, and watch URL.
⚠️
Treat your stream key like a password — anyone who has it can stream to your channel.

5.Managing a Stream (Stream Card Actions)

Each stream appears as a card with action buttons in the footer.

Go Live

Available on scheduled streams only.

  1. Checks whether YouTube is receiving an active signal on your stream key (retries for ~10 seconds).
  2. If no signal: shows an error — "No incoming stream detected yet. Start streaming from your encoder (e.g. OBS) before going live."
  3. If signal detected: transitions the broadcast to live (via testing if needed).
  4. Marks the video as embeddable so the in-app preview can play it.
  5. Updates the dashboard status to live and records the start time.
⚠️
You must start sending video from your encoder (OBS, vMix, etc.) to the stream key before clicking Go Live.

End Stream

Available on live streams. Transitions the YouTube broadcast to complete, updates the dashboard status to ended, records the end time, and calculates the duration.

Preview

  • Scheduled streams: Transitions the broadcast to testing state so the incoming RTMP feed becomes previewable. Shows a signal indicator (green = signal detected, amber = no signal yet).
  • Live streams: Shows the live embedded YouTube player directly in the card.
  • Testing state: A Watch Page link opens the YouTube watch page in a new tab (you must be logged into the channel's Google account).

Refresh Stats

Fetches the latest statistics from YouTube: view count, concurrent viewers (peak tracked), thumbnail, title, and description.

Share

Opens a share menu with options to share the stream URL via WhatsApp or copy it to the clipboard.

Edit

Opens the Create Stream form in edit mode (see Section 7).

Delete

Removes the stream record from the dashboard. This does not delete the broadcast on YouTube — it only removes it from this dashboard's list.

6.Test Streams

A test stream lets you verify your encoder setup (OBS, camera, audio) without going public.

Starting a Test Stream

  1. Click Test Stream on the dashboard toolbar.
  2. Confirm in the dialog that appears.
  3. The app creates a private, unlisted broadcast on YouTube, binds it to a stream key, and transitions it to testing state.
  4. A test stream card appears in the Test Streams section with the stream key and watch URL.

Using a Test Stream

  1. Copy the stream key from the test stream card.
  2. Paste it into your encoder (OBS) as the stream key.
  3. Start streaming from your encoder.
  4. Open the watch URL to preview the feed.
  5. When done, use the Stop button on the test stream card to end and clean up.
ℹ️
Test streams are unlisted and private — they won't be visible to your audience.

7.Editing a Stream

  1. Click the Edit icon on any stream card.
  2. The Create Stream form opens in edit mode, pre-filled with the stream's current details.

What you can edit

  • Title, description, visibility, scheduled time
  • Thumbnail (upload a new one — pushed to YouTube on save)
  • YouTube Stream URL
  • Stream Key — click Change Key to select a different existing key. The app re-binds the broadcast to the new key on YouTube.
  • Internal notes

What happens on save

  • If you changed the stream key, the broadcast is re-bound to the new key via the YouTube bind endpoint.
  • If you changed the thumbnail, the new image is uploaded to YouTube.
  • The dashboard record is updated.

8.Syncing from YouTube

If you create broadcasts directly in YouTube Studio and want them to appear in this dashboard:

  1. Click Sync from YouTube on the dashboard toolbar.
  2. A dialog asks: "Clear existing streams before importing?"
    • Yes — Deletes all current dashboard stream records, then imports fresh from YouTube. Use if your dashboard is stale or has duplicates.
    • No — Merges: only imports broadcasts that don't already exist. Existing records are preserved.
  3. The app fetches all your broadcasts (upcoming, active, and completed) from YouTube and creates dashboard records.
ℹ️
Only broadcasts with a scheduled start time are imported. Unscheduled drafts and cancelled broadcasts are skipped.

9.Stream History

The History page shows all your streams in a searchable, filterable table.

Analytics Summary

  • Total Streams — all streams ever created.
  • Total Views — sum of view counts across all streams.
  • Total Air Time — cumulative duration (hours and minutes).
  • Currently Live — number of streams live right now.

Filtering

  • Search box — filter by stream title.
  • Status filter buttons — All / Live / Scheduled / Ended.

Table Columns

ColumnContent
TitleStream title + internal notes
StatusScheduled / Live / Ended badge
ScheduledScheduled start date and time
ViewsTotal view count
DurationDuration in minutes (if ended)
VisibilityPublic / Unlisted / Private

10.Troubleshooting

MessageCause & Fix
"Connect your YouTube channel first."You haven't connected a channel, or the connection was lost. Click Connect YouTube on the dashboard.
"No incoming stream detected yet. Start streaming from your encoder."You clicked Go Live but YouTube isn't receiving video. Start your encoder (OBS) with the correct stream key first, wait a few seconds, then try again.
"Could not go live yet — YouTube isn't receiving a stream signal."Same as above — the broadcast can't transition to live without an active RTMP feed.
"Failed to refresh token"Your YouTube connection may have been revoked. Disconnect and reconnect your channel.
Test stream won't startYouTube may reject the testing transition if the broadcast was just created. Wait a few seconds and try again, or check that your channel has live streaming enabled (some channels need 24 hours after first enabling).
Preview shows "Video unavailable — Playback on other websites has been disabled"The video's embeddable flag isn't set. The app attempts to set this automatically when going live, but if it fails, open the stream directly on YouTube via the Watch Page link.
Stream key not appearing in the dropdownYouTube's liveStreams endpoint sometimes returns transient errors. The app retries up to 3 times. If it still fails, create a new stream key instead of selecting an existing one.

11.Data Storage

The following data is stored in the StreamStudio database (not on YouTube):

EntityWhat it holds
StreamYour dashboard stream records (title, status, YouTube IDs, stream key, stats, timestamps, notes, test flag).
YoutubeAccountYour YouTube channel ID, title, thumbnail, and OAuth refresh token.
ObsSettingsAutomation toggles (auto-sync, auto-refresh) and timeout values.
ℹ️
Your Google password is never stored. Only the OAuth refresh token is kept, and only for making YouTube API calls on your behalf.