Use cases
Predefined workflows for common industries and scenarios. Each use case includes the required assertions, metadata, and complete embed + verify examples.
Newsroom
Wire photo verification for news agencies. Every assertion must be present and verifiable before publication.
Python example
from jpegtrust import create_profile, save_profile, embed_image, verify_image
profile = create_profile(template="newsroom", name="AP Wire Photo Policy")
save_profile(profile, "newsroom.yml")
embed_image("raw_photo.jpg", "camera_metadata.json", "wire_photo.jpg")
report = verify_image("wire_photo.jpg", "newsroom.yml")
# Expect: status="pass", all 9 checks passedCLI example
jpegtrust profile create --template newsroom -o newsroom.yml jpegtrust embed raw_photo.jpg camera_metadata.json -o wire_photo.jpg jpegtrust verify wire_photo.jpg newsroom.yml
Insurance
Claims photo validation. Verify the photo was taken at the claimed time and location by an identified person.
Python example
from jpegtrust import create_profile, save_profile, embed_image, verify_image
profile = create_profile(template="insurance", name="Claims Photo Policy")
save_profile(profile, "insurance.yml")
embed_image("claim_photo.jpg", "claim_metadata.json", "signed_claim.jpg")
report = verify_image("signed_claim.jpg", "insurance.yml")
if "gps_location" in report.failed:
print("WARNING: No GPS data -- cannot verify location")CLI example
jpegtrust profile create --template insurance -o insurance.yml jpegtrust embed claim_photo.jpg claim_metadata.json -o signed_claim.jpg jpegtrust verify signed_claim.jpg insurance.yml
AI Labelling
Check whether an image is labelled as AI-generated or AI-modified via IPTC digital source type metadata.
Python example
from jpegtrust import create_profile, save_profile, embed_image, verify_image
profile = create_profile(template="ai-labelling", name="AI Labelling Policy")
save_profile(profile, "ai_labelling.yml")
embed_image("ai_artwork.jpg", "ai_metadata.json", "signed_ai.jpg",
digital_source_type="trainedAlgorithmicMedia")
report = verify_image("signed_ai.jpg", "ai_labelling.yml")
print(f"AI label: {report.ai_label}")
if "ai_declaration" in report.failed:
print("WARNING: No AI usage declaration found")CLI example
jpegtrust profile create --template ai-labelling -o ai_labelling.yml jpegtrust embed ai_artwork.jpg ai_metadata.json -o signed_ai.jpg --digital-source-type trainedAlgorithmicMedia jpegtrust verify signed_ai.jpg ai_labelling.yml
Creator Authenticity
Prove authorship and assert rights. For artists, photographers, and content creators who need to establish provenance.
Python example
from jpegtrust import create_profile, save_profile, embed_image, verify_image
profile = create_profile(template="creator", name="Artist Authenticity")
save_profile(profile, "creator.yml")
embed_image("my_artwork.jpg", "creator_metadata.json", "signed_artwork.jpg")
report = verify_image("signed_artwork.jpg", "creator.yml")
print(f"Authenticity: {report.verdict}")CLI example
jpegtrust profile create --template creator -o creator.yml jpegtrust embed my_artwork.jpg creator_metadata.json -o signed_artwork.jpg jpegtrust verify signed_artwork.jpg creator.yml
Custom Profile
Build a profile with exactly the checks your system needs. Select individual checks by ID.
Python example
from jpegtrust import create_profile, save_profile, list_checks
# See available checks
for check in list_checks():
print(f" {check.id}: {check.label}")
# Pick exactly what you need
profile = create_profile(
check_ids=["signature_chain", "pixel_hash", "copyright"],
name="My Custom Policy",
issuer="My Organization",
)
save_profile(profile, "custom.yml")CLI example
# List available checks jpegtrust profile list-checks # Create with specific checks jpegtrust profile create --checks signature_chain,pixel_hash,copyright -o custom.yml