Contact Support | System Status
Page Contents

    Video SEO Schema Generator Plugin

    In this topic, you will learn how to use a plugin that generates a video schema for SEO.


    The plugin detailed in this document adds SEO metadata for the video in your Brightcove Player. An example result that Google would see for a video is shown here:

    structured data video result

    You can learn more about validating your structured data later in the document in the Google's Structured Data Testing Tool section.

    Installing the plugin

    This plugin installs just as any custom plugin would. Following are instructions to add the plugin using Studio and in code.

    Installing using the PLAYERS module

    1. Open the PLAYERS module and either create a new player or locate the player to which you wish to add the plugin.
    2. Click the link for the player to open the player's properties.
    3. Click Plugins in the left navigation menu.
    4. From the Add a Plugin dropdown, select Custom Plugin.
      Custom Plugin
    5. For the Plugin Name enter schema.
    6. For the JavaScript URL, enter:
    7. No CSS URL is needed.
    8. You do not have to enter any options for this plugin in this specific implementation.
    9. Click Save.
    10. To publish the player, click Publish & Embed > Publish Changes.
    11. To close the open dialog, click Close.

    Installing using code

    If you wish to install the plugin for single player using code, use the following code as a guide:

    <video id="myPlayerID"
    <script src="//"></script>
    <script src=""></script>
    videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this;

    Google's Rich Results Test Tool

    Once the plugin in installed, and you publish a video in a Brightcove Player you can test to be sure the structured data is correct. Google provide a Rich Results Tool.

    On this page, you are prompted to enter the URL for the page containing your player and choose to test based on a desktop or smartphone client:

    rich results ui

    After you enter the URL to your page and click TEST URL, any errors in your data will be displayed.

    Rich testing results

    The results show you whether the page passes, but also offers additional valuable information. For example, click on the video title to expand the video information:

    Rich Testing Video Information
    Rich Testing Video Information

    Schema used

    This plugin is used to inject metadata from a Video Cloud video in to the page as structured data. It uses the JSON-LD format supported by Google for video SEO:

    <script type="application/ld+json">
    "name":"Big Buck Bunny",
    "description":"(c) copyright 2008, Blender Foundation /",

    Plugin options

    There are six options you can use with this plugin:

    • schemaId: The value to use as @id in the metadata. This must be a unique URI which represents the video, but not necessarily a "real" URL. This is arbitrary and might be values like:

      The following are accepted as macros:

      • {id}
      • {referenceId}
      • {playerId}
      • {embedId}
      • {accountId}

      The default URI will be:{accountId}/{playerId}_{embedId}/index.html?videoId={id}
    • keywords: If true, include tags as keywords.

      Default is false.

    • excludeTags: Array of tags to not include as keywords.

      e.g. ["youtubesync"]

    • baseObject: An option object of properties onto which to build the video specific metadata. For example this could be used to include a publisher object:
      "baseObject": {
        "publisher": {
          "@type": "Organization",
          "name": "Publisher name",
          "logo": {
            "@type": "ImageObject",
            "url": "",
            "width": 600,
            "height": 60
    • includeEmbedUrl: If false, no embed url is included. Including this URL may be expected by search engines.

      Default is true.

    • preferLongDescription: If true, use the long description if available. If false, or true and long description is not set, then the (short) description field will be used.

      Default is false.

    • transcript: If true, a transcript will be generated from the first subtitles or captions track matching the player language (which will generally match the page language).

      Default is false.

    • transcriptMatchAny: If true and transcript is also true, a transcript will be added from the first usable track, if there is no language match.

      Default is false.

    Page last updated on 13 Sep 2021