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.2.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.2-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stegawave-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 80b17b278ab526ecd3b8246cbfad8499e1a685b1b684d2625a8a7fa4e417b027
MD5 cd66da32e66b5d2d26341c120081fedf
BLAKE2b-256 c16d0b07d41c735ba83d2d26ca1d934c05af76619eef44e5684509770f79f254

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stegawave-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7c2e333b70649d010de0fa5afb67c122e201e1a9a5c9ff8887e5f2e04d79bee7
MD5 1a9bba0ab0514ef9b003f2fd972722fe
BLAKE2b-256 cdf2980a0137d4d3e6948d46a38e6ab35d230cc24fdcf1674e869cfa3ebadd18

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