CMS API Sample: Update Geo Properties

Video Cloud
API Developer
Manage Videos
Code Samples
Geo Restriction

In this sample, you will learn how to update the geo-filtering properties for all videos in an account. The app will only run on one of our sample accounts, but if you want to recreate it, all the code is in the CodePen except for the proxy that is used to get access tokens and make the API requests - the code for the proxy is shown further down the page.

Limitations of this app

  • The app updates all videos in the account with the same geo settings - it would be fairly simple to add options to select only a portion of the videos by requesting them by folder or some search criteria.
  • There is no exception-handling - for a small account like the one used here, it doesn't matter much - if an API request times out, the app will fail at that point, and you can simply rerun it; for a large account, you would want to add some exception handling - at least keep track of offset variable, which keeps track of how many videos have been processed, so that you could restart the app at that point.
  • For a large account, this would take some time to complete processing; any videos added after the app begins processing will be missed. The app tells you how many videos it processed, however, so you could get another count of videos afterwards to see if any were missed. The result are sorted by creation date ascending, so the missed videos will be the last ones added to account.

Get credentials

To use the CMS API you will need proper credentials.

The easiest way to get credentials in most cases is through the Studio Admin API Authentication section (requires admin permissions on your account). See Managing API Authentication Credentials for details. In most cases, you probably just want to get permissions for all CMS API operation:

CMS API Permissions
CMS API Permissions

If the permissions you need are not available in Studio, or if you prefer to get them directly from the OAuth API, use your choice of the Get Client Credentials documents listed below. Whichever option you choose, you will need to ask for the correct operation permissions. The following can be used with cURL or Postman to get all permissions for the CMS API:

		"operations": [


The Codepen below contains the working app - you can look at the Result tab it to see what it does, and then look at the HTML, CSS, and JavaScript code it uses.

Find all the code associated with this sample in this GitHub repository.

See the Pen CMS API: Update Geo Properties by Brightcove Learning Services (@rcrooks1969) on CodePen.

Using the CodePen

Here are some tips to effectively use the above CodePen:

  • Toggle the actual display of the player by clicking the Result button.
  • Click the HTML/CSS/JS buttons to display ONE of the code types.
  • Click Edit on CodePen in the upper right corner to fork this CodePen into your own account.
  • Find all the code associated with this sample in this GitHub repository.

Proxy code

In order to build your own version the sample app on this page, you must create and host your own proxy. (The proxies used by Brightcove Learning Services only accept requests from Brightcove domains.) A sample proxy, very similar to the one we use, but without the checks that block requests from non-Brightcove domains, can be found in this GitHub repository. You will also find basic instructions for using it there, and a more elaborate guide to building apps around the proxy in Using the REST APIs.