-
Notifications
You must be signed in to change notification settings - Fork 11
Labels
bugSomething isn't workingSomething isn't working
Description
Bug Description
When accessing the metadata of the audio stream, the user name is empty and the user ID is -1 regardless of who is speaking in the meeting. This issue only appears in the Python library; the Node.js library correctly reports user names and IDs.
Language/Runtime
Python
SDK Version
0.0.2
Environment Details
- OS and Version: macOS 26.2
- Python version: 3.13.11
- Zoom client version: 6.7.2 (72191)
Steps To Reproduce
- Create a Zoom app that has access to RTMS data as in the sample setup.
- Configure the Python environment to contain Zoom Client ID and password as in the sample setup.
- Run a minimal reproducer based on the provided Python example, see below.
- Start a meeting with the app enabled and start speaking.
Expected Behavior
The Python app prints the user name and user ID of the meeting participant currently speaking: Speaker: <username> (userId: <userID>).
Actual Behavior
The Python app prints Speaker: (userId: -1).
Code Example
import signal
import sys
import rtms
from dotenv import load_dotenv
load_dotenv()
client = rtms.Client()
# Graceful shutdown handler
def signal_handler(sig, frame):
print('\nShutting down gracefully...')
client.leave()
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
# Webhook event handler
@client.on_webhook_event()
def handle_webhook(payload):
if payload.get('event') == 'meeting.rtms_started':
rtms_payload = payload.get('payload', {})
client.join(
meeting_uuid=rtms_payload.get('meeting_uuid'),
rtms_stream_id=rtms_payload.get('rtms_stream_id'),
server_urls=rtms_payload.get('server_urls'),
signature=rtms_payload.get('signature')
)
# Callback handlers
@client.onJoinConfirm
def on_join(reason):
print(f'Joined meeting: {reason}')
@client.onAudioData
def on_audio(data, size, timestamp, metadata):
print(f'Speaker: {metadata.userName} (userId: {metadata.userId})')
@client.onLeave
def on_leave(reason):
print(f'Left meeting: {reason}')
if __name__ == '__main__':
print('Webhook server running on http://localhost:8080')
import time
while True:
# Process queued join requests from webhook thread
client._process_join_queue()
# Poll for SDK events
client._poll_if_needed()
time.sleep(0.01)Relevant Log Output
Additional Context
It seems this issue is specific to the Python library; the Node.js version correctly reports user names and IDs.
Verification
- I've searched existing issues to ensure this bug hasn't already been reported
- I've verified this bug still exists in the latest version of the SDK
- I've included all necessary information to reproduce this issue
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working