Skip to main content

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 PipelineSession workflow 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stegawave-0.1.6.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stegawave-0.1.6-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file stegawave-0.1.6.tar.gz.

File metadata

  • Download URL: stegawave-0.1.6.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for stegawave-0.1.6.tar.gz
Algorithm Hash digest
SHA256 7a0efc6fc7a60a6c96bf1c76c2a8ca84f9e018cfef19a122c3750d74358b6c71
MD5 aa8c29a116e479bf4649b85b9023b9ae
BLAKE2b-256 47e12ca8610c460f5694da8c719790cfd11e3d64838b0698056ee716f64218c1

See more details on using hashes here.

File details

Details for the file stegawave-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: stegawave-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for stegawave-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9db2bc17f983f9b2409634a9e609fcd085eaef746145ed5eaa52e57bd659857e
MD5 0666184f1e2245567434d2ed462089a6
BLAKE2b-256 444fde2ef55086653b56bcf83406bef286e882977faa0eccd71f3d614b9847e2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page