Getting all the ingest profiles for an account is straightforward - it is just a simple call to the API. What is less straightforward is what you do with them. If you are going to display the profiles to users in some kind of app to select when they are ingesting videos, there are some potential issues you need to be aware of and deal with. These issues revolve around that fact that Brightcove is in the process of migrating all accounts from the legacy ingest system to the new Dynamic Delivery. You can read all about the advantages of the Dynamic Delivery system in this overview; what is important here are the implications for older accounts.
- For accounts created before November, 2017, the account was originally set up for the legacy ingest system
- If the account has not yet been converted to Dynamic Delivery, Dynamic Delivery profiles are still set up for the account and the Ingest Profiles API will return them. If users attempt to use these profiles when using the Dynamic Ingest API, an error will be returned.
- If the account has been converted to Dynamic Delivery, but legacy ingest was not disabled, legacy ingest profiles will still be returned; these should generally not be used, and cannot be used for operations on videos that have been converted to Dynamic Delivery.
- If you get back legacy ingest profiles, in addition the current ones, you will get back a number of obsolete profiles that were kept in the system because some customers were still using them. These should never be used.
- The legacy profiles also may include up to 3 profiles for live streaming, which generally should not be used for ingesting VOD content.
- Finally, for accounts that are configured for Dynamic Delivery only, there are two kinds of Dynamic Delivery profiles that may be returned:
- "static" profiles - the ordinary kind with a fixed set of renditions
- "dynamic" profiles that use Context Aware Encoding (CAE) to automatically determine the optimum set of renditions to create within constraints set in the profile.
The purpose of this sample is to show you both how to retrieve the account profiles and filter the results for the different types, and for custom profiles that have been created in the account.
To use the Ingest Profiles 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 Ingest Profiles API operation:
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 Ingest Profiles API:
"operations": [ "video-cloud/ingest-profiles/profile/read", "video-cloud/ingest-profiles/profile/write", "video-cloud/ingest-profiles/account/read", "video-cloud/ingest-profiles/account/write" ]
The appFind all the code associated with this sample in this GitHub repository.
See the Pen Ingest Profiles API Sample: Get All Profiles for an Account 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.
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.