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

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

Built distributions (wheels)

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

Total release size: 243.9 MB

Release files / c2pa_python-0.37.10.tar.gz

Download URL c2pa_python-0.37.10.tar.gz
Size 113.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4c383fe719d37f1bcb7434abb51fc56e3cc58f35bacc17287cf2fb083275805d
BLAKE2b-256 checksum
How to use checksums
f6e12917bd9ed1582d42903072c405c8787dcb1ce85bbb3b38aaeca3c2b2b61f
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 4, 2026.

Transparency log

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

Download URL c2pa_python-0.37.10-py3-none-win_arm64.whl
Size 84.1 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
447c76a3e7ee40e2da55b4e61471d3bbc019e309716544db6e947f1fc9e5e303
BLAKE2b-256 checksum
How to use checksums
864a8ad03f9316fc8b36d3a21c641ec4b0859714a43102be0bd4bd7587398494
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 4, 2026.

Transparency log

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

Download URL c2pa_python-0.37.10-py3-none-win_amd64.whl
Size 86.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
25ced040898ef3374e110b91e7d3754777950b5e992a87cde96937fa8ffa848a
BLAKE2b-256 checksum
How to use checksums
6003502ffca6024e50a83d4ac37b842dd59b095e23e0e1e84511ca6abfc72a71
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 4, 2026.

Transparency log

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

Download URL c2pa_python-0.37.10-py3-none-manylinux_2_28_x86_64.whl
Size 14.8 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
a24d600a5d6a0759ae48a5a003690f7edfc175bdb86eca860016aef400778e61
BLAKE2b-256 checksum
How to use checksums
9a54815f9b116153f46647413007838eb913b1711badcf5ae8d0e65eaf512287
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 4, 2026.

Transparency log

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

Download URL c2pa_python-0.37.10-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
a96d87f45ea7986f31018b6cdbd88a9932ddbf14f551b8e850481373bf9ec7b2
BLAKE2b-256 checksum
How to use checksums
3c8415f0321294575edc48b43c8c6f613e60ad8e1038262ed77278436b16b870
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 4, 2026.

Transparency log

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

Download URL c2pa_python-0.37.10-py3-none-macosx_11_0_arm64.whl
Size 13.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f839cad2b43f2a48240c5ce8b3edb31c026f6dbcb2e79b896784348ebd7c5246
BLAKE2b-256 checksum
How to use checksums
de8ae804d964eaf14bb86ddf16e62a7ca173dfbc9f067c976f94e297dfe861ba
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 4, 2026.

Transparency log

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

Download URL c2pa_python-0.37.10-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
fdaa9e0d8fd1090274c501649ee471626db02db2a6bfe292ca890db41e23b346
BLAKE2b-256 checksum
How to use checksums
bb803ed4c3e1b1efc754c2a38a830e269cd0edee76297cb036b046c2b6f7100e
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 4, 2026.

Transparency log

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

Download URL c2pa_python-0.37.10-py3-none-macosx_10_9_universal2.whl
Size 16.1 MB
Tags Python 3 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
8819dfc2992697abe8f0c6422230ddd7f39e7631c11924b02120e6c2b8a79216
BLAKE2b-256 checksum
How to use checksums
fdf9275640639c7dd1bea2e38d2ac0ffd09d42244893b09b82e4e4a1cfd77256
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 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.37.10 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