Saakshy Stamp SDK — AI content provenance infrastructure
Project description
Saakshy Stamp
AI content provenance infrastructure. C2PA manifest + invisible watermark + perceptual fingerprint in five lines of code.
Embeds C2PA manifest, invisible watermark, visible label, and perceptual fingerprint into videos, images, and audio. All processing happens server-side — no GPU, PyTorch, or FFmpeg required on your end. Compliant with India's IT Rules 2026 (SGI labelling).
Documentation | Website | IT Rules 2026 Guide
Installation
pip install saakshy-stamp
Requires Python 3.10+. Only two dependencies: httpx and pydantic.
Quick start
from saakshy_stamp import SaakshyStamp, StampConfig, SGIType
client = SaakshyStamp(api_key="sk_...")
result = client.stamp(
"ai_video.mp4",
"stamped_video.mp4",
StampConfig(
tool_name="MyAITool",
tool_version="1.0",
sgi_type=SGIType.AI_GENERATED,
language="hi", # supports: en, hi, ta, te, bn, mr, kn, ml
),
)
print(result.content_uuid)
Async usage
from saakshy_stamp import AsyncSaakshyStamp, StampConfig, SGIType
async with AsyncSaakshyStamp(api_key="sk_...") as client:
result = await client.stamp(
"ai_video.mp4",
"stamped_video.mp4",
StampConfig(
tool_name="MyAITool",
tool_version="1.0",
sgi_type=SGIType.AI_GENERATED,
),
)
Verification
# Verify any media file
result = client.verify_file("suspicious_video.mp4")
print(result.status) # "verified" | "unverified" | "tampered"
print(result.confidence) # 0.0 to 1.0
# Resolve manifest by watermark ID
result = client.resolve(watermark_id="abc-123-def")
print(result.matches)
Error handling
from saakshy_stamp import SaakshyStamp, SaakshyError, AuthenticationError, RateLimitError
client = SaakshyStamp(api_key="sk_...")
try:
result = client.stamp("video.mp4", "out.mp4", config)
except AuthenticationError:
print("Invalid API key")
except RateLimitError:
print("Quota exceeded — upgrade your plan")
except SaakshyError as e:
print(f"SDK error: {e}")
Configuration
The API key can be provided via constructor or environment variable:
# Option 1: Constructor
client = SaakshyStamp(api_key="sk_...")
# Option 2: Environment variable
# export SAAKSHY_API_KEY=sk_...
client = SaakshyStamp()
SGI types
| Type | When to use |
|---|---|
AI_GENERATED |
Fully synthetic content (must label per IT Rules 2026) |
AI_MODIFIED |
Real content with AI alterations (must label) |
EXEMPT_ENHANCED |
Routine editing like colour correction (exempt) |
How it works
- Your file is uploaded directly to S3 via presigned URL (never touches our API server)
- Server embeds three layers of provenance:
- C2PA v2 manifest — cryptographic proof of origin
- Invisible watermark — survives platform recompression (WhatsApp, Instagram)
- Perceptual fingerprint — always matchable as fallback
- You download the stamped file
API key
Sign up at saakshy.ai to get your API key.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file saakshy_stamp-0.1.0.tar.gz.
File metadata
- Download URL: saakshy_stamp-0.1.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66cdb912d5852be4f383fab55485feaf3d8cc195face3ffcbed3020ad17b321c
|
|
| MD5 |
aafb2b42851565f0825f1722865e1f03
|
|
| BLAKE2b-256 |
a1df8786dd8a7448308f5705fd4a6ae72890bcff2e5ad371f0ef54880d942ff0
|
File details
Details for the file saakshy_stamp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: saakshy_stamp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89fa865b146d6e26840c0930820178e9dbf26e064860160a862ea4527e82541c
|
|
| MD5 |
dd6ed4131fbb00098ddf2a0fc7067ff3
|
|
| BLAKE2b-256 |
0842c760533ab39297980bcdc56a7f9a3b191cad424a440c06ea36f1693f98ff
|