Skip to main content

C2PA Python library

The c2pa-python repository provides a Python library that can:

  • Read and validate C2PA manifest data from media files in supported formats.
  • Create and sign manifest data, and attach it to media files in supported formats.

Features:

  • Create and sign C2PA manifests using various signing algorithms.
  • Verify C2PA manifests and extract metadata.
  • Add assertions and ingredients to assets.
  • Examples and unit tests to demonstrate usage.

Prerequisites

This library requires Python version 3.10+.

Package installation

Install the c2pa-python package from PyPI by running:

pip install c2pa-python

To use the module in Python code, import the module like this:

import c2pa

Building from local c2pa-rs sources

Using a virtual environment with local builds

The make targets honor an active virtualenv. Create a virtual environment ./.venv and activate it before running them so commands use the project interpreter rather than the global Python interpreter:

make create-venv && source .venv/bin/activate

Build steps

By default the build downloads a prebuilt native library from a c2pa-rs release. To test the Python bindings against a local, unreleased c2pa-rs checkout, you can instead build the native library from source.

Prerequisites:

Point C2PA_RS_PATH at your c2pa-rs checkout and run the build-from-source target:

export C2PA_RS_PATH=/path/to/c2pa-rs
make build-from-source C2PA_RS_PATH=$C2PA_RS_PATH

This does a clean build of the c2pa-c-ffi crate (with the file_io feature, which the Python wrapper requires), stages the resulting library under both artifacts/ and src/c2pa/libs/, and installs the package in editable mode, replacing any prebuilt artifacts from make download-native-artifacts. By default, the build uses the release profile; to build the debug profile instead, pass EXTRA_BUILD_ARGS="--debug":

make build-from-source C2PA_RS_PATH=$C2PA_RS_PATH EXTRA_BUILD_ARGS="--debug"

Note on targets for macOS

On macOS this produces a universal (arm64+x86_64) library by default, which requires both Rust targets:

rustup target add aarch64-apple-darwin x86_64-apple-darwin

To build a single-architecture library instead, set C2PA_LIBS_PLATFORM to a specific platform (for example aarch64-apple-darwin).

Examples

See the examples directory for some helpful examples:

  • examples/read.py shows how to read and verify an asset with a C2PA manifest.
  • examples/sign.py shows how to sign and verify an asset with a C2PA manifest.
  • examples/training.py demonstrates how to add a "Do Not Train" assertion to an asset and verify it.

API reference documentation

Documentation is published at github.io/c2pa-python/api/c2pa.

To build documentation locally, refer to this section in Contributing to the project.

Contributing

Contributions are welcome! For more information, see Contributing to the project.

License

This project is licensed under the Apache License 2.0 and the MIT License. See the LICENSE-MIT and LICENSE-APACHE files for details.

Release files for c2pa-python 0.37.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for c2pa-python 0.37.12
File Size Uploaded
c2pa_python-0.37.12.tar.gz 113.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for c2pa-python 0.37.12
File
c2pa_python-0.37.12-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
c2pa_python-0.37.12-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
c2pa_python-0.37.12-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
c2pa_python-0.37.12-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
c2pa_python-0.37.12-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
c2pa_python-0.37.12-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details
c2pa_python-0.37.12-py3-none-macosx_10_9_universal2.whl Python 3 none macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 249.5 MB

Release files / c2pa_python-0.37.12.tar.gz

Download URL c2pa_python-0.37.12.tar.gz
Size 113.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a7d3801d7251170ab71b1fb09ab23afb27537914c1f8038bd80f2df302781200
BLAKE2b-256 checksum
How to use checksums
af1947e6d3bcac7079844cf70b150927866f4e56e710e23a2ae3ff1a1057c933
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / c2pa_python-0.37.12-py3-none-win_arm64.whl

Download URL c2pa_python-0.37.12-py3-none-win_arm64.whl
Size 85.3 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
e1af7ba1c8860b53292c20106fbf39bc68483b712989e0ff11c4d09f85b31e0e
BLAKE2b-256 checksum
How to use checksums
339232deccfa8d1d048112f16576e832def3b06dc55d039ecc9602416aa90fab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / c2pa_python-0.37.12-py3-none-win_amd64.whl

Download URL c2pa_python-0.37.12-py3-none-win_amd64.whl
Size 87.9 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
02c327e5c25e32dd4f78b6580995f92a39cc341531e420b9e1ab9a5340aa1833
BLAKE2b-256 checksum
How to use checksums
bd4700b68ac28dd270e02e6787d55aa9269f309111a4b40c752323e698c9d159
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / c2pa_python-0.37.12-py3-none-manylinux_2_28_x86_64.whl

Download URL c2pa_python-0.37.12-py3-none-manylinux_2_28_x86_64.whl
Size 15.3 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
1bb5607529b6acb4134e10c07dbc030b566dba9e66da7f9fe6265a77733191f6
BLAKE2b-256 checksum
How to use checksums
cf5d828d12bf83d2352531e4084df25673005d9d2774a69444423488a7e57058
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / c2pa_python-0.37.12-py3-none-manylinux_2_28_aarch64.whl

Download URL c2pa_python-0.37.12-py3-none-manylinux_2_28_aarch64.whl
Size 14.7 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
a3883b5b8d1c1f27a7e85cea07ea3b38b331427ba3387ac56680e32fe6aeb302
BLAKE2b-256 checksum
How to use checksums
88b1138f61133c37fe34226b2596e2c763ecd3c5788766f82a2e48e41faa01ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / c2pa_python-0.37.12-py3-none-macosx_11_0_arm64.whl

Download URL c2pa_python-0.37.12-py3-none-macosx_11_0_arm64.whl
Size 14.4 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5a2cd238ef05b640b2b7a93eb74bec1a70bfad15a4ecd2c88786809ddae51746
BLAKE2b-256 checksum
How to use checksums
1bfb92fbf052919fae2e843d677cd9efbea2feec96a399d6aad265a2585dcd93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / c2pa_python-0.37.12-py3-none-macosx_10_9_x86_64.whl

Download URL c2pa_python-0.37.12-py3-none-macosx_10_9_x86_64.whl
Size 14.8 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
ce3d627f88b4af82f73e08e3946dbc156b93a2dc0f97d5f6666241d5ee5c20c9
BLAKE2b-256 checksum
How to use checksums
689e21b24a641b88c5284c9f1b42f38ef9cc63fe7668e7c2b411f61f4f1c03db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / c2pa_python-0.37.12-py3-none-macosx_10_9_universal2.whl

Download URL c2pa_python-0.37.12-py3-none-macosx_10_9_universal2.whl
Size 16.9 MB
Tags Python 3 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
d835ed23eccd4f4ad1d36a53539b28cb2eafb80a1c1fdee04b8530316a187731
BLAKE2b-256 checksum
How to use checksums
5451a39c2efbc9f5d88c0f7e644f5a5406ba936253b7028e5a12537b5d634f18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.37.12 This release

8 release files

0.37.8

8 release files

0.37.7

8 release files

0.37.6

8 release files

0.37.2

8 release files

0.37.1

8 release files

0.37.0

8 release files

0.36.0

8 release files

0.35.2

8 release files

0.35.1

8 release files

0.35.0

8 release files

0.34.0

8 release files

0.32.9

7 release files

0.32.8

7 release files

0.32.7

7 release files

0.32.4

7 release files

0.32.3

7 release files

0.30.0

7 release files

0.29.0

7 release files

0.28.0

7 release files

0.27.1

7 release files

0.27.0

7 release files

0.23.1

7 release files

0.23.0

7 release files

0.22.0

7 release files

0.21.0

7 release files

0.18.0

5 release files

0.17.0

5 release files

0.16.0

5 release files

0.15.0

5 release files

0.14.0

5 release files

0.13.0

5 release files

0.12.1

5 release files

0.12.0

5 release files

0.11.1

5 release files

0.11.0

5 release files

0.10.0

4 release files

0.9.0

6 release files

0.8.3

1 release file

0.8.0

6 release files

0.6.1

7 release files

0.6.0

7 release files

0.5.3

7 release files

0.5.2

7 release files

0.5.1

7 release files

0.5.0

7 release files

0.4.0

7 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

3 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page