Overview
Hay Festival 2025 - Vocalise Booth Scenario
This API documentation covers the integration between Vocalise and Numbers Protocol for the Hay Festival 2025 voice cloning experience:
- Participants visit the Vocalise booth and record their voice
- Vocalise AI generates videos using the participant's voice
- Participants can choose to download their AI-generated video through a QR code
- When downloaded, the video is processed through Numbers Protocol to:
- Register the video with digital provenance
- Add C2PA watermarking indicating AI generation
- Provide download link to the participant
- If not downloaded, the video is automatically deleted
Process Flow
Quick Start
To use the Vocalise API, you'll need:
- A Capture Token (Get your token here)
- Video file to process
- Preview image (optional)
API Endpoints
1. Register Asset
Register a video with Numbers Protocol for C2PA injection.
Reference: Initial Asset Registration Documentation
Parameters
Name | Type | Description | Required |
---|---|---|---|
asset_file | File | The video file to be registered | Required |
image_file | File | Preview image for the video (e.g., thumbnail) | Optional |
headline | String | Title for the video file | Optional |
caption | String | Description for the video file | Optional |
digital_source_type | String | Set to "digitalUpload" for Vocalise videos | Required |
tag | String | Event-specific tag (e.g., "vocalise@hay2025") | Optional |
nit_commit_custom | JSON | AI generation and license metadata including:
Reference: Numbers Protocol AssetTree Documentation |
Optional |
signed_metadata | JSON | File verification data including:
|
Required |
meta | JSON | Additional metadata that stores version information and GPS coordinates:
{
"proof": {
"hash": "SHA256_HASH_OF_FILE",
"mimeType": "MIME type of the file"
},
"information": [
{
"provider": "Capture API",
"name": "version",
"value": "v3"
},
{
"provider": "InfoSnapshot",
"name": "Current GPS Latitude",
"value": "51.9580"
},
{
"provider": "InfoSnapshot",
"name": "Current GPS Longitude",
"value": "-3.2030"
}
]
}
|
Optional |
2. Download C2PA
Get the C2PA-injected version of your video.
Reference: Download C2PA injection files
Headers
Name | Type | Description | Required |
---|---|---|---|
Authorization | String | Your Capture token in format: "token YOUR_CAPTURE_TOKEN" | Required |
Content-Type | String | Set to "application/json" | Required |
Path Parameters
Name | Type | Description | Required |
---|---|---|---|
ASSET_ID | String | The ID received from asset registration | Required |
3. Delete Asset (Optional)
Remove an asset in Numbers database. If an asset is removed, all information stored on Numbers service will be deleted. However, the metadata register on Numbers blockchain will still exist.
Note: This API is an optional one. Since one asset can only be registered on Numbers once, if there is a test asset that has a need to be used multiple times, can use this API to delete the record on Numbers backend and registered again.
Headers
Name | Type | Description | Required |
---|---|---|---|
Authorization | String | Your Capture token in format: "token YOUR_CAPTURE_TOKEN" | Required |
Path Parameters
Name | Type | Description | Required |
---|---|---|---|
ASSET_ID | String | The ID of the asset to delete | Required |
4. Query User's Assets (Optional)
List the assets that the user has permission to view.
Reference: Query User's Assets
Headers
Name | Type | Description |
---|---|---|
Authorization | String | Your Capture token in format: "token YOUR_CAPTURE_TOKEN" |
Query Parameters
Name | Type | Description |
---|---|---|
id | String | Unique ID of the asset. |
cid | String | The Nid of the asset. |
caption | String | The caption of the asset. |
headline | String | The headline of the asset. |
tag | String | Comma-separated tags to filter assets (e.g., photo, art). |
public_access | Boolean | Whether the asset is publicly accessible. |
owner | String | Email of the asset's current owner. |
asset_file_name | String | The file name of the asset. |
verification_result | String | The verification result of the asset. |
integrity_verification_hash | String | The integrity verification hash of the asset. |
proof_hash | String | The proof hash tag of the asset. |
is_original_owner | Boolean | Whether the asset's current owner is the same as its creator. |
limit | Integer | Number of results to return per page. |
offset | Integer | The initial index from which to return the results. |
uploaded_at_start | String | Filter assets uploaded on or after this date and time. |
uploaded_at_end | String | Filter assets uploaded on or before this date and time. |
order_by | String | Value: "source_transaction" Change default ordering field. |
Preliminary Experiment
API Processing Time Analysis
Based on preliminary testing, here are the observed processing times for different file sizes:
File Size | Registration API | C2PA Generation API |
---|---|---|
7M ~ 9M | 15 - 25 seconds | 6 - 8 seconds |
~15M | 17 - 36 seconds | 8 - 17 seconds |
Note: Processing times may vary depending on network conditions and server load. Please account for these processing times when implementing your integration workflow.
References
Authentication & Setup
-
About Capture
Overview of Capture platform and its capabilities
-
Get your Capture Token
Learn how to obtain and manage your Capture authentication token
API Documentation
-
Capture SDK Documentation
Complete SDK documentation and integration guides
-
Initial Asset Registration
Detailed guide for registering assets with Numbers Protocol
-
Query User's Assets
Query assets that the user has permission to view
-
Download C2PA injection files
Guide to C2PA file generation and supported file types
-
Numbers Protocol AssetTree
Learn about AssetTree structure and metadata format
Additional Resources
-
Capture FAQ
Frequently asked questions about Capture platform