-
Notifications
You must be signed in to change notification settings - Fork 1k
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.
| 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.
- Enable VideoHLS in Admin → Plugins.
- Open its parameters.
- Keep
qualitySelectorenabled when viewers should be able to select an HLS quality. - Keep
downloadProtectionenabled unless a tested integration requires otherwise. - Review IP, referrer, and user-agent whitelist values before changing them.
- 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 |
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.
- Open Video Manager.
- Find the HLS video and select Upload Audio Tracks.
- Select the MP3 file and enter its language label.
- Optionally make it the default track.
- Upload and test selection/synchronization in the player.
The AI plugin can create a translated/dubbed track when its service, wallet, transcription, VideoHLS, and Encoder requirements are met.
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.