Batch workflows
Process entire directories of images at once. Batch operations wrap the individual embed, extract, and verify functions for directory-level workflows.
Batch embed
Batch embed workflow
Input directory + metadata
↓
batch_embed()
↓
Iterate matching files (*.jpg)
↓
Call embed_image() for each
↓
Output directory with embedded images
from jpegtrust import batch_embed outputs = batch_embed( input_dir="./raw_photos", metadata="metadata.json", output_dir="./signed_photos", pattern="*.jpg", ) print(f"Embedded {len(outputs)} files")
Batch extract
Batch extract workflow
Input directory
↓
batch_extract()
↓
Iterate files, extract metadata
↓
List of results + optional JSON files
from jpegtrust import batch_extract results = batch_extract( input_dir="./signed_photos", output_dir="./extracted", # writes .json files here pattern="*.jpg", ) for r in results: has_meta = "yes" if r["metadata"] else "no" print(f"{r['filename']}: metadata={has_meta}")
Batch verify
Batch verify workflow
Input directory + trust profile
↓
batch_verify()
↓
Iterate files
↓
Extract + verify each image
↓
Aggregate results + summary
↓
Output: results list + summary counts
from jpegtrust import batch_verify result = batch_verify( input_dir="./signed_photos", profile="newsroom_profile.yml", pattern="*.jpg", ) summary = result["summary"] print(f"Total: {summary['total']}") print(f"Passed: {summary['passed']}") print(f"Warnings: {summary['warnings']}") print(f"Failed: {summary['failed']}") print(f"Errors: {summary['errors']}") # Detailed per-file results for r in result["results"]: print(f" {r['filename']}: {r['status']} ({r.get('score', 0)})")
CLI
# Batch embed jpegtrust batch embed ./photos metadata.json -o ./signed # Batch extract jpegtrust batch extract ./signed -o ./extracted # Batch verify (text summary) jpegtrust batch verify ./signed profile.yml # Batch verify (JSON for piping) jpegtrust batch verify ./signed profile.yml --format json # Custom file pattern jpegtrust batch verify ./signed profile.yml --pattern "*.jpeg"
Result format
{
"summary": {
"total": 50,
"passed": 42,
"warnings": 5,
"failed": 2,
"errors": 1
},
"results": [
{"filename": "img001.jpg", "status": "pass", "score": 1.0, ...},
{"filename": "img002.jpg", "status": "warning", "score": 0.778, ...},
{"filename": "img003.jpg", "status": "error", "message": "No metadata found"}
]
}