Skip to main content

Python Bindings for the Zoom Meeting SDK

Project description

PyZoomMeetingSDK: Create Zoom Meeting Bots in Python

GitHub Actions Workflow Status PyPI - License

PyZoomMeetingSDK provides Python bindings for the Zoom Meeting SDK for Linux. The Zoom Meeting SDK lets you create bots that can join Zoom meetings and record real-time audio. It powers applications like Gong or Otter.ai. It is different than the Zoom REST API which does not provide these capabilities.

Requirements

  • Docker (You can also use natively if you're running Linux)
  • Python 3.10+ (Included in the DockerFile)
  • Zoom App Client ID and Client Secret (Instructions for obtaining them are below)
  • Deepgram API Key (For running real-time transcription in the sample program)

Installation

  1. cd to repository root
  2. docker compose run --rm develop
  3. pip install zoom-meeting-sdk
  4. import zoom_meeting_sdk

Running the sample program

1. Get your Zoom App Credentials

  • Navigate to Zoom Marketplace and register/log into your developer account.
  • Click the "Develop" button at the top-right, then click 'Build App' and choose "General App".
  • Copy the Client ID and Client Secret from the 'App Credentials' section
  • Go to the Embed tab on the left navigation bar under Features, then select the Meeting SDK toggle.

For more information, you can follow this guide

2. Create your .env file

  • Create a plaintext file called .env in the repository root
  • Fill it out like this
ZOOM_APP_CLIENT_ID=<your zoom app's client id>
ZOOM_APP_CLIENT_SECRET=<your zoom app's client secret>
MEETING_ID=<id of meeting on your developer account>
MEETING_PWD=<password of meeting on your developer account, taken from URL> 
DEEPGRAM_API_KEY=<your deepgram API key (optional)>

3. Run the sample program

  • Open Zoom and start the meeting you listed in the .env file
  • Run docker compose run --rm develop to enter the docker container
  • Run python sample_program/sample.py
  • The bot should request to join the meeting, then request to record the meeting. Once you accept, it will start playing pre-recorded audio in the meeting and print out live transcripts of your speech in the terminal if you provided a deepgram api key. If you didn't it will print out the audio's volume. If you turn on your video, it will also save video frames to the sample_program/out/video_frames folder.

Documentation

Documentation for the bindings is coming soon. For now, the sample program sample.py demonstrates basically all the supported functionality. The documentation for the C++ SDK can be viewed here.

Do the bindings cover the entire SDK?

No, this library is in early development and support is currently limited to functionality for joining a meeting and recording and sending audio. If you need other functionality added, please open an issue in the repo. I'm actively working on this and will respond promptly.

You can run test_scripts/binding_coverage.py to get the percentage of SDK classes and functions that are covered by the binding. Currently 36 out of 235 objects in the SDK are covered.

Modifying the bindings

  1. Download the latest version of the Zoom Meeting SDK for Linux from the Zoom Marketplace and and extract it into the src/zoomsdk folder of this repository. To download the SDK, open your Zoom App in the developer portal, go to the Embed tab on the left navigation bar under Features, then select the Meeting SDK toggle. Then download the Linux SDK.
  2. cd to respository root
  3. docker compose run --rm develop
  4. source scripts/build.sh
  5. import zoom_meeting_sdk

To recompile the bindings run source scripts/build.sh again.

The bindings are in the src folder. They are written in C++ and use the nanobind library. The file structure of the bindings mirrors the file structure of the Zoom Meeting SDK headers. IE the bindings for zoom_sdk_def.h are in zoom_sdf_def_bindings.cpp.

The objects in the binding almost exactly duplicate the SDK. The one exception are the callback events. In the SDK you define callbacks by implementing an abstract class such as IAuthServiceEvent or IMeetingServiceEvent. In the bindings you define them by passing python functions into the constructor of classes such as AuthServiceEventCallbacks or MeetingServiceEventCallbacks.

Disclaimer

This library is not related to or sponsored by Zoom Video Communications, Inc.

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

zoom-meeting-sdk-0.0.25.tar.gz (7.0 MB view details)

Uploaded Source

Built Distributions

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

zoom_meeting_sdk-0.0.25-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (105.4 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

zoom_meeting_sdk-0.0.25-cp312-abi3-manylinux_2_28_x86_64.whl (105.4 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.28+ x86-64

zoom_meeting_sdk-0.0.25-cp311-cp311-manylinux_2_28_x86_64.whl (105.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

zoom_meeting_sdk-0.0.25-cp310-cp310-manylinux_2_28_x86_64.whl (105.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

Details for the file zoom-meeting-sdk-0.0.25.tar.gz.

File metadata

  • Download URL: zoom-meeting-sdk-0.0.25.tar.gz
  • Upload date:
  • Size: 7.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zoom-meeting-sdk-0.0.25.tar.gz
Algorithm Hash digest
SHA256 e62bfb86c6247a7b79b1b80cb4089af399912a15bc1c9fff0b2e51859781b3dc
MD5 872cc073b3b694a1f0493c14e29d0a08
BLAKE2b-256 e5139fc839f3c322495585a7290a5ef4d686370f86ad5fb7a708d29e6fc66bd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom-meeting-sdk-0.0.25.tar.gz:

Publisher: wheels.yml on noah-duncan/py-zoom-meeting-sdk

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

File details

Details for the file zoom_meeting_sdk-0.0.25-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoom_meeting_sdk-0.0.25-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3513e1660f64e210449d2f4e916ff2598d4f9f6076bdc2ff5610df20068f971d
MD5 14f8d90de04543c0ef961ee044e52c27
BLAKE2b-256 80b53317554aaa35226f63736aa6c4ceb64a89a481a3100cfc8bd470bacfa2f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.25-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on noah-duncan/py-zoom-meeting-sdk

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

File details

Details for the file zoom_meeting_sdk-0.0.25-cp312-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoom_meeting_sdk-0.0.25-cp312-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2cb15a0d293443297d4cd3a35111a0a265c83a4549712692c0926cbdd6294bcb
MD5 09d2969f86a9a4660d8955a756fa38c6
BLAKE2b-256 924b8663939b5ad95d07f036c57345b71d7a50579753a4b0cdeffe93a9fef138

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.25-cp312-abi3-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on noah-duncan/py-zoom-meeting-sdk

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

File details

Details for the file zoom_meeting_sdk-0.0.25-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoom_meeting_sdk-0.0.25-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c53b9f1990a0dd050f66b5906e9ade4430fb6287fef6babf4746e8a4a0cc13b
MD5 acde16ee7325de15d4fa7eb3f9883a45
BLAKE2b-256 175c185d7622797b8ea96d7aa818b1368be29caf2c5f3c6ff46e5073a30936cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.25-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on noah-duncan/py-zoom-meeting-sdk

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

File details

Details for the file zoom_meeting_sdk-0.0.25-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoom_meeting_sdk-0.0.25-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 88dc9dbdd36fe72e3397e50012aedcc47cb62e5da970f63576662160bd36145e
MD5 48c986565bf135c31cf2015f374869e2
BLAKE2b-256 96feedf3f1f3f30b4ff1cdbbff473ade2fa3bd9053a0f246f5dc4571e339b5aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.25-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on noah-duncan/py-zoom-meeting-sdk

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