Complete the following workflow to distribute a release.
Revelator’s distribution services include both supply chain and agreements with the stores (DSPs). If you would like to use your own distribution agreements for some or all of the stores you distribute to, you must configure this in your parent account.
Validate the release’s metadata. See Validating Releases.
Fix any validation errors by editing the release. See Adding/Editing Releases.
severity
of 1 must be resolved before a release can be distributed.severity
of 2 indicate a probable issue, but do not prevent distribution.(Optional) Set distribution options. See Setting Distribution Options.
Add the release to the distribution queue. See Adding Releases to the Distribution Queue.
Inspect and approve the release’s metadata. See Inspecting and Approving Releases.
Performed in the revelator user interface.
(Optional) Retrieve a release’s distribution status. See Retrieving Distribution Status.
Use the validate
resource to run an automated validation of a release’s metadata. The validation process checks a
release for various errors, some of which indicate there may be a problem and others which must be corrected before
distribution can proceed.
severity
of 1 must be resolved before a release can be distributed.severity
of 2 indicate a probable issue, but do not prevent distribution.You are responsible for providing acceptable release metadata. Failing to correct inappropriate metadata will result in stores rejecting your releases and will ultimately result in a suspension of your distribution privileges.
/distribution/release/{releaseId}/validate
Parameter | Description |
---|---|
releaseId | The ID of the release to validate. This ID was returned in the /content/release/save request which created the release. |
No Body |
---|
Parameter | Type | Description |
---|---|---|
validationErrors | array of objects | An array of all validation erros on the requested object |
validationErrors.objectId | integer | Id of the Object |
validationErrors.objectType | string | Type of the object eg. Release |
validationErrors.errorMessage | string | A human-readable error message of what went wrong |
validationErrors.severity | integer | Severity level of the issue |
Use the /content/release/retail/save
resource to set distribution options for a release, such as specifying a date the
release should go live.
You cannot change distribution options for a release that is currently in distribution queue.
/content/release/retail/save
Parameter | Type | Description |
---|---|---|
releaseId required | integer | The ID of the release to set distribution options for. This ID was returned in the /content/release/save request which created the release. |
saleStartDate optional | string | The date the release should go live, in the ISO format YYYY-MM-DD .
|
saleStartTime optional | string | The time the release should go live, in the format “hh:mm”.
|
saleStartTimezoneId optional | integer | The timezone for the saleStartTime . The release will go live at the same instant everywhere.
|
saleStartTimezone optional | integer | The timezone offset for the saleStartTime . The release will go live at the same instant everywhere.
saleStartTimezoneId instead. |
salePreOrderDate optional | string | The date the preorder should become available, in the ISO format YYYY-MM-DD
|
monetizationPolicyIds required | array of integers | Release-level monetization policy ID(s) for YouTube Content ID, Facebook Rights Manager and TikTok. Array should include only one policy for each store, or none if you are not distributing to that store. See Monetization Policies for more information and limitations. |
trackMonetizationPolicyIds optional | array of objects | Track-level monetization policy ID(s) for YouTube Content ID, Facebook Rights Manager and TikTok. Array should include only one policy for each store, or none if you are not distributing to that store. Only TikTok currently supports differing policies per track; for YouTube Content ID and Facebook Rights Manager the policy must be the same for all tracks. See Monetization Policies for more information and limitations. |
trackMonetizationPolicyIds.trackId required | integer | Track ID |
trackMonetizationPolicyIds.policyId required | integer | Policy ID |
countriesIncluded optional | array of objects | A list of Country objects (countryId only) defining the countries where the release will be distributed. If omitted, the release will be distributed to all available countries. |
countriesIncluded.countryId required | integer | The Country ID to include. |
countriesExcluded optional | array of objects | A list of Country objects (countryId only) defining the countries where the release will not be distributed. Important: If this array is provided and not empty, countriesIncluded will be ignored. |
countriesExcluded.countryId required | integer | The Country ID to exclude. |
priceTierIds optional | array of integers | An array of priceTierId values to apply to the release/tracks for distribution. This specifies the exact price tiers the release/tracks should be available at.
|
Monetization policies are used to instruct DSPs with user generated content (UGC) what to do in the event that part, or whole, of your sound recording is used in content (a video, a post, etc.) on their network.
Monetization Policy IDs are unique to each account. Once monetization is enabled for your account, you can retrieve your
monetization policy IDs by calling /common/lookup/MonetizationPolicies
(with an access token).
In addition to setting the monetization policy for a store during
Setting Distribution Options, you must include the same store in the
addtoqueue
request. See
Adding Releases to the Distribution Queue.
If the same policy applies to all tracks in a release, you can achieve the same result by:
monetizationPolicyIds
on a release level (recommended)trackMonetizationPolicyIds
on a track levelIf a different policy applies to different tracks in a release (currently only supported for TikTok):
trackMonetizationPolicyIds
on a track level and omit any policyId for that store from the
monetizationPolicyIds
on a release levelMonetization policy limitations
You can use these descriptions to better understand the monetization policies available to you.
Policy Name | Relevant Store | Description |
---|---|---|
Monetize in all countries | YT CID (307) | Receive royalties when tracks are used/played |
Track in all countries | YT CID (307) | Receive analytics for when tracks are used/played |
Custom Policy | YT CID (307) | Please contact support to discuss |
Claim Ad earnings | FRM (310) | Receive royalties when tracks are used/played |
Block | FRM (310) | Prevent videos with your tracks from being used/played. |
Monitor | FRM (310) | Receive analytics for when tracks are used/played |
NoTikTokScanning | TT (319) | Provide your sound recording to TikTok’s audio library for inclusion in videos, but do not enable scanning for videos in which it is embedded Use this when your track does not meet the suitability requirements |
Monetize | TT (319) | Scan for videos where your sound recording is being used and generate royalties from these claims |
BlockAccess | TT (319) | Scan for videos where your sound recording is being used and block them |
Use the addtoqueue
resource to specify which stores to distribute a release to and add the release to the distribution
queue.
Monetization Policies: In addition to simple distribution, Revelator provides the option to enforce monetization policies for your assets (such as tracking , blocking or claiming earnings) when they are used by others on YouTube (YouTube Content ID) or Facebook (Facebook Rights Manager).
In order to distribute to YouTube Content ID or Facebook Rights Manager, you must first specify a monetization policy for the relevant store. See Setting Distribution Options.
In order to enable this support, please contact your Revelator account manager.
When distributing a release to YouTube Content ID, you must always distribute the release to YouTube Music. Failing to do so will result in a suspension of your YouTube distribution privileges. Additionally, any takedown requests for YouTube Music must also specify YouTube Content ID. There can never be a situation where a release is distributed to YouTube Content ID when it is not distributed to YouTube Music; furthermore, YouTube Content ID cannot have fewer territorial rights than YouTube Music.
It is acceptable to distribute to YouTube Music without distributing to YouTube Content ID.
/distribution/release/addtoqueue
Parameter | Description |
---|---|
releaseId required | The ID of the release to add to the queue. This ID was returned in the /content/release/save request which created the release. |
An array of Revelator store IDs to distribute the release to,
Look up DSP IDs using the GET /common/lookup/stores
resource. Provide an access token to retrieve only the DSPs
enabled for a specific account.
Requests containing distribution stores with isActive == false
will fail.
If you are distributing to YouTube Content ID (307) and/or Facebook Rights Manager (310), please ensure that you have already set monetization policies. See Setting Distribution Options.
If you are distributing to YouTube Content ID (307), please ensure you are also distributing to YouTube Music (13). In other words, if the request body array includes ID 307, it must also include ID 13.
Releases in the distribution queue will not be sent to stores until a user of your parent account inspects and approves the releases in the Revelator web interface. This involves identifying fraudulent content and metadata style guide violations and preventing releases with these issues from being distributed.
You are responsible for providing acceptable release metadata. Failing to correct inappropriate metadata will result in stores rejecting your releases and will ultimately result in the suspension of your distribution privileges.
Use the distribution/store/all
resource to get the distribution status for a release.
If the distribution status indicates an error has occurred, please attempt to resolve the error with the information below. This may involve simply waiting for an error to resolve itself or editing metadata and redistributing. Please contact customer support with your releaseId(s) for additional assistance.
/distribution/store/all
Parameter | Description |
---|---|
releaseId optional | The ID of the release for which to get distribution information. This ID was returned in the /content/release/save request which created the release. Including this parameter narrows the response to only this release. |
status optional | The status of the releases for which to get distribution information. Please see the Query String Text in Distribution Statuses. Including this parameter narrows the response to only this status. |
Each object in the items
array represents a release being sent to a specific store. The releaseId
indicates the
release and the distributorStoreId
indicates the store (DSP). The status
and statusText
parameters in the
releaseStatus
object indicate the status.
The statuses below are ordered by their general progression through the distribution and takedown workflow.
Status | Status Text | Query String Text | Additonal Information |
---|---|---|---|
-13 | Rejected by Inspector | RejectedByInspector | Metadata for the release was rejected (in parent account). |
-11 | Parked/Hidden | Hidden | Release hidden from the metadata inspection queue (put aside to inspect later). |
-10 | Pending Approval | PendingApproval | Pending metadata inspection (before distribution is approved in the parent account). |
0 | Pending | Pending | Ready for Distribution (Start state for Distribution). |
4 | Waiting for Download Assets | WaitingForDownloadAssets | Waiting to download files. |
5 | Downloading Assets | DownloadAssets | Downloading files. |
6 | Downloading of Assets Failed | DownloadAssetsFailed | Downloading a file failed. |
8 | Waiting for Audio Encoding | PendingTransformation | Waiting for audio encoding. |
10 | Encoding Audio | TransformationInProgress | Encoding audio. |
11 | Encoding Audio Failed | TransformationFailed | Encoding audio failed. Re-queueing the release may fix the problem; if not, please contact customer support. |
20 | Waiting for Validation | WaitingForValidation | Waiting for metadata validation. |
21 | Validation Failed | ValidationFailed | Release has failed the DSP’s unique metadata validation. See the errorMessage for more information.
|
30 | Waiting for Package Creation | WaitingForPackageCreation | Waiting for package creation. |
31 | Creating Package | CreatingPackage | Creating the package. |
32 | Package Creation Failed | CreatingPackageFailed | The majority of the time, this indicates a temporary error that will resolve itself; this is due to the system optimizing for speed of delivery vs. 100% delivery on the first try. See the errorMessage for more information.
|
45 | Triage Pending | WaitingForRevelatorNetcoreDistributionDelivery | Triage Pending. |
46 | Triage in Progress | WaitingForIdentificationByNetcore | Triage in Progress. |
40 | Waiting for Upload | WaitingForUpload | Waiting for upload. |
41 | Uploading Package | Uploading | Uploading the package. |
42 | Package Upload Failed | UploadingFailed | Uploading the package failed. Re-queueing the release may fix the problem; if not, please contact customer support. |
50 | Delivered to DSP | Delivered | Uploaded/delivered to the DSP. |
60 | On Store | OnStore | DSP has provided a link. Confirmed as available on the DSP. Currently, only 4 DSPs support an update to this status. The rest will remain in status 50 . |
70 | Takedown Pending | TakedownWaitingForPackageCreation | Takedown pending. |
71 | Takedown Package Creation in Progress | TakedownCreatingPackage | Takedown package creation in progress. |
75 | Waiting for Enqueue | TakedownWaitingForRevelatorNetcore | Waiting for enqueue. |
76 | Takedown Enqueued | TakedownEnqueuedByRevelatorNetcore | Takedown enqueued. Waiting for upload. |
72 | Takedown Uploading | TakedownUploading | Takedown upload in progress. |
77 | Takedown Failed | TakedownError | Taking down the release failed. Re-queueing the takedown may fix the problem; if not, please contact customer support. |
78 | Takedown Delivered | TakedownCompleted | Takedown delivered. |
79 | Removed from Store | RemovedFromStore | Takedown confirmed by DSP. |
100 | System Error | ProcessError | Processing error. |
In many cases, it is possible to update a release without a full takedown. Stores do not require a full takedown as long as the following are all true:
If any of the above need to be changed, you must issue a takedown for the release and create the release as new.
/distribution/release/takedown
Takedown a release from one or more stores.
Parameter | Type | Description |
---|---|---|
releaseId required | integer | The ID of the release to takedown. |
An array of Revelator store IDs to takedown. Look up DSP IDs using GET /common/lookup/stores (with an access token) |