Mux EE Module Docs

for ExpressionEngine

Video Full Reference

The full list of :get tags available for native templates, Twig, Blade and GraphQL.

:get Parameters

These options are only available when using the stand-alone {exp:mux:get} tag.

Name Description
uid The Mux ID for the Asset or Live Stream. Add multiple than one with a pipe |
prefix A string of characters to append to each tag. Used when nesting get loops.

Example

{exp:mux:get uid="{video_uid}" prefix="myprefix"}
    {myprefix:playback_url}
{/exp:mux:get}

:get Single Variables

General

Tag Description
uid Unique identifier for the Asset or Live Stream. Max 255 characters.
type Possible values are ‘asset’ ‘live_stream’ ‘upload’
filename Uploaded filename with extension.
name User-editable video name.
created Timestamp of when the item was created, defined as a Unix timestamp (seconds since epoch).
updated Timestamp of the last update, including any title or thumbnail changes.
source upload, url, recording, clip or livestream.
state The Mux state of the video. Possible values include pending, idle, active, ready, errored, deleted
aspect_ratio Example 16/9
duration_seconds Duration of the asset in seconds. Example: 5412.54
duration Human readable duration. Examples: 5 sec 5:32
test boolean If asset or live stream was created with the test flag. Additional related tags are available in the expiration loop.
stream_key RTMP stream key for live streams. Keep this secure!
audio_only boolean if the item is audio-only with no video.
signed If settings are using signed playback
renditions_state The current state of renditions. They have their own state because they are encoded and processed independently of the primary stream (hls), and are optional.

Playback

Tag Description
playback_id Just the playback ID.
playabck_token JWT including parameters. Required for playback when using signed urls.
playback_play Playback ID, plus Token if required.
playback_url Full URL with all parameters included.

DVR

DVR playback allows a user to skip backwards on a live stream. DVR is really a standard asset. Due to how Mux works, live streams will not have a DVR ID until the live stream becomes active and the recording starts. This means the DVR playback has to be fetched after the stream has started. Brand new live streams will not have any DVR recording IDs and tags will be empty. After the live stream is over, the DVR will be the last available recording.

Tag Description
dvr_id Just the playback ID.
dvr_token JWT including parameters. Required for playback when using signed urls.
dvr_play Playback ID, plus Token if required
dvr_url Full mux URL to the ‘recent asset id’ that will enable DVR and be available after the live stream concludes.

Also see the DVR tag pair.

Images

Tag Description
thumbnail_token JWT for getting image. Note that transformations are not allowed.
thumbnail_url Returns the full Mux URL to a JPG thumbnail at a random timecode, or set through the video preferences.
thumbnail_gif URL to gif image
storyboard_token JWT for image.
storyboard_vtt URL to VTT file.
storyboard_json URL to JSON that describes the Storyboard image sprites.
storyboard_url Returns the full Mux URL to Storyboard.

Data

Tag Description
env_key The Mux Data environment key added in the add-on settings.
realtime_url Full URL to the Mux realtime views.
realtime_token JWT for realtime views.

Misc

Tag Description
act_full The full path to the EE Action URL for accessing the API methods, both read and write. Be careful with this method as it opens full access to upload, delete, and change data.
act_read The full path to the EE Action URL for accessing the API methods. Limited to only requests that are read-only method. It is highly recommended to use GraphQL for read-only requests.
json JSON-formatted string of the items data. Useful for API requests, debugging, or javascript. This data is formatted slightly different than the tag structure. It is highly recommended to use GraphQL instead of this tag.

:get Variable Pairs

These tag loops will return a full video tag loop, prefixed with their respective type such as recording or clips.

{recordings}

Loops over the live stream recordings (assets) with each video having the same group of template tags appended with the word “recording”. Deleted or errored assets are not returned.

This will duplicate the DVR recording asset when the live stream returns to idle.

{exp:channel:entries...}
{mux_live} // Your custom field.

     {recordings}
         {recording:uid}
         {recording:playback_url}
         {recording:duration}
         ...etc.
     {/recordings}

{/mux_live}
{/exp:channel:entries}

{clips}

Loops over the clips made from the parent asset with each video having the same group of template tags appended with the word “clip.” Deleted or errored assets are not returned.

{exp:channel:entries...}
{mux_asset} // Your custom field.

     {clips}
         {clips:uid}
         {clips:playback_url}
         {clips:duration}
         ...etc.
     {/clips}

{/mux_asset}
{/exp:channel:entries}

{dvr}

Video tag of the current or most recent DVR recording. Could be empty if there have been no recordings yet, or the only recording was deleted/errored. Deleted or errored assets are not returned.

{dvr}
    {dvr:uid}
    {dvr:playback_url}
    {dvr:duration}
    ...etc.
{/dvr}

Additional Tag Loops

{captions}

A loop for all and any caption/subtitle tracks.

Name
status
name
language_code
download (url)

{delivery}

Data from the delivery API that logs the amount of seconds transferred from Mux.

Name
delivered_seconds
days

{expiration}

If the video was created using the test option, Mux will delete the asset after 24 hours. This is useful for testing, and does not have any cost for adding videos. This tag is simply a helper for knowing when the video will be removed.

Tag Name
timestamp
iso8601
human
date

{master}

The highest quality encode Mux provides that is used to encode the other renditions. This file can be made available for 24 hours through the control panel.

Name
url
access (bool)
status

{renditions}

Renditions are single mp4 files, useful for downloading or for when HLS is not the best option. Renditions are optional, and can be added/remove. They are also encoded after the primary video (hls) is ready and may take some time. They follow signed URL security policies and would require a token if signing is enabled.

Name
name
ext
width
height
filesize
filesize_human
bitrate
bitrate_human
url
download

{time}

The timestamp of last time the entry was updated, and when it was created.

Name Description
last_generated When the tag was generated.
created_at When the video was created in Mux.
last_webhook Last time Mux sent a webhook.
last_modified Last time the video was modified by Mux or locally.

{user}

The user who created the video. This may not be available if the upload was created outside of ExpressionEngine.

Name
username
screen_name
user_id