Skip to content

VideoHLS Plugin

Daniel Neto edited this page Aug 18, 2026 · 25 revisions

VideoHLS plugin

VideoHLS adds playback support and controls for encrypted, multi-bitrate HLS video. The Encoder must first create the HLS playlists, segments, qualities, and encryption data.

HLS compared with separate MP4 files

Feature HLS Separate MP4 qualities
Automatic quality adaptation Yes, when multiple HLS variants exist No
Manual quality selection Available when enabled and variants exist Use VideoResolutionSwitcher
File layout Playlists plus many segments One file per quality
Protected key/token workflow Supported by VideoHLS Different access mechanism
Simple direct file download Not the normal HLS workflow Possible when download is allowed

Download protection and encryption reduce casual direct access; they are not DRM and cannot prevent screen recording.

Configure it in the UI

  1. Enable VideoHLS in Admin → Plugins.
  2. Open its parameters.
  3. Keep qualitySelector enabled when viewers should be able to select an HLS quality.
  4. Keep downloadProtection enabled unless a tested integration requires otherwise.
  5. Review IP, referrer, and user-agent whitelist values before changing them.
  6. Save, clear cache, encode one short test video as HLS, and test while signed out.
Parameter Purpose
qualitySelector Shows the supported HLS quality selector
downloadProtection Uses the protected key/token delivery workflow
IPWhitelist Allows listed systems such as an Encoder to perform required access
verifyTokenIP Ties protected access to the request IP; proxies must be configured correctly
AlwaysAllowChromeCast Allows supported Chromecast playback despite normal protection checks
TSFilesCDN Optional delivery URL for HLS segment files

Add another audio track in the UI

Additional MP3 audio tracks require HLS created by Encoder 6.0 or later. The documented supported storage choices are local storage and CDN Storage; YPTStorage is not supported for this audio-track workflow.

  1. Open Video Manager.
  2. Find the HLS video and select Upload Audio Tracks.
  3. Select the MP3 file and enter its language label.
  4. Optionally make it the default track.
  5. Upload and test selection/synchronization in the player.

Upload an HLS audio track

Select an audio track in the player

The AI plugin can create a translated/dubbed track when its service, wallet, transcription, VideoHLS, and Encoder requirements are met.

Common questions

Why does the player show only one quality? Confirm the Encoder created a master playlist with multiple variants and that storage/CDN returns every playlist and segment.

Why does HLS play for an administrator but not a normal viewer? Check video privacy, key/token requests, proxy IP handling, HTTPS, storage access, and the first failed browser-network request.

Why did Chromecast or a mobile app stop working? Review the corresponding allow option, referrer/user-agent whitelist, HTTPS, and whether the client can request the protected key.

Why is an uploaded audio track silent or out of sync? Confirm MP3 format, duration, sample compatibility, language/default selection, Encoder version, and supported storage.

Can I store HLS anywhere? Do not assume every S3, B2, FTP, or custom storage plugin supports playlists, thousands of segments, authorization, cleanup, and protected keys. Test the installed combination before migration.

Clone this wiki locally