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
- Maven
- Gradle
- Gradle (Kotlin DSL)
<dependency>
<groupId>com.brightspot.vidyard</groupId>
<artifactId>vidyard</artifactId>
<version>1.1.0</version>
</dependency>
implementation 'com.brightspot.vidyard:vidyard:1.1.0'
implementation("com.brightspot.vidyard:vidyard:1.1.0")
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
| Method | Return type | Description |
|---|---|---|
getVidyardId() | Integer | Returns the numeric Vidyard video ID. |
getUuid() | String | Returns the Vidyard UUID for the video. |
getFacadePlayerUuid() | String | Returns the player UUID used for embedding. |
getVideoTitle() | String | Returns the video title. |
getDescription() | String | Returns the video description. |
getStatus() | String | Returns the Vidyard processing status (e.g., "ready"). |
getSeconds() | Integer | Returns the video duration in whole seconds. |
getMilliseconds() | Integer | Returns the video duration in milliseconds. |
getCreatedAt() | Date | Returns the creation date, converted from a Unix timestamp. |
getUpdatedAt() | Date | Returns the last-updated date, converted from a Unix timestamp. |
getExternalItemId() | String | Returns the UUID (used by Brightspot to identify the external item). |
getLabel() | String | Returns the video title as the display label in the CMS. |
getPublishDate() | Date | Returns the creation date as the publish date. |
isSupported() | boolean | Returns 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
| Method | Return type | Description |
|---|---|---|
getApiToken() | String | Returns the admin-level API token for the Vidyard account. |
getRequestBatchSize() | String | Returns the number of videos to retrieve per API request. Defaults to "50". |
getCacheTimeoutMillis() | Long | Returns the cache duration in milliseconds. Defaults to 300000 (five minutes). |
VidyardVideoSort
Enum of sort options available in the Vidyard federated search picker (implements ExternalItemSort).
| Constant | Label | API order |
|---|---|---|
NEWEST | Newest | created_at descending |
OLDEST | Oldest | created_at ascending |
MOST_RECENTLY_UPDATED | Most Recently Updated | updated_at descending |
TITLE_AZ | Title (A-Z) | name ascending |
TITLE_ZA | Title (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.
| Setting | Type | Default | Description |
|---|---|---|---|
| API Token | String | — | Admin-level API token for the Vidyard account. Required to enable the integration for a site. |
| Number of Videos to Load Each Request | Integer (enum) | 50 | Batch size for search results. Accepted values: 10, 25, 50, 100, 200. |
| Cache Timeout | Long (milliseconds) | 300000 | Duration for which API responses are cached in memory. Set to a lower value for more responsive updates; set higher to reduce API calls. |
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_identifierquery parameter)