A Streamlit application designed to inspect, summarize, and visualize Content Credentials (C2PA) embedded in digital files.
This tool goes beyond simple metadata extraction; it traverses the manifest store to determine the true origin of an asset, identifying whether it was created by a camera, artificial intelligence, software, or a composite of multiple sources.
- Deep Origin Traversal: Navigates the C2PA "ingredient" graph to find the original creation events, not just the most recent edit.
- Human-Readable Summaries: Maps complex technical URIs (like http://cv.iptc.org/newscodes/digitalsourcetype/algorithmicMedia) to clear descriptions (e.g., "Created by Artificial Intelligence") using the IPTC Digital Source Type vocabulary.
- Visual Metrics: Displays key metrics such as the number of ingredients, signing validations, and specific AI usage indicators.
- Detailed Inspection: Provides a raw view of the manifest actions and assertions for deeper technical analysis.
Content Credentials (C2PA) store data in a graph structure (Manifest Store). A single file might have a long history of edits (crops, filters, re-encodings), each represented as a "manifest".
This application performs a Breadth-First Search (BFS) starting from the active manifest of the uploaded file. It looks backwards through the chain of "ingredients" (parent files) to find actions tagged as c2pa.created.
By aggregating these creation events, the tool answers the fundamental question: "Where did this content actually come from?"
- Python 3.10+
- pip
-
Clone the repository:
git clone https://github.com/peterjakubowski/Content-Credentials-Reader.git cd content-credentials-reader -
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` -
Install dependencies:
pip install -r requirements.txt
-
Run the Streamlit app:
streamlit run app.py -
Open your browser:
The application will typically be available at http://localhost:8501.
-
Upload a file:
Drag and drop an image (JPEG, PNG, WEBP, AVIF) or other supported file types to see its credentials.
- Streamlit: For the interactive web interface.
- c2pa-python: The core library for parsing and validating C2PA manifests.
- Python 3: Backend logic for graph traversal and summarization.