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.3.tar.gz (11.2 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.3-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stegawave-0.1.3.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

Hashes for stegawave-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ad7f466825115cbee8ccd4b81bef84004e9c989f2e8205e8293bf3eb4f7dd54e
MD5 2631c75abb6274f1c2bc7ff75099afaf
BLAKE2b-256 18500631eda5474fd33effcafefba5a612982acea2788d863fde4efe9df0a94d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stegawave-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.5 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 97e8538d2da65b67466c2e81f33252fe23df3070ec6f65381c89d4501dc5fede
MD5 24503bbb808df82eae66d2ce2764b244
BLAKE2b-256 3d00a7ce18013648ead85c8986625a5378a4fcc89208d42bd82ee4a26a56f2b4

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