Daily-python

Latest version: v0.17.0

Safety actively analyzes 723144 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 7

0.7.2

Fixed

- Fixed missing milliseconds in client logs timestamps.

0.7.1

Fixed

- Fixed an issue that could cause join to fail if recording/transcription/live
stream was started from the REST API.

0.7.0

Added

- Added initial support for low-level Voice Activity Detection (VAD).

python
vad = Daily.create_native_vad(1000, 16000, 1)
confidence = vad.analyze_frames(audio_frames)


- Added `includeRawResponse` field to `TranscriptionSettings`. If true, all
incoming `TranscriptionMessage` will include a new `rawResponse` field with
Deepgram's raw data.

- Added new `CallClient.release()` function to allow freeing resources even in
the event of `EventHandler` circular dependencies. It is common to have the
following code:

python
class MyClient(EventHandler):

def __init__(self):
self.call_client=CallClient(event_handler=self)

...


If `MyClient` is a single application there shouldn't be any issues with
freeing resources when the application ends. However, if we have an
application that wants to create and release multiple `CallClient` instances
the previous approach won't work with Python's garbage collection since
there's a circular dependency. To solve this, we can now do:


python
class MyClient(EventHandler):

def __init__(self):
self.call_client=CallClient(event_handler=self)

def leave(self):
self.call_client.leave()
self.call_client.release()

...


The new `CallClient.release()` function also blocks until all previous
asynchronous operations have completed, so it's another convenient way to
know, for example, when `CallClient.leave()` finishes.

Changed

- ⚠️ Breaking change ⚠️: Completion callbacks now receive only the necessary
arguments. For example, before `CallClient.leave(completion=...)` completion
callback would receive `(None, Error | None)` arguments when it should only
receive `(Error | None)`.

This is the list of functions with completion callbacks that have been
affected:
`CallClient.leave()`, `CallClient.update_remote_participants()`,
`CallClient.eject_remote_participants()`, `CallClient.update_permissions()`,
`CallClient.start_recording()`, `CallClient.stop_recording()`,
`CallClient.update_recording()`, `CallClient.start_transcription()`,
`CallClient.stop_transcription()`, `CallClient.start_dialout()`,
`CallClient.stop_dialout()`, `CallClient.send_app_message()`,
`CallClient.send_prebuilt_chat_message()`.

If you use any of the completion callbacks from one of the functions listed
above, you simply need to remove the first argument from your callable.

Other

- Updated demos to use the new `CallClient.release()` function.

0.6.4

Fixed

- Fixed an issue that would not allow join to succeed if a React Native client
was already in the room.

0.6.3

Added

- Add support for `audio-only` recording layout preset.

0.6.2

Fixed

- Virtual microphones now always send audio (silence) if the user doesn't
provide audio frames.

- Fix deadlock when registering completion callbacks inside callbacks.

- Enable Opus FEC to improve audio with network packet loss.

- Fixed multiple issues which could cause a deadlock during network
reconnection.

- Ensure that `CallClient.update_inputs()` continues to be usable while the
network is down.

- Fixed a crash which could occur if the network connection drops soon after
joining.

Other

- Simplied demos by using `client_settings` parameter in `CallClient.join()`
instead of a separate `CallClient.update_inputs()` call.

- Updated `pyaudio` demo to only use non-blocking virtual devices.

Page 4 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.