Skip to main content

Unofficial Python Client for Meetstream.ai API

Project description

Unofficial MeetstreamAPI Python Client

The MeetstreamAPI class is a lightweight Python client for interacting with the Meetstream.ai API.
It allows you to create and manage meeting bots, retrieve transcripts, media, chat messages, participants, and more.


Table of Contents


Installation

pip install requests

(Only requests is required.)


Getting Started

from meetstream import MeetstreamAPI  # if you save the class in meetstream.py

# Initialize client with your API key
api = MeetstreamAPI(api_key="your_api_key_here")

# Create a new meeting bot
bot_data = api.create_bot(
    meeting_link="https://meet.google.com/abc-defg-hij",
    bot_name="Meeting Assistant",
    bot_message="Hello, team 👋",
    custom_attributes={"project": "Alpha"}
)

print("Bot created:", bot_data)

bot_id = bot_data["bot_id"]
transcript_id = bot_data["transcript_id"]

# Get bot status
status = api.get_bot_status(bot_id)
print("Bot status:", status)

# Get transcript
transcript = api.get_transcript(transcript_id)
print("Transcript:", transcript)

# Remove the bot when done
result = api.remove_bot(bot_id)
print("Bot removed:", result)

Authentication

All requests require an API key. You can pass it when initializing the client:

api = MeetstreamAPI(api_key="your_api_key")

Or set it later:

api.set_api_key("your_api_key")

The key is automatically included in all requests via the Authorization header.


API Reference

create_bot(...) → dict

Create a new bot and join a meeting.

Parameters:

  • meeting_link (str, required) — The meeting URL.
  • bot_name (str, required) — Bot display name.
  • video_required (bool, default=False) — Enable video recording.
  • audio_required (bool, default=False) — Enable audio recording.
  • bot_message (str, optional) — Initial chat message from the bot.
  • bot_image_url (str, optional) — Profile image URL.
  • socket_connection_url (str, optional) — WebSocket endpoint for live updates.
  • live_audio_required (dict, optional) — Config for live audio streaming.
  • live_transcription_required (dict, optional) — Config for live transcription.
  • transcription (dict, optional) — Transcription service settings.
  • custom_attributes (dict, optional) — Any extra metadata you want to store.
  • join_at (str, optional) — Scheduled join time (ISO 8601).
  • callback_url (str, optional) — Webhook callback URL.

Returns: JSON response with bot_id and transcript_id.


get_bot_status(bot_id: str) → dict

Get current status of a bot.

Parameters:

  • bot_id (str) — Bot identifier.

Returns: Status info (online/offline, recording status, etc.).


get_bot_details(bot_id: str) → dict

Retrieve detailed information about a bot.


get_bot_audio(bot_id: str) → requests.Response

Download audio recorded by the bot. Use .content to save the binary data:

audio = api.get_bot_audio(bot_id)
with open("meeting_audio.mp3", "wb") as f:
    f.write(audio.content)

get_bot_video(bot_id: str) → requests.Response

Download video recorded by the bot. Similar to audio, use .content to save.


get_transcript(transcript_id: str, raw: bool = False) → dict

Get meeting transcript.

Parameters:

  • transcript_id (str) — Transcript identifier.
  • raw (bool, default=False) — If True, returns unprocessed transcript data.

remove_bot(bot_id: str) → dict

Remove a bot from a meeting.


get_speaker_timeline(bot_id: str) → dict

Retrieve speaker timeline (who spoke when).


get_chats(bot_id: str) → dict

Retrieve chat messages captured by the bot.


get_screenshots(bot_id: str) → dict

Retrieve screenshots taken during the meeting.


get_participants(bot_id: str) → dict

Retrieve participant list for a meeting.


Error Handling

All methods raise requests.exceptions.HTTPError if the API returns an error. Wrap calls in try/except to handle failures:

try:
    status = api.get_bot_status("invalid_bot_id")
except requests.exceptions.HTTPError as e:
    print("API error:", e.response.json())

Example Workflow

  1. Create bot → Get bot_id and transcript_id.
  2. Monitor status → Poll get_bot_status().
  3. Fetch data → Get transcript, audio, video, chats, screenshots.
  4. Remove bot → Call remove_bot() once meeting is done.

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

meetstream-0.1.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

meetstream-0.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meetstream-0.1.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for meetstream-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2ff52b43fe264c72e43288515866000587b61636a0431efbd36920531220a857
MD5 8a6d512c8baeeae2c12861098bfaa946
BLAKE2b-256 671f1395cea09791664325914bad9e9c80711a10d8f1600a657d919715fbc68c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: meetstream-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for meetstream-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 402f81144e7808c50258bfc962cc780c919ae7e8e661aa1e667c66ada1ee2d69
MD5 04a55806d3e91b86954a0e5f53d036dc
BLAKE2b-256 34c99a772ebbaa4945475dc148441088b8392365dfa8718f3b5aadf95f7f27d2

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