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

Uploaded Python 3

File details

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

File metadata

  • Download URL: stegawave-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 64853a3f2558aff3763d635c539e817af47c9e5545548f22c42b2b93351599ad
MD5 b167d5142d3c8d2586f6ab6c85f35785
BLAKE2b-256 050c5d82d7621db81de83181af2819a62fe2e346671550d07219c9d211d85290

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stegawave-0.1.4-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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 80c902204ab775497e6eefb6266866d7a5a3d7cbd1997ef05455bdc87bd37ebd
MD5 2faec6633d939587c43a388df3a1192b
BLAKE2b-256 526bc27f46f9bb1793dd6c2fa92e9192c0196d7dc112df003c3b3a26e6041fad

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