Replacing Videos

In this sample, you will learn how to replace videos using the Dynamic Ingest API. Note that the API does not support operations on multiple videos - the code here simply loops over a data set to replace the videos one by one.


The Dynamic Ingest API call is exactly the same as it would be for ingesting new videos - the only difference is that you do not need to make a prior call to the CMS API to create the video object in the Video Cloud system and get an id for it. If the source video file at the specified URL is the same one originally ingested, you will simply get a new set of renditions. If the source file is new, you will be replacing the existing video. All videos will remain playable with existing renditions until retranscoding is complete.

Implementation notes

To get access tokens and make the API calls, it uses a proxy built by Brightcove Learning services.

Getting Credentials

To get a client_id and client_secret, you will need to go to the OAuth UI and register this app:

These are the permissions you will need:

Dynamic Ingest Permissions
Dynamic Ingest Permissions

You can also get your credentials via CURL or Postman - see:

If you are getting credentials directly from the API, these are the permissions you need:


Rate limiting

See Best Practices for information on rate limiting.

Replace videos app

Source code

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

Sample app

See the Pen Dynamic Ingest API Sample: Replacing Videos (Dynamic Delivery) 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.