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.8

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.8
File Size Uploaded
c2pa_python-0.37.8.tar.gz 113.0 kB Details

Built distributions (wheels)

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

Total release size: 243.6 MB

Release files / c2pa_python-0.37.8.tar.gz

Download URL c2pa_python-0.37.8.tar.gz
Size 113.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c52eb07244558a5997fe61b6ed8d879b4f46f38642dd11956bcedf888c58649c
BLAKE2b-256 checksum
How to use checksums
1f32e93959d17db5af4078532f587b9638e87b6429ca0b51348a8ac6ad99e471
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 Aug 27, 2026.

Transparency log

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

Download URL c2pa_python-0.37.8-py3-none-win_arm64.whl
Size 83.9 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
af827698ead013ca20e829e3c9fe1846b548ae77d1ab84762118fbde340e3f0a
BLAKE2b-256 checksum
How to use checksums
e1df3e59b7813be65678d28f88a7a0c7a13ba8c983fe2a1ecf406959dc7b88df
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 Aug 27, 2026.

Transparency log

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

Download URL c2pa_python-0.37.8-py3-none-win_amd64.whl
Size 86.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
5cf1dadd1c8de7da298db9c62c432180d7185a31e81a96dfae7bce7944b21ddd
BLAKE2b-256 checksum
How to use checksums
44cd376d90d3073ad975d38a42bdbcb42cec071bff3b6831dd5a6b807526a1df
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 Aug 27, 2026.

Transparency log

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

Download URL c2pa_python-0.37.8-py3-none-manylinux_2_28_x86_64.whl
Size 14.7 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
20742bd702d09476390dc73a375883990291ea458af8f3e61ef48fa9928f2313
BLAKE2b-256 checksum
How to use checksums
8ce8ca03c21e253e95a3aaab472697f1c0c766af852cb643879b4928f6c57298
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 Aug 27, 2026.

Transparency log

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

Download URL c2pa_python-0.37.8-py3-none-manylinux_2_28_aarch64.whl
Size 14.1 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
e8c04f4220194a3392dda290be96181ffc94ee5008e87e1fa96c390ec4f9c53c
BLAKE2b-256 checksum
How to use checksums
9abd934002a34aa76e5136508b524734dc3c4719f6d87b5a98cf93cbf4917d05
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 Aug 27, 2026.

Transparency log

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

Download URL c2pa_python-0.37.8-py3-none-macosx_11_0_arm64.whl
Size 13.9 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ee4fbbe3b98dd4349cc9c60db3c4fb1c349c65b5c72fb89a0de403ca778d3d0d
BLAKE2b-256 checksum
How to use checksums
245ced3000ca3de522c17797482a90cd64f57cdd2fb9b21a49910c04327954bf
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 Aug 27, 2026.

Transparency log

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

Download URL c2pa_python-0.37.8-py3-none-macosx_10_9_x86_64.whl
Size 14.2 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
d3ff8da9be41c6f74218872f8ebf0b0020dbc00202bb30fda751422418f679c5
BLAKE2b-256 checksum
How to use checksums
c7b73519bbb3735adce56eb0836d25fcf4e00c36c4e5cd480ee5277aadba18ed
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 Aug 27, 2026.

Transparency log

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

Download URL c2pa_python-0.37.8-py3-none-macosx_10_9_universal2.whl
Size 16.2 MB
Tags Python 3 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
8dae7d198dd583de3963529b60665e611e36ddca677f85700147d3bdbc885b27
BLAKE2b-256 checksum
How to use checksums
676a252d8d072ac4192df8da28771be64a54cb4ea73f08f3ca1f2b7fafa823a5
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 Aug 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.37.8 This release

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