Python Bindings for the Zoom Meeting SDK
Project description
PyZoomMeetingSDK: Create Zoom Meeting Bots in Python
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
- cd to repository root
docker compose run --rm develop
pip install zoom-meeting-sdk
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
- 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.
- cd to respository root
docker compose run --rm develop
source scripts/build.sh
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
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 Distributions
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 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
Algorithm | Hash digest | |
---|---|---|
SHA256 |
e62bfb86c6247a7b79b1b80cb4089af399912a15bc1c9fff0b2e51859781b3dc
|
|
MD5 |
872cc073b3b694a1f0493c14e29d0a08
|
|
BLAKE2b-256 |
e5139fc839f3c322495585a7290a5ef4d686370f86ad5fb7a708d29e6fc66bd6
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
zoom-meeting-sdk-0.0.25.tar.gz
-
Subject digest:
e62bfb86c6247a7b79b1b80cb4089af399912a15bc1c9fff0b2e51859781b3dc
- Sigstore transparency entry: 629358443
- Sigstore integration time:
-
Permalink:
noah-duncan/py-zoom-meeting-sdk@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Branch / Tag:
refs/tags/v0.0.25
- Owner: https://github.com/noah-duncan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
wheels.yml@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Trigger Event:
release
-
Statement type:
File details
Details for the file zoom_meeting_sdk-0.0.25-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: zoom_meeting_sdk-0.0.25-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 105.4 MB
- Tags: PyPy, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
3513e1660f64e210449d2f4e916ff2598d4f9f6076bdc2ff5610df20068f971d
|
|
MD5 |
14f8d90de04543c0ef961ee044e52c27
|
|
BLAKE2b-256 |
80b53317554aaa35226f63736aa6c4ceb64a89a481a3100cfc8bd470bacfa2f9
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
zoom_meeting_sdk-0.0.25-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
-
Subject digest:
3513e1660f64e210449d2f4e916ff2598d4f9f6076bdc2ff5610df20068f971d
- Sigstore transparency entry: 629358453
- Sigstore integration time:
-
Permalink:
noah-duncan/py-zoom-meeting-sdk@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Branch / Tag:
refs/tags/v0.0.25
- Owner: https://github.com/noah-duncan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
wheels.yml@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Trigger Event:
release
-
Statement type:
File details
Details for the file zoom_meeting_sdk-0.0.25-cp312-abi3-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: zoom_meeting_sdk-0.0.25-cp312-abi3-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 105.4 MB
- Tags: CPython 3.12+, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
2cb15a0d293443297d4cd3a35111a0a265c83a4549712692c0926cbdd6294bcb
|
|
MD5 |
09d2969f86a9a4660d8955a756fa38c6
|
|
BLAKE2b-256 |
924b8663939b5ad95d07f036c57345b71d7a50579753a4b0cdeffe93a9fef138
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
zoom_meeting_sdk-0.0.25-cp312-abi3-manylinux_2_28_x86_64.whl
-
Subject digest:
2cb15a0d293443297d4cd3a35111a0a265c83a4549712692c0926cbdd6294bcb
- Sigstore transparency entry: 629358451
- Sigstore integration time:
-
Permalink:
noah-duncan/py-zoom-meeting-sdk@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Branch / Tag:
refs/tags/v0.0.25
- Owner: https://github.com/noah-duncan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
wheels.yml@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Trigger Event:
release
-
Statement type:
File details
Details for the file zoom_meeting_sdk-0.0.25-cp311-cp311-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: zoom_meeting_sdk-0.0.25-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 105.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
6c53b9f1990a0dd050f66b5906e9ade4430fb6287fef6babf4746e8a4a0cc13b
|
|
MD5 |
acde16ee7325de15d4fa7eb3f9883a45
|
|
BLAKE2b-256 |
175c185d7622797b8ea96d7aa818b1368be29caf2c5f3c6ff46e5073a30936cc
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
zoom_meeting_sdk-0.0.25-cp311-cp311-manylinux_2_28_x86_64.whl
-
Subject digest:
6c53b9f1990a0dd050f66b5906e9ade4430fb6287fef6babf4746e8a4a0cc13b
- Sigstore transparency entry: 629358456
- Sigstore integration time:
-
Permalink:
noah-duncan/py-zoom-meeting-sdk@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Branch / Tag:
refs/tags/v0.0.25
- Owner: https://github.com/noah-duncan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
wheels.yml@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Trigger Event:
release
-
Statement type:
File details
Details for the file zoom_meeting_sdk-0.0.25-cp310-cp310-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: zoom_meeting_sdk-0.0.25-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 105.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
88dc9dbdd36fe72e3397e50012aedcc47cb62e5da970f63576662160bd36145e
|
|
MD5 |
48c986565bf135c31cf2015f374869e2
|
|
BLAKE2b-256 |
96feedf3f1f3f30b4ff1cdbbff473ade2fa3bd9053a0f246f5dc4571e339b5aa
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
zoom_meeting_sdk-0.0.25-cp310-cp310-manylinux_2_28_x86_64.whl
-
Subject digest:
88dc9dbdd36fe72e3397e50012aedcc47cb62e5da970f63576662160bd36145e
- Sigstore transparency entry: 629358447
- Sigstore integration time:
-
Permalink:
noah-duncan/py-zoom-meeting-sdk@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Branch / Tag:
refs/tags/v0.0.25
- Owner: https://github.com/noah-duncan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
wheels.yml@be19b7c57ba475e734c059ea5ccb7fb8a1066f3e
-
Trigger Event:
release
-
Statement type: