Python client for the Stegawave media pipeline API
Project description
Stegawave Python Client
stegawave is an unofficial Python SDK for the Stegawave forensic watermarking platform. It wraps the public REST API and helps you validate /create payloads, manage pipeline lifecycle, and trigger watermark decode jobs without hand-writing HTTP calls.
Installation
pip install stegawave
Quick start
from stegawave import StegawaveClient, models
client = StegawaveClient(api_key="your-api-key")
create_request = models.CreatePipelineRequest(
name="launch-stream",
description="Product launch livestream",
segmentDuration=4,
input=models.InputConfig( # RTMP push by default
Type="RTMP_PUSH",
whitelist=["0.0.0.0/0"],
),
encoder=models.EncoderConfig(
vodArchive=False,
output_group=models.OutputGroup(
Name="cmaf-main",
Outputs=[
models.OutputConfig(
OutputName="cmaf-1080p",
resolution="1920x1080",
FramerateNumerator=30,
FramerateDenominator=1,
VideoBitrate=7_500_000,
AudioBitrate=128_000,
)
],
),
),
packager=models.PackagerConfig(
originEndpoints=[
models.OriginEndpoint(
name="cmaf-hybrid",
ContainerType="CMAF",
HlsManifests=[models.HlsManifest(ManifestName="index")],
)
]
),
)
session = client.create_pipeline_session(create_request, wait=True)
print(session.event_id)
print("Input:", session.input_uri)
print("Manifests:")
for url in session.signed_manifest_uris("john_doe"):
print(" ", url)
The SDK automatically injects your API key, validates payload structure using Pydantic models, and surfaces HTTP issues as rich exceptions.
Configuration
Set your base URL or API key explicitly, or rely on environment variables.
client = StegawaveClient()
| Environment variable | Description |
|---|---|
STEGAWAVE_API_KEY |
API key provided by Stegawave |
STEGAWAVE_API_BASE_URL |
Override the default https://api.stegawave.com |
Features
- Strongly-typed request and response models for
/create,/get,/state,/delete,/token,/decode,/iptv,/passphrase - High-level
PipelineSessionworkflow helper to provision, poll, and sign manifests in a few lines - Convenience helpers for SRT listener inputs, ABR ladders, and asynchronous provisioning workflows
- Configurable retries, timeouts, and polling intervals
- First-class error types for authentication, validation, rate limiting, and server-side failures
Status
This client is pre-release software targeting the October 2025 API schema. Expect breaking changes as the platform evolves. Contributions and issue reports are welcome.
Development
pip install -e .[dev]
pytest
Refer to CHANGELOG.md for planned enhancements and release history.
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 stegawave-0.1.1.tar.gz.
File metadata
- Download URL: stegawave-0.1.1.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57cb33a9aae6a0e100f2b783cc1293d584dbade6fd2643cc4de9bf76d05788cd
|
|
| MD5 |
0e7784c7979196b31ba14469beb1e8b9
|
|
| BLAKE2b-256 |
fddbe8654bcac917ed102e548a0898daf8c7e2303b0422ed79696b6070fdb57b
|
File details
Details for the file stegawave-0.1.1-py3-none-any.whl.
File metadata
- Download URL: stegawave-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bcb47c25f5a868dbcf8fd095626e1f7468f28a735d294948b1ff6d180640af6
|
|
| MD5 |
77bade336f80052e04bc2f9ac3ed9924
|
|
| BLAKE2b-256 |
f7b1b74275db6a555e0949281e52646cb6d7dd9e317a8b0dcff8d85fb3083bea
|