generated: '2026-08-13'
method: searched
source: >
https://knowledge.vidyard.com/hc/en-us/articles/360019034753-Using-the-Vidyard-Player-API
and https://www.npmjs.com/package/@vidyard/embed-code
note: >
Vidyard's strongest and best-documented developer surface is client-side, not
server-side: an embeddable video player with a full JavaScript control API.
This is where the real engineering investment sits — the embed loader shipped
a release in July 2026, while the REST APIs have no SDK at all.
families:
- family: Player Embed (Embed V4)
description: >
The responsive Vidyard player embed. A single async script tag installs
the loader, and any
element carrying a
data-uuid attribute is upgraded in place into a player. Multiple instances
of the same player on one page are supported.
loader:
script: https://play.vidyard.com/embed/v4.js
attributes: [async]
placement: head
snippet: ''
mount:
element: img
class: vidyard-player-embed
snippet: '
'
data_attributes:
- {name: data-uuid, description: The player UUID to render}
- {name: data-v, description: Embed code version (4)}
- {name: data-type, description: Embed style — inline or lightbox}
package:
registry: npm
name: "@vidyard/embed-code"
version: 4.3.25
published: '2026-07-28'
url: https://www.npmjs.com/package/@vidyard/embed-code
docs: https://knowledge.vidyard.com/hc/en-us/articles/360019034753-Using-the-Vidyard-Player-API
- family: Player API (JavaScript control surface)
description: >
Runtime control of an embedded player from page JavaScript. Because the
loader is async, consumers register a window.onVidyardAPI callback and
then addReadyListener before touching a player instance.
ready_pattern:
global: window.onVidyardAPI
ready_listener: vidyardEmbed.api.addReadyListener(callback, uuid)
note: >
The uuid argument is optional — omit it to receive a callback for every
player on the page.
lookup:
- {call: "VidyardV4.api.getPlayersByUUID(uuid)", returns: collection of players with that UUID}
- {call: "VidyardV4.players", returns: all players on the page}
methods:
- {name: play, signature: ".play()", description: Start the player}
- {name: pause, signature: ".pause()", description: Pause the player}
- {name: resume, signature: ".resume()", description: Resume playback (alias of .play())}
- {name: seek, signature: ".seek(position)", description: Move playhead to position, in seconds}
- {name: scrubbing, signature: ".scrubbing()", description: "Returns true/false — whether the player is mid-seek; used to distinguish a seek-pause from a real pause"}
- {name: setVolume, signature: ".setVolume(volume)", description: Set volume, 0–1}
- {name: toggleFullscreen, signature: ".toggleFullscreen()", description: Toggle fullscreen}
- {name: playVideoAtIndex, signature: ".playVideoAtIndex(index)", description: "Play a specific video in a multi-video player, 0-indexed (formerly .playChapter)"}
- {name: getCurrentVideoIndex, signature: ".getCurrentVideoIndex()", description: "Index of the current video (formerly .getCurrentChapter)"}
- {name: enableCaption, signature: ".enableCaption(name, code)", description: "Enable captions, e.g. .enableCaption('Deutsch','de'); defaults to the first caption"}
- {name: disableCaption, signature: ".disableCaption(name, code)", description: Disable captions; defaults to all showing captions}
- {name: currentTime, signature: ".currentTime()", description: Current playhead time in seconds, as a decimal}
- {name: setAudioTrack, signature: ".setAudioTrack(audioTrackIndex)", description: Select an audio track by index}
- {name: addEvent, signature: ".addEvent(objectOptions)", description: Attach an action/event to the player}
- {name: ready, signature: ".ready()", description: Whether the player is ready}
- {name: uuid, signature: ".uuid", description: The player's UUID}
docs: https://knowledge.vidyard.com/hc/en-us/articles/360019034753-Using-the-Vidyard-Player-API
- family: Player API (Legacy)
description: >
Superseded control surface retained for players embedded with pre-V4
embed codes. Kept documented but not recommended for new work.
status: legacy
docs: https://knowledge.vidyard.com/hc/en-us/articles/360009871054-Using-the-Vidyard-Player-API-Legacy
- family: Progress events
description: >
Milestone callbacks that fire JavaScript actions as a viewer reaches
percentage points in a video — the client-side counterpart to the
server-side `view` webhook milestones (0/25/50/75/100).
docs: https://knowledge.vidyard.com/hc/en-us/articles/360009870114-Trigger-Javascript-actions-at-video-milestones-with-progress-events
cross_reference: asyncapi/vidyard-webhooks.yml
- family: oEmbed
description: >
Vidyard implements the oEmbed provider spec, so third-party surfaces can
resolve a Vidyard share URL into embed markup without the JS loader.
Two operations are published in the Dashboard API reference.
operations:
- method: GET
path: https://api.vidyard.com/dashboard/v1/oembed
description: oEmbed response with the LEGACY embed code for a given URL
- method: GET
path: https://api.vidyard.com/dashboard/v1.1/oembed
description: oEmbed response with the RESPONSIVE embed code for a given URL
spec: http://oembed.com/
docs: https://developer.vidyard.com/
- family: Secure embed (JWT)
description: >
Restrict playback of embedded videos to a secure site by signing viewer
access with JSON Web Tokens.
docs: https://knowledge.vidyard.com/hc/en-us/articles/360009997733-Restrict-Vidyard-videos-to-your-secure-site-using-JSON-Web-Tokens
cross_reference: authentication/vidyard-authentication.yml
summary:
family_count: 6
player_api_methods: 16
loader_libraries: 1