VCC
Adapters
A list of available adapters...
Transformers
Adapter | Adapter name | Description |
---|---|---|
Image compositor | compositor | Composites a HTML template with the image asset |
Photo flip | photo_flip | Flips or rotates the image asset |
Video add audio | video_add_audio | Adds a new audio channel to the video asset |
Video add overlay | video_add_overlay | Adds an image overlay to the video asset |
Video boomerang | video_boomerang | Reverses the video asset and stitches it to the end of the original |
Video FPS | video_fps | Changes the frames per second for the video asset |
Video GIF | video_gif | Converts the video asset into a GIF |
Video join | video_join | Joins a video file (in a given position) to the video asset |
Video remove audio | video_remove_audio | Removes the audio channel from the video asset |
Video scale | video_scale | Scales the video asset |
Video speed | video_speed | Changes the speed of a video asset |
Video thumbnail | video_thumbnail | Captures a frame from the video asset as a PNG |
Destinations
Adapter | Adapter name | Description |
---|---|---|
Giphy | giphy | Uploads asset to Giphy |
OOS | oos | Uploads asset to Oracle Object Storage |
OSS | oss | Uploads asset to Alibaba Cloud OSS (Object Storage Service) |
S3 | s3 | Uploads asset to S3 |
Vimeo | vimeo | Uploads asset to Vimeo |
Webhook | webhook | Uploads asset to a defined URL |
YouTube | youtube | Uploads asset to YouTube |
Adapter configurations
It is recommended that these configurations are created in XPKit Portal, not via API requests. Read on if you do need to configure via the VCC API.
Each configuration
requires adapter_name and adapter_config fields. You should use one of the adapter names from the tables above. The adapter configs required for the each adapter are described below.
VCC configuration
structure
{
"configuration_name": "",
"experience_id": "",
"adapter_name": "" ,
"adapter_config": {
"auth": {},
"defaults" : {}
}
}
Note: values provided under the adapter_config.defaults field below can be overwritten at runtime using the extras parameters in a task trigger request.
Image compositor
{
"adapter_config": {
"auth": {},
"defaults": {
"profile_data": "(array of strings) - List of `profile` fields required as personalisation tags in the template. Default: ['first_name', 'last_name'].",
"additional_context": "(object) - key/value pairs of personalisation tags to be used in the template. Example: {'voucher_code': '123-999-abc'}.",
"profile_id": "(array of strings) - Provide (as the only element in an array) the UUID of the `profile` to use to fetch the profile_data.",
"html": "(string) - Required - HTML template content (containing any personalisation tags).",
"width": "(number) - Required - measurement in pixels",
"height": "(number) - Required - measurement in pixels.",
"hq_output": "(boolean) - If true the pixel density of the composited image will be doubled (width x 2, height x 2). Only supported with small images (less than 800 pixels in height and width). Default: false",
"transparency": "(boolean) - If true transparency will be enabled in the composited image. Default: false"
}
}
}
Note: to reference fields provided in profile_data and additional_context in the HTML template use tags with double curly brackets (or the email provider's tag syntax). Examples: {{ first_name }}
and {{ voucher_code }}
. The asset to be composited can be referenced using {{ image_url }}
.
Photo flip
{
"adapter_config": {
"auth": {},
"defaults": {
"method": "(string) - one of FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM, ROTATE_90, ROTATE_180, ROTATE_270 or TRANSPOSE. Default: FLIP_LEFT_RIGHT"
}
}
}
Video add audio
{
"adapter_config": {
"auth": {},
"defaults": {
"audio_encoder": "(string) - Required. Default: aac",
"video_encoder": "(string) - Required. Default: h264",
"audio_file_name": "(string) - Required. VCC `asset`",
"output_extension": "(string) - Required. Default: mp4",
"overwrite_video_audio": "(boolean) - true = overwrites existing audio channel, false = adds a new audio channel to video. Default: true"
}
}
}
Video add overlay
{
"adapter_config": {
"auth": {},
"defaults": {
"video_encoder": "(string) - Required. Default: h264",
"overlay_position": "(string) - Required. Default: 0:0",
"overlay_file_name": "(string) - Required. VCC `asset`",
"output_extension": "(string) - Required. Default: mp4"
}
}
}
Video boomerang
{
"adapter_config": {
"auth": {},
"defaults": {
"repeat": "(number) - transformed file is appended to itself for the number specified. Default: 0"
}
}
}
Video FPS
{
"adapter_config": {
"auth": {},
"defaults": {
"fps": "(number) - Required. New FPS setting."
}
}
}
Video GIF
{
"adapter_config": {
"auth": {},
"defaults": {
"framerate": "(number) - Required.",
"width": "(number) - Required - measurement in pixels.",
}
}
}
Video join
Note: provide only one JSON object in the video_parts array. Only the first object in the array will be used.
{
"adapter_config": {
"auth": {},
"defaults": {
"output_framerate": "(number) - Required.",
"output_resolution": "(string) - Required. Default: 1280x720",
"video_encoder": "(string) - Required. Default: h264",
"output_extension": "(string) - Required. Default: mp4",
"aspect": "(string) - Required. Default: 16:9",
"retain_audio": "(boolean) - set true if both videos have audio and it should be retained. Default: false",
"video_parts": [
{
"position": "(string) - Required. Enum - A, B. A = After, B = Before. Default: B",
"video_file_name": "(string) - Required. VCC `asset`"
}
]
}
}
}
Video remove audio
Note: this adapter has no configurable options
{
"adapter_config": {
"auth": {},
"defaults": {}
}
}
Video scale
{
"adapter_config": {
"auth": {},
"defaults": {
"square_pixels": "(boolean) - Required. Default: false.",
"new_width": "(number) - Required - measurement in pixels. Default: 1280",
"new_height": "(number) - Required - measurement in pixels. Default: 720",
}
}
}
Video speed
{
"adapter_config": {
"auth": {},
"defaults": {
"multiplier": "(float) - Required. Default 0.5"
}
}
}
Video thumbnail
{
"adapter_config": {
"auth": {},
"defaults": {
"time": "(number) - Required - Capture time in seconds. Default: 30",
"size": "(string) - Required - Thumbnail size. Default: 480x320",
}
}
}
Giphy
{
"adapter_config": {
"auth": {
"api_key": "(string) - Required"
},
"defaults": {
"tags": "(string) - Required - Comma separated list of tags.",
"username": "(string) - Required.",
"is_hidden": "(boolean) - Required. Default: false",
}
}
}
OOS (Oracle Object Storage)
{
"adapter_config": {
"auth": {
"user_ocid": "(string) - Required",
"namespace": "(string) - Required",
"tenancy_ocid": "(string) - Required",
"region": "(string) - Required",
"key_content": "(string) - Required - Private key contents",
"fingerprint": "(string) - Required",
"pass_phrase": "(string) - Pass phrase for the private key (if applicable)",
},
"defaults": {
"file_prefix": "(string)",
"bucket_name": "(string) - Required.",
"base_url": "(string)",
"public": "(boolean) - Ensure your Oracle bucket policy matches what you provide here. Default: false",
"expires": "(number) - In minutes how long should URLs be valid for (used if public = false). Default: 10"
}
}
}
OSS (Alibaba Object Storage Service)
{
"adapter_config": {
"auth": {
"access_key": "(string) - Required",
"secret_key": "(string) - Required",
},
"defaults": {
"file_prefix": "(string)",
"bucket_name": "(string) - Required.",
"bucket_url": "(string)",
"bucket_endpoint": "(string) - Required. Example: <bucket-name>.oss-cn-hangzhou.aliyuncs.com",
"force_download": "(boolean) - Default: false",
"public": "(boolean) - Default: false",
}
}
}
S3
{
"adapter_config": {
"auth": {
"access_key": "(string) - Required",
"secret_key": "(string) - Required",
},
"defaults": {
"file_prefix": "(string)",
"bucket_name": "(string) - Required.",
"bucket_url": "(string) - Example: https://<bucket-name>.s3-eu-west-1.amazonaws.com",
"force_download": "(boolean) - Default: false",
"public": "(boolean) - Default: false",
}
}
}
Vimeo
Note: see the Vimeo adapter in XPKit Portal for instructions on how to authenticate.
{
"adapter_config": {
"auth": {
"client_id": "(string) - Required",
"client_secret": "(string) - Required",
"access_token": "(string) - Required"
},
"defaults": {
"privacy_status": "(string) - Enum - anybody, disable, nobody, unlisted. Default: anybody",
"album_name": "(string) - Required.",
"album_desc": "(string)",
"tags": "(string)",
"default_title": "(string)",
"default_desc": "(string)"
}
}
}
Webhook
{
"adapter_config": {
"auth": {},
"defaults": {
"endpoint": "(string) - Required",
"method": "(string) - Required. Enum - PATCH, POST, PUT",
"file_name": "(string) - Required - Name of the HTTP param that should contain the asset",
"expected_response_codes": "(array of numbers) - Default: [200, 201]",
"headers": "(object) - provide as key/value pairs. Example: {'Authorization': 'Basic dGVzdDpwYXNzd29yZDEyMw=='}.",
"additional_data": "(object) - Additional HTTP params, provide as key/value pairs. Example: {'name': 'VCC generated asset'}."
}
}
}
YouTube
Note: see the YouTube adapter in XPKit Portal for instructions on how to authenticate.
{
"adapter_config": {
"auth": {
"secrets": "(string) - Required - JSON - See XPKit Portal for providing this value",
"token": "(string) - Required - JSON - See XPKit Portal for providing this value"
},
"defaults": {
"title": "(string) - Required.",
"channel": "(string) - Required.",
"description": "(string) - Required.",
"category": "(number) - See XPKit Portal for available options",
"keywords": "(array of strings) - Required.",
"privacy_status": "(string) - Enum - private, public, unlisted. Default: private",
"daily_bulk_limit": "(number) - Required - See XPKit Portal for providing this value. Default: 50",
"daily_max": "(number) - Required - See XPKit Portal for providing this value. Default: 100",
}
}
}