Skip to main content

Host Audio Soaks in the Hottub ecosystem.

Project description

Hottub for Python

Host a small, live Audio Soak in the Hottub ecosystem.

pip install hottub
hottub audio-soak create --title "Python Porch" --now

Version 0.1 is intentionally focused: it discovers Hottubs you own or host, checks that Hottub voice and its production TURN relay are ready, creates a members-only Audio Soak, and can take it live. Participants join through the Hottub website or native apps.

The Python package does not access microphones, carry audio, record, transcribe, or contain the Harmonic Engine. Voice remains opt-in and is handled by Hottub's peer-to-peer WebRTC clients.

This repository contains only the public Python client. It does not contain or grant access to Hottub's private monorepo or proprietary Harmonic Engine implementation.

Requirements

  • Python 3.10 or newer
  • A Hottub account
  • Owner or Host membership in at least one Hottub
  • At most eight active voice participants during this beta

CLI

The CLI uses HOTTUB_TOKEN when present. Otherwise, it prompts for your email, password, and—when enabled—your authenticator or recovery code. Credentials and tokens are not written to disk.

# See the Tubs in which you may host.
hottub tubs --hostable

# Confirm that live audio and relay service are ready.
hottub audio-soak status

# Schedule for later. The timestamp must include its UTC offset.
hottub audio-soak create \
  --title "Evening Python Soak" \
  --start "2026-07-27T19:00:00-07:00"

# Open the room immediately.
hottub audio-soak create --title "Python Porch" --now

If you own or host more than one Hottub, pass the ID shown by hottub tubs --hostable:

hottub audio-soak create \
  --tub-id clx_example \
  --title "Maintainers' Soak" \
  --now

Python

from datetime import datetime, timezone
import os

from hottub import HottubClient

client = HottubClient(token=os.environ["HOTTUB_TOKEN"])
tub = client.list_tubs(hostable_only=True)[0]

soak = client.create_audio_soak(
    tub_id=tub.id,
    title="Python Porch",
    start_time=datetime.now(timezone.utc),
    go_live=True,
)
print(soak.url)

For interactive software, client.login(email, password) returns either a Session or TotpChallenge; complete the latter with client.verify_totp. Applications should keep bearer tokens in their platform's secure credential store and must never log them.

Beta boundaries

Audio Soaks created by this package are online, members-only, free, and use Hottub's existing hottub_audio room provider. The host is RSVP'd automatically. The beta does not expose room signaling, audio streams, recording, moderation automation, or proprietary Harmonic implementation details through Python.

License and security

This package is proprietary software distributed under the terms in LICENSE. Public source visibility does not make it open source. Please report vulnerabilities privately as described in SECURITY.md.

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

hottub-0.1.0.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

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

hottub-0.1.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file hottub-0.1.0.tar.gz.

File metadata

  • Download URL: hottub-0.1.0.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for hottub-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dfc78c4433d09e71a1a5e2117f2a6cb0d888e5b09e5e1223f838d02837954945
MD5 50bc451f792622946ecc727ff6807bc6
BLAKE2b-256 26cce8beea4791418fc8e9523d1637121f6e30ab723e06384bcf9375c9b67db6

See more details on using hashes here.

Provenance

The following attestation bundles were made for hottub-0.1.0.tar.gz:

Publisher: publish-hottub-python.yml on joinhottub/hottub-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hottub-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: hottub-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for hottub-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ffa3f0e0ee0ee6b6e248fe657429e9630594fbe246edb21d114430b33a863635
MD5 682f12c152f746a2013eef693ad2c2eb
BLAKE2b-256 ae5cf5eeec0c88b052808a3ad27fa819bb8249239d90186e5a07dd7d82181fd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hottub-0.1.0-py3-none-any.whl:

Publisher: publish-hottub-python.yml on joinhottub/hottub-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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