Skip to Content

Live Sessions

Live Sessions is the main WSDashboard page — your live operations center for monitoring every active stream. It displays real-time metrics, library content, and session details with full administrative controls — all updating automatically without page refreshes. WSDashboard surfaces every Emby, Jellyfin, and Plex session here the moment it starts.

Admin only

Live session monitoring requires administrator privileges and the wsdashboard feature flag enabled in Settings > General > Feature Flags.


Key features

Real-Time Updates

Sessions appear and disappear automatically as streams start and stop — no manual refresh needed

Stats Banner

At-a-glance metrics including active streams, bandwidth, direct play vs transcode breakdown, and server status

Three View Modes

Switch between Categorical, Cards, and Table views to match your monitoring preference

Session Actions

Pause, resume, stop, kill, message, or mirror any active stream directly from the dashboard

Library Drawers

Browse recently added and newly released content with poster cards and metadata tooltips

GPU Telemetry

Monitor hardware transcoding performance with real-time GPU utilization charts on Intel-equipped servers


Stats banner

The hero stats banner sits at the top of the page and provides instant visibility into your streaming activity:

MetricWhat it shows
Active Sessions
Animated counter showing how many streams are currently playing
Paused Sessions
Count of streams currently paused by viewers or administrators
Transcoding Sessions
Count of streams being transcoded rather than direct played
Bandwidth
Current total bandwidth consumption across all active sessions
Direct Play / Transcode
Breakdown pills showing how many sessions are using each playback method
Server Badges
Icons showing which media servers are connected (green for Emby, purple for Jellyfin, amber for Plex)
GPU Telemetry
GPU utilization pill (when Intel GPU detected) — click to open the GPU overlay

A connection status indicator in the page header shows whether the real-time data feed is active. A green pulsing “Live” badge confirms the connection is healthy.


Library drawers

Two expandable drawer tabs sit below the stats banner:

  • Recently Added — a horizontally scrollable strip of poster cards showing the newest content added to your libraries, sorted by date added
  • What’s New — poster cards sorted by premiere or release date, showing newly released content

Each poster card displays media artwork with a small server badge. Hovering over a card reveals a tooltip with the title, episode details, year, duration, content rating, dates, and a brief overview. Clicking a poster card opens the full detail page in the Media Portal.

When multiple servers are configured, filter pills appear to filter drawer contents by server. Only one drawer can be open at a time.

Always available

Library drawers display content from your media libraries regardless of whether any streams are currently active.


Session monitoring

The sessions panel is the main content area showing all active streaming sessions. Each session displays:

  • Media information — thumbnail, title, subtitle, year, and playback progress bar
  • User — username with quick access to the user administration panel
  • Device information — client application, device name, IP address with connection badge, and geographic location
  • Stream information — bitrate, video codec, audio codec, and playback method (Direct Play, Direct Stream, or Transcode)
  • Actions — administrative controls for the session

View modes

Three view modes are available, each suited to different monitoring scenarios:

Categorical View (default) — Sessions grouped by media type (Movies, TV Shows, Live TV, Music, Other). Each category is a collapsible section showing the category name, session count, and bandwidth. Sessions are displayed in a dense, multi-column table layout. Clicking on a device name, IP address, or username expands an inline detail panel below the session row with additional information.

Cards View — A responsive grid of richly styled cards, one per session. Each card features a blurred backdrop image, poster artwork, server badge, transcoding indicator, media and stream metadata, and a sliding controls panel. A progress bar along the bottom edge shows playback position.

Table View — A flat DataTable listing all sessions with sortable and filterable columns. Best for administrators managing many simultaneous streams at once.


Session actions

For each active session, administrators can perform these actions:

ActionWhat it does
Pause
Sends a pause command to the media server. The viewer's player will pause playback. The button changes to Resume.
Resume
Resumes a previously paused session.
Stop
Stops playback gracefully. The media server tells the client to stop playing. The session will disappear from the active list.
Send Message
Opens a dialog to compose and send a text message to the viewer's device. The message appears as an on-screen notification in their media player. You can set a custom header and timeout duration.
Kill Session
The most aggressive action. Disconnects the device entirely from the media server — not just stopping playback, but terminating the device's connection. Requires confirmation before executing.
Mirror
Opens a floating video player dock that mirrors the session's HLS stream so the admin can see exactly what the user sees. Requires the Playback Mirror feature flag enabled in General Settings. See the Playback Mirror section below for full details.
Stop vs Kill

Stop sends a graceful stop-playback command — the device stays connected to the server but playback ends. Kill disconnects the device entirely from the media server, which is useful for removing unauthorized or misbehaving clients. Kill requires a confirmation dialog before executing.


Inline detail panels

In the Categorical View, clicking on certain metadata fields expands an inline detail panel below the session row:

  • Clicking a device name — expands a device detail panel with device history, rename options, and connection stats
  • Clicking an IP address — expands a geographic information panel showing city, country, ISP, coordinates, and a map
  • Clicking a username — expands a user profile panel with watch history and policy controls

In the Cards View, clicking these fields opens the same information in a modal dialog instead of inline expansion.


Playback Mirror

Playback Mirror lets an admin open a floating, draggable video player that streams exactly what a user is currently watching — the same content, proxied through the QuickBox Pro server in real time.

Feature flag required

Playback Mirror is disabled by default. Enable it in Settings → General → Feature Flags by toggling Playback Mirror on. The toggle only appears when the main WSDashboard feature flag is also enabled.

What the mirror does

When you click Mirror on any active session, a floating Picture-in-Picture (PiP) dock appears. The dock shows the session’s live HLS stream starting at the viewer’s current playback position. You can:

  • Drag the dock anywhere on screen by its header bar
  • Resize it from any edge or corner (8 resize handles)
  • Mute / unmute audio
  • Toggle fullscreen for a closer look
  • Toggle Nerd Stats — a diagnostic overlay showing codec, resolution, bitrate, play method, playback position, and mirror token time remaining
  • Minimize the dock to a tab at the bottom of the viewport and restore it later
  • Close the mirror when finished

Supported servers

Playback Mirror works with all three supported media servers:

Media ServerVOD (Movies & TV)Live TV
Emby
Supported
Supported
Jellyfin
Supported
Supported
Plex
Supported
Supported
Live TV mirroring

Live TV sessions mirror on all three media servers. Because a live channel is single-consumer (the media server will not open a second copy of the tuner), the dashboard mirrors Live TV differently from VOD: instead of asking the media server for another transcode, it runs its own relay off the multi-consumer channel source and serves it to your browser. The user’s own playback is never touched.

Security model

The mirror system is designed so your media server’s API credentials never reach the admin’s browser:

  • Server-side proxy — the QuickBox Pro server fetches the HLS stream from the media server and rewrites segment URLs before sending them to the browser. Raw API keys and tokens are never exposed to the client.
  • HMAC-signed tokens — each mirror session receives a short-lived token that is cryptographically signed server-side. The HLS player uses this token to authenticate segment requests. Tokens are never stored in plain text.
  • Configurable TTL — by default, mirror tokens expire after 2 minutes. You can increase the TTL or disable expiry entirely in General Settings when the Playback Mirror flag is enabled. When TTL is disabled, the mirror runs until you close the dock or the source playback ends.
  • Admin-only — mirror start requests require administrator session authentication plus CSRF verification. Regular dashboard users cannot initiate or view mirrors.
  • Audit logged — every mirror start and stop is recorded in the server audit log.

Concurrent mirror limit

Each admin can have up to 3 concurrent mirror sessions. Opening a new mirror when you already have 3 active will automatically close the oldest one. In practice, opening a new mirror from the session list closes any previously open dock since the dock displays one session at a time.

Configuring TTL

The mirror TTL is set per-server in Settings → General → Feature Flags (the TTL sub-section appears below the Playback Mirror toggle when the flag is enabled):

  • TTL enabled (default) — mirrors expire automatically after the configured duration (default: 120 seconds). Set a higher value for longer monitoring sessions.
  • TTL disabled — mirrors run indefinitely until you manually close the dock, the source user’s playback ends, or the server restarts.
check

Use a short TTL

  • Quick verification that a stream is playing correctly
  • One-off quality checks
  • You want mirrors to self-clean if you forget to close them
check

Disable TTL or set a long TTL

  • Monitoring a long-running playback session for quality degradation
  • Watching a live stream alongside a user during support
  • Testing transcode behavior over an extended period

How the mirror stream works

The mirror always delivers HLS (HTTP Live Streaming) to your browser, but where the stream comes from depends on the session type:

  • VOD (Movies & TV Shows) — the mirror requests a new transcode from your media server, scoped to the admin. Even if the user is direct playing a high-bitrate file, the mirror runs through the media server’s transcoder.
  • Live TV — a live channel is single-consumer, so the media server will not open a second copy of the tuner for the mirror. Instead, the dashboard runs its own relay off the multi-consumer channel source and serves that as HLS. This means a Live TV mirror does not add a transcode job to your media server and does not disturb the user’s own playback.

In both cases:

  • There is a startup delay of a few seconds while the stream warms up
  • The mirror may lag the source by a few seconds due to HLS segment buffering
Transcode resource usage (VOD)

Opening a VOD mirror starts a new transcode job on your media server. On resource-constrained servers or during peak streaming load, avoid opening VOD mirrors unnecessarily. The Nerd Stats overlay shows the play method and bitrate so you can assess the load impact. Live TV mirrors use the dashboard’s own relay instead of a media-server transcode.


Real-time updates

The sessions panel updates automatically through a server-sent event connection. You do not need to refresh the page. When a new stream starts, it appears immediately. When a stream ends, it disappears. When playback state changes — pause, resume, bitrate shift, progress — the display updates live.

If the real-time connection drops, the dashboard automatically attempts to reconnect with progressive backoff. The connection status indicator in the header reflects the current state.


GPU telemetry overlay

On servers with an Intel integrated GPU, the Streaming Dashboard can display real-time GPU utilization in a floating overlay. The overlay shows:

  • Three engine utilization lines — Render (3D), Video (decode/encode), and Copy (DMA/blit) engine percentages
  • Current GPU frequency in MHz
  • GPU temperature when sensor data is available
  • 5-minute history chart with continuous updates every 2 seconds

The overlay is a draggable panel that persists its position. Toggle it on and off using the GPU telemetry button in the page header. This feature is only visible when Intel GPU hardware is detected on the server.

Intel GPUs only

GPU telemetry currently supports Intel integrated GPUs (i915 driver) used for hardware transcoding. Dedicated NVIDIA or AMD GPUs are not displayed in this overlay.


Empty state

When no streams are currently active, the sessions panel shows an empty state message. The stats banner displays zero counts. The library drawers continue to function normally since they display library content rather than active session data.

If no media server is configured at all, the page displays a setup prompt directing you to configure at least one media server in the Streaming Dashboard settings.


Best practices

Do

  • Use the Categorical View for quick at-a-glance monitoring of grouped sessions
  • Use the Table View when managing many simultaneous streams and sorting by specific metrics
  • Check the GPU telemetry overlay during heavy transcoding to monitor hardware utilization
  • Use the Send Message action to notify viewers before performing maintenance
  • Reserve Kill Session for genuinely unauthorized or problematic clients — Stop is sufficient for most situations
  • Close the mirror dock when you are done — each open mirror consumes a transcode slot on the media server
  • Use Nerd Stats in the mirror dock to check codec and play method before assessing quality issues

Don't

  • Don't use Kill Session casually — it disconnects the device entirely, not just the current playback
  • Don't rely solely on bandwidth numbers for quality assessment — check the playback method (Direct Play vs Transcode) for context
  • Don't ignore a disconnected status indicator in the header — it means real-time data is not flowing
  • Don't open mirrors on high-load servers during peak hours — each mirror starts a new transcode job
  • Don't expect the mirror to be frame-accurate — HLS transcoding introduces a few seconds of lag relative to the source

FAQ

Verify that your media server API key (or X-Plex-Token for Plex) is configured correctly in the Streaming Dashboard settings. The dashboard needs a valid connection to your media server to retrieve session data. Check the connection status indicator in the page header — if it shows disconnected, review your server URL and credentials.
Direct Play means the media file plays natively on the client device with no conversion — best quality and lowest server load. Direct Stream means the container is repackaged but the audio and video streams are not re-encoded — near-original quality with minimal server load. Transcode means the media is converted in real-time to a format the device can play, which requires significant server CPU or GPU resources.
Bulk session controls are available in the Control Center under the Sessions & Playback domain. From there you can stop all active streams or send a broadcast message to all viewers simultaneously.
GPU telemetry requires an Intel integrated GPU with the i915 driver on your server. If your server uses a different GPU vendor or does not have a hardware transcoding GPU, the telemetry button will not appear.
No. The real-time connection uses server-sent events, which are lightweight and only transmit data when sessions change. The dashboard does not stream any video data — the Mirror feature is the only exception, and it requires explicit activation.
The Mirror button only appears when the Playback Mirror feature flag is enabled in Settings → General → Feature Flags. The toggle requires the main WSDashboard flag to also be on. After enabling it, refresh the page if the button still does not appear.
The most common causes are: (1) the mirror TTL expired before the HLS player could load — try increasing the TTL in General Settings; (2) for a VOD session, the media server's transcoder is busy or at its connection limit; (3) for a Live TV session, the channel source may be momentarily unavailable — the dashboard relays Live TV off the channel source rather than the media server, so a relay warm-up can take a couple of seconds. Check the Nerd Stats overlay for error details and the server logs.
No. The mirror is read-only. For VOD it starts a separate transcode session scoped to the admin's mirror; for Live TV the dashboard relays the channel source independently. Either way, the source user's session is not paused, modified, or interrupted, and the user has no indication that their session is being mirrored.
By default, mirror tokens expire after 2 minutes. You can raise this limit or disable TTL entirely in Settings → General → Feature Flags under the Mirror Session TTL sub-section. When TTL is disabled, the mirror runs until you close the dock or the source user stops playing.
The UI displays one mirror dock at a time. Internally, each admin is allowed up to 3 concurrent mirror sessions — opening a new one automatically closes the oldest. In normal use, clicking Mirror on a new session replaces the currently open dock.

Join the Community

Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.

Dedicated Support
Feature Previews
Community Configs
Active Discussions
Join Discord Server
Last updated on