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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfc78c4433d09e71a1a5e2117f2a6cb0d888e5b09e5e1223f838d02837954945
|
|
| MD5 |
50bc451f792622946ecc727ff6807bc6
|
|
| BLAKE2b-256 |
26cce8beea4791418fc8e9523d1637121f6e30ab723e06384bcf9375c9b67db6
|
Provenance
The following attestation bundles were made for hottub-0.1.0.tar.gz:
Publisher:
publish-hottub-python.yml on joinhottub/hottub-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hottub-0.1.0.tar.gz -
Subject digest:
dfc78c4433d09e71a1a5e2117f2a6cb0d888e5b09e5e1223f838d02837954945 - Sigstore transparency entry: 2274704474
- Sigstore integration time:
-
Permalink:
joinhottub/hottub-python@2446abd7d528e0b441ac64a41df749ea8ff03756 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/joinhottub
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-hottub-python.yml@2446abd7d528e0b441ac64a41df749ea8ff03756 -
Trigger Event:
workflow_dispatch
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffa3f0e0ee0ee6b6e248fe657429e9630594fbe246edb21d114430b33a863635
|
|
| MD5 |
682f12c152f746a2013eef693ad2c2eb
|
|
| BLAKE2b-256 |
ae5cf5eeec0c88b052808a3ad27fa819bb8249239d90186e5a07dd7d82181fd9
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hottub-0.1.0-py3-none-any.whl -
Subject digest:
ffa3f0e0ee0ee6b6e248fe657429e9630594fbe246edb21d114430b33a863635 - Sigstore transparency entry: 2274704795
- Sigstore integration time:
-
Permalink:
joinhottub/hottub-python@2446abd7d528e0b441ac64a41df749ea8ff03756 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/joinhottub
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-hottub-python.yml@2446abd7d528e0b441ac64a41df749ea8ff03756 -
Trigger Event:
workflow_dispatch
-
Statement type: