We offer customization solutions and support ([email protected]) | Visit us on bitbyte3 for complete VOD solutions with apps.
NixStream
Guides

Player

NixStream video player configuration

The player is Shaka-based (nixstream-player), forked from snapencode-player. It does adaptive HLS/DASH, multi-audio and subtitles, Chromecast, and i18n.

What the player supports

  • Adaptive bitrate streaming (HLS and DASH)
  • Multiple audio language tracks
  • Subtitle and caption tracks (uploaded or Whisper-generated)
  • Chromecast casting
  • Internationalization (i18n)
  • Signed Edge delivery for HLS and DASH (AES-128 decrypted at the edge)
  • Thumbnail preview on seek bar

Player settings

Go to Settings > Player for global defaults:

SettingWhat it does
AutoplayStart playback when the player loads
Muted startBegin muted (required for autoplay in most browsers)
WatermarkOverlay image on the video
Default languagePreferred UI and subtitle language

These settings are exposed via GET /api/settings/player for embed contexts.

Embedding a video

From the video detail page in the admin panel, copy the embed code. A typical embed looks like:

<iframe
  src="https://your-domain.com/embed/vod/{video-id}"
  width="640"
  height="360"
  frameborder="0"
  allowfullscreen
></iframe>

Replace your-domain.com with your APP_URL and {video-id} with the actual video UUID.

Responsive embed

For a responsive container:

<div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;">
  <iframe
    src="https://your-domain.com/embed/vod/{video-id}"
    style="position:absolute;top:0;left:0;width:100%;height:100%;"
    frameborder="0"
    allowfullscreen
  ></iframe>
</div>

Edge-protected content

Manifests and segments load from nixstream-edge with signed tokens. The player does not fetch AES keys. Make sure:

  • Edge is running and the Edge integration is connected
  • EDGE_BASE_URL is reachable from the browser
  • Security profiles permit the embedding domain

Customization

For advanced theming, modify components in nixstream/resources/js/lib/nixstream-player/. The player uses Shaka Player under the hood, so Shaka configuration options are available for buffer sizes, retry logic, and track selection.

Common issues

Player shows black screen

  • Check that encoding completed successfully
  • Verify the manifest URL is accessible
  • Confirm Edge /healthz responds and signed manifest URLs are returned by the API

Subtitles not showing

  • Confirm subtitle tracks were generated or uploaded
  • Check that the correct language track is selected
  • Whisper transcripts must be published before they appear

Embed blocked on external site

  • Review security profile domain allowlist
  • Add the embed origin to allowed domains

Chromecast not available

  • Casting requires HTTPS in production
  • The viewer needs a Chromecast device on the same network

On this page