Skip to main content

Technical reference

The Vidyard plugin integrates Brightspot with the Vidyard video platform using the Brightspot external item federated search framework. It provides a VidyardDatabase adapter that queries the Vidyard Dashboard API v1.0, a VidyardVideo content type to represent individual videos, and a VidyardSettings configuration class that supports per-site credentials and cache tuning.

Dependencies

This plugin depends on the Brightspot external item framework (com.brightspot.db:db) and the standard Brightspot CMS and Dari libraries. No other Brightspot platform plugins are required.

Installation

Requirements
Requires Brightspot 4.8 or later.
<dependency>
<groupId>com.brightspot.vidyard</groupId>
<artifactId>vidyard</artifactId>
<version>1.1.0</version>
</dependency>

API reference

VidyardVideo

Represents a single Vidyard video as a Brightspot external item (extends ExternalItem). The plugin creates and updates instances of this class from Vidyard API responses. Only videos with a status of "ready" are surfaced for selection.

Key methods

MethodReturn typeDescription
getVidyardId()IntegerReturns the numeric Vidyard video ID.
getUuid()StringReturns the Vidyard UUID for the video.
getFacadePlayerUuid()StringReturns the player UUID used for embedding.
getVideoTitle()StringReturns the video title.
getDescription()StringReturns the video description.
getStatus()StringReturns the Vidyard processing status (e.g., "ready").
getSeconds()IntegerReturns the video duration in whole seconds.
getMilliseconds()IntegerReturns the video duration in milliseconds.
getCreatedAt()DateReturns the creation date, converted from a Unix timestamp.
getUpdatedAt()DateReturns the last-updated date, converted from a Unix timestamp.
getExternalItemId()StringReturns the UUID (used by Brightspot to identify the external item).
getLabel()StringReturns the video title as the display label in the CMS.
getPublishDate()DateReturns the creation date as the publish date.
isSupported()booleanReturns true only when the video status is "ready".

VidyardSettings

Extends SiteSettings modification to expose Vidyard configuration in Site Settings and the global settings. Provides fallback logic so a site without its own settings inherits the global configuration.

Key methods

MethodReturn typeDescription
getApiToken()StringReturns the admin-level API token for the Vidyard account.
getRequestBatchSize()StringReturns the number of videos to retrieve per API request. Defaults to "50".
getCacheTimeoutMillis()LongReturns the cache duration in milliseconds. Defaults to 300000 (five minutes).

VidyardVideoSort

Enum of sort options available in the Vidyard federated search picker (implements ExternalItemSort).

ConstantLabelAPI order
NEWESTNewestcreated_at descending
OLDESTOldestcreated_at ascending
MOST_RECENTLY_UPDATEDMost Recently Updatedupdated_at descending
TITLE_AZTitle (A-Z)name ascending
TITLE_ZATitle (Z-A)name descending

VidyardDatabase

Extends HttpEndpointDatabase to handle all communication with the Vidyard Dashboard API. Routes Brightspot queries to either a search request (keyword, sort, pagination) or a detail request (fetching full metadata for previously selected videos). Results are cached in VidyardCache.

VidyardCache

In-memory cache backed by Guava CacheBuilder. Stores two independent caches:

  • Video cache—stores individual video metadata, keyed by apiToken:vidyardId. The composite key prevents data collisions between sites using different Vidyard accounts.
  • Search cache—stores search result lists keyed by the full request URL.

The cache timeout is read once from VidyardSettings#getCacheTimeoutMillisWithFallback() on first initialization and applies globally across all sites. Changes to the setting do not take effect until the caches are reinitialized on application restart.

VidyardDatabaseProvider

Implements SourceDatabaseProvider. Creates and configures a VidyardDatabase instance from the effective VidyardSettings for the current site. This class is registered automatically and does not require direct use.

Configuration

Configure the plugin in Admin → Sites → [Site] → Integrations → Vidyard for site-level settings, or in Admin → Settings → Integrations → Vidyard for a global fallback.

SettingTypeDefaultDescription
API TokenStringAdmin-level API token for the Vidyard account. Required to enable the integration for a site.
Number of Videos to Load Each RequestInteger (enum)50Batch size for search results. Accepted values: 10, 25, 50, 100, 200.
Cache TimeoutLong (milliseconds)300000Duration for which API responses are cached in memory. Set to a lower value for more responsive updates; set higher to reduce API calls.
note

Site-level settings take priority over global settings. When a site has its own API token, it uses a separate cache keyed to that token, isolating its video data from other sites.

Unimplemented features

The following Vidyard API endpoints and parameters are defined in the codebase but not yet integrated:

  • Video status endpoint—real-time status checking
  • Video encoding status endpoint—encoding progress monitoring
  • Sort by views
  • Custom identifier lookups (custom_identifier query parameter)