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.27.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.27-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (118.5 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

zoom_meeting_sdk-0.0.27-cp312-abi3-manylinux_2_28_x86_64.whl (118.5 MB view details)

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

zoom_meeting_sdk-0.0.27-cp311-cp311-manylinux_2_28_x86_64.whl (118.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

zoom_meeting_sdk-0.0.27-cp310-cp310-manylinux_2_28_x86_64.whl (118.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

Details for the file zoom_meeting_sdk-0.0.27.tar.gz.

File metadata

  • Download URL: zoom_meeting_sdk-0.0.27.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.27.tar.gz
Algorithm Hash digest
SHA256 e4c609c437f8bb9f2232c05688a94e8368f680a3ac70f880bdbf5ce350234f52
MD5 5e9c430f57733d26194746e51586db06
BLAKE2b-256 85240dc2c82032ea588ad3bcea041299c96ca8fadf16ddac1cc05a1a38eade4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.27.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.27-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoom_meeting_sdk-0.0.27-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc3f6cace1b8ec33747057c7f4036e42a675836cbf590b5b49f99877d30d0769
MD5 0142e2bf1de09929a748833f15d9d2c9
BLAKE2b-256 7dc8bcb1d56a7aad09063efc66a60b8f041bc72c9691818b9e8d2948e1b54470

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.27-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.27-cp312-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoom_meeting_sdk-0.0.27-cp312-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6e9390f3f618f9a84f551544c7ec3a87168dd81e9e7d901d09a248658ad17e8
MD5 96adc3b103a4a7f217fcd84a32133dbb
BLAKE2b-256 c671204c3dafb6d4791c30f1012781ecde7d5c712cc1f39f13332b555b6d5def

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.27-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.27-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoom_meeting_sdk-0.0.27-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8f675cf37554d514d274006015e2286fc947a120a193393e91af73b83bed7400
MD5 ac7ed1b9c5d2fe7359604c94947152ef
BLAKE2b-256 6d0d320cff001cdc73bd701f5ed9e123153f9a2dc7e5e7e92065a028c4d9e09f

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.27-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.27-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoom_meeting_sdk-0.0.27-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 611441ca6dac8c6bc77384b025645af23be1d381a539b1ea6bcd843832c0d6f8
MD5 c7a14d73447066438db5cfcd411ea430
BLAKE2b-256 a550c42c03cc1b74e19452b17669c439951a2f7135715905f91fd9a3354cf2d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for zoom_meeting_sdk-0.0.27-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