Getting started

This quickstart guide shows how to generate a private Ed25519 key on the fly and use it to write cryptographically signed transparency metadata into an audio file using TransparentMeta.

This minimal example requires no pre-existing keys and demonstrates the core functionality to embed compliant metadata.


Generate key and write metadata

import logging
from datetime import datetime, timezone

from transparentmeta.crypto.key_management import generate_key_pair
from transparentmeta.sdk import build_transparent_metadata_writer
from transparentmeta.entity.metadata import AIUsageLevel
from transparentmeta.logger_config import configure_logging

# Configure logging at debug level for following all the steps
configure_logging(level=logging.DEBUG)

# Path to the target audio file to write metadata into
audio_file_path = "path/to/your/audio.mp3"

# Define metadata to embed
metadata = {
    "company": "Transparent Audio",
    "model": "v2.1",
    "created_at": datetime.now(timezone.utc),
    "ai_usage_level": AIUsageLevel.AI_ASSISTED,
    "content_id": "12345",
    "user_id": "user_67890",
    "private_key_id": "generated_key_1",
    "additional_info": {
        "attribution": {
            "lyrics": "John Doe",
            "composer": "Jane Smith",
            "singer": "HAL 9000",
        }
    },
}

# Generate a new Ed25519 private/public key pair on the fly
private_key, public_key = generate_key_pair()

# Build a metadata writer instance with the generated private key necessary for signing
transparent_metadata_writer = build_transparent_metadata_writer(private_key)

# Write the metadata and signature into the audio file
transparent_metadata_writer.write(audio_file_path, metadata)