Skip to main content

Implementation of C2PA: Coalition for Content Provenance and Authenticity.

Project description


c2pa-concept-full (photo source: C2PA)

PyC2PA is Python implementation of C2PA (Coalition for Content Provenance and Authenticity) addressing the prevalence of misleading information online through the development of technical standards for certifying the source and history (or provenance) of media content.

Quick Trial

  1. Download the testing photo: meimei-fried-chicken-cai-cai-cai.jpg

  2. Go to the CAI verification website and upload the photo.

  3. You should see the C2PA information (3 injections) like this:



$ python3 -m pip install pyc2pa


In command line run:

$ c2pa [-a ASSERTION] [--store-label STORE_LABEL] [--recorder RECORDER] [-k KEY] [-s SIG] [-o OUTPUT] [-i INJECT]

Example: generate meimei-fried-chicken-cai.jpg containing single C2PA injection.

$ c2pa \
    -a cai.location.broad.json \
    -a cai.rights.json \
    -a cai.claim.thumbnail.jpg.jpg \
    -a cai.acquisition.thumbnail.jpg.jpg \
    -a \
    -a starling.integrity.json \
    --recorder "Starling Capture using Numbers Protocol" \
    --store-label "cb.starling_1" \
    -k certificate.p12 \
    -s endesive \
    -i meimei-fried-chicken.jpg

Quick Start

In pyc2pa/utils/, there are two examples showing how to do single injection and multiple injection programmatically.

# Prepare testing input JPEG photo and its thumbnail.
# Assuming that testing input JPEG is ~/meimei-fried-chicken.jpg
$ cd pyc2pa/utils/
$ cp ~/meimei-fried-chicken.jpg .
$ convert -resize 50% meimei-fried-chicken.jpg meimei-fried-chicken-thumbnail.jpg

# Run single injection example
# (download meimei-fried-chicken-cai.jpg from IPFS)
# output: meimei-fried-chicken-cai.jpg
$ python3

# Run multiple injection example
# output: meimei-fried-chicken-cai-cai-cai.jpg
$ python3 meimei-fried-chicken.jpg

Development Tips

  1. Currently, the main branch is based on C2PA spec draft v0.5 (compatible with the latest C2PA spec draft).
  2. The feature-support-c2pa-photo branch follows the latest C2PA spec implementation.
  3. pyc2pa/utils/ contains examples of single injection and multiple injection.
  4. pyc2pa/utils/digital-signature/ contains detailed documents and example codes how to create and verify a C2PA signature.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for c2pa, version 1.4.1
Filename, size File type Python version Upload date Hashes
Filename, size c2pa-1.4.1-py3-none-any.whl (41.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size c2pa-1.4.1.tar.gz (26.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page