Numbers Loading Icon

Create C2PA Injected Files Easily with Numbers Protocol

Posted in:

Tools
Create C2PA Injected Files Easily with Numbers Protocol

Introduction

In this Developer Tutorial, we will be covering how to generate a C2PA injected jpeg file with Numbers Protocol.

For context, C2PA, or Coalition for Content Provenance and Authenticity, is a content provenance standard born from the desire to address the increasing prevalence of misinformation surrounding our digital media. C2PA builds off the works of Adobe and Microsoft to create a universal open source metadata standard for digital media. If you are interested in learning more about C2PA consider checking out their website to learn more.

To ensure a digital media’s information is verifiable, the metadata is injected directly into the file itself. This allows the media file to carry its own history as it traverses the web as the metadata is embedded directly into the file itself as long as the file is not manipulated or adjusted in any way. 

Tutorial Contents

In this tutorial we will walk you through the following:

  1. Register a Digital Media File with Numbers Protocol
  2. Downloading C2PA injected file
  3. Verifying C2PA contents on the C2PA verification site

Alternatively, if you prefer video content you can check it below.

Prerequisites

In order to register assets with Numbers Protocol, you will need to create a Capture account and acquire your Capture Authorization Token. You can refer to these materials if you do not have a Capture account or do not know how to acquire your authorization token.

Register Digital Media File with Numbers Protocol

To register a media file with Numbers Protocol, we will be utilizing the Capture API, specifically the Registration API action. Using your preferred API platform or sending a curl request we can send the following POST request:

POST https://api.numbersprotocol.io/api/v3/assets/

For this API call we will need to populate our Header with the following parameters. For most developers we will only fill in our Capture Authorization Token.

Header
Authorization (string) token <Capture Token>
Content-Type (string) multipart/form-data

For the Register API action, the only required Body field is asset_file. If you wish to provide additional information such as metadata or captions you are free to do so. The following is the complete list of Body parameters you can send with the Register API action.

A successful API response will output a JSON with an id field. See the example below:



This value is important and we will be needing it later. 

Acquiring the C2PA injected file

Now that we have successfully registered an asset with Numbers Protocol we can easily acquire its C2PA injected file. To do this, we will be using another Capture API, specifically the Download asset with C2PA injection API action. Using your preferred API platform or sending a curl request we can send the following POST request:

POST https://dia-backend.numbersprotocol.io/api/v3/assets/{cid}/c2pa/

For this API call we will need to populate our Header with our Authorization Token:

Authorization (string) Token <Capture Token>

Finally we will be replacing the cid path parameter with the id acquired from the previous Register Action. A successful API request will output a response containing a url and cid. 

Navigating to the url we can see the C2PA injected image:

Verifying C2PA contents on the C2PA verification site

The beauty of C2PA is the image itself appears unchanged, but in reality embedded in the media itself is metadata. At the same time it is challenging to tell if the image we just downloaded is a C2PA image. Luckily, C2PA has provided a verification site we can leverage to check our images contents.

By navigating to https://contentcredentials.org/verify we can upload our C2PA image and verify its contents.

The left panel contains a summary of the embedded information. See below for a full view of the embedded C2PA contents:

Final Remarks

C2PA is a powerful content standard that is open source and has the backing from industry leaders. In this tutorial we covered how we can easily generate a piece of media with content provenance according to the C2PA standard utilizing Capture API. If this developer tutorial sparks your interest in other Capture API functions consider checking out our other developer tutorials. We are always working to create new resources for developers.

Numbers Protocol Gitbook: https://docs.numbersprotocol.io/

Capture Gitbook: https://docs.captureapp.xyz/

You're signed up! Watch you inbox for updates.
Oops! Something went wrong while submitting the form.