CMS API Sample: Update Geo Properties

Product(s)
Video Cloud
Role(s)
API Developer
Task(s)
Manage Videos
Topic(s)
Code Samples
Geo Restriction
API(s)
CMS API

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": [
  "video-cloud/video/all",
  "video-cloud/playlist/all",
  "video-cloud/sharing-relationships/all",
  "video-cloud/notifications/all"
]

Codepen

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

Below is the code for the proxy used with this sample. You can use it as is if you insert your client_id and client_secret values on lines 22-23, and deploy the file to a server where PHP is running. Or you can use this as a model for building a proxy in whatever language you like. If you are creating a server-side app, you can simply build the logic to get access tokens into your app.