Umbraco.Community.uGum 18.0.0

dotnet add package Umbraco.Community.uGum --version 18.0.0
                    
NuGet\Install-Package Umbraco.Community.uGum -Version 18.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Umbraco.Community.uGum" Version="18.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Umbraco.Community.uGum" Version="18.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Umbraco.Community.uGum" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Umbraco.Community.uGum --version 18.0.0
                    
#r "nuget: Umbraco.Community.uGum, 18.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Umbraco.Community.uGum@18.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Umbraco.Community.uGum&version=18.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Umbraco.Community.uGum&version=18.0.0
                    
Install as a Cake Tool

uGum

uGum synchronizes video files uploaded to Umbraco with Gumlet. When an Umbraco item is saved, uGum uploads the configured video file to Gumlet and stores the resulting Gumlet asset ID and HLS playback URL on the item.

Requirements

  • Umbraco CMS 18 or newer
  • A Gumlet Video workspace
  • A Gumlet API key with permission to create, read, and delete video assets
  • The Gumlet video source ID used for ingestion

Installation

Install the NuGet package in your Umbraco project:

dotnet add package Umbraco.Community.uGum

The package registers the Gumlet Sync property editor and the required Umbraco notification handlers automatically.

Get the Gumlet API key and source ID

  1. Sign in to the Gumlet dashboard.
  2. Open Developer → API keys.
  3. Select Create API key, give the key a recognizable name, and select Video Admin. uGum needs permission to create and upload video assets, read their processing status, and delete the corresponding Gumlet asset when a video is replaced or removed in Umbraco. Video Developer may be sufficient for some operations, but Video Admin is the recommended role for the complete uGum workflow. Do not use Video Readonly or Video Analyst.
  4. Copy the key immediately and store it securely. It is used as a Bearer token and should not be committed to source control.

Gumlet API key management

The SourceId is the Gumlet video workspace/source used for ingestion. In the Gumlet dashboard, open the relevant video workspace and use Copy workspace ID next to the workspace name. Use that value as SourceId in the uGum configuration.

Gumlet workspace ID

For more details, see Gumlet's API key documentation and direct upload documentation.

Configuration

Add the Gumlet settings to appsettings.json:

{
  "Umbraco": {
    "Gumlet": {
      "ApiKey": "YOUR_GUMLET_API_KEY",
      "SourceId": "YOUR_GUMLET_SOURCE_ID",
      "Format": "hls",
      "Resolution": [
        "240p",
        "360p",
        "480p",
        "720p",
        "1080p"
      ],
      "KeepOriginal": false
    }
  }
}

The API key and source ID can also be supplied as environment variables:

Umbraco__Gumlet__ApiKey=YOUR_GUMLET_API_KEY
Umbraco__Gumlet__SourceId=YOUR_GUMLET_SOURCE_ID

Format defaults to hls. Resolution controls the renditions Gumlet creates, and KeepOriginal controls whether Gumlet keeps the original uploaded file after processing.

Add the Gumlet Sync property editor

  1. Open the media, content, or member type that contains the video upload property.
  2. Add a new property using the Gumlet Sync property editor.
  3. In Upload Property Alias, enter the alias of the upload property containing the video file.
  4. Save the schema and upload or save a video.

Gumlet Sync property editor configuration

The sync property should be placed on the same type as the upload property. On save, uGum uploads the file to Gumlet. If the upload is replaced, the old Gumlet asset is deleted and a new one is created. When the Umbraco item is deleted, its associated Gumlet asset is deleted as well.

Umbraco media item synchronized with Gumlet

Stored value

The property editor stores a JSON value that is exposed to published models as GumletValue:

{
  "Src": "/media/example-video.mp4",
  "GumletAssetId": "65b169dfe99b77f116c0e4aa",
  "PlaybackUrl": "https://video.gumlet.io/workspace/asset/main.m3u8"
}

The value contains:

  • Src — the original Umbraco upload value.
  • GumletAssetId — the asset ID in Gumlet.
  • PlaybackUrl — the HLS playback URL returned by Gumlet.

Playback

PlaybackUrl can be passed to any video player that supports HLS. For example:

@if (Model.Video?.GumletVideo is { PlaybackUrl: not null } video)
{
    <video controls src="@video.PlaybackUrl"></video>
}

For browsers that do not support HLS natively, use an HLS-capable player such as hls.js.

Troubleshooting

  • No asset is created: verify ApiKey, SourceId, and the Upload Property Alias value.
  • The status remains Preparing: Gumlet is still processing the video. The backoffice editor polls the asset status automatically.
  • The property is empty: make sure the upload and Gumlet Sync properties are on the same Umbraco type and that the uploaded value is a video file.
  • Playback does not start: confirm that the asset has reached the ready state and that the player supports HLS.

uGum uses Gumlet's direct-upload API. The Gumlet API key is only used server-side and is never exposed to the browser.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
18.0.0 77 9/10/2026
17.0.0 77 9/10/2026
17.0.0-rc1 85 9/10/2026