Skip to main content

Capture Nextcloud Talk calls: signalling client, per-speaker audio, call monitoring

Project description

nextcloud-talk-capture

Capture Nextcloud Talk calls: join as a signalling client, receive one audio stream per speaker, and hand over the finished call as plain data.

Import name is talk_capture.

from talk_capture import CaptureConfig
from talk_capture.monitor import CallMonitor
from talk_capture.spreed_client import SpreedClient

What it does — and what it deliberately does not

This is the capture half of a transcription pipeline: it gets the audio and tells you who was speaking. What happens afterwards — speech recognition, summaries, publishing, storage — is not its business, and it holds no dependency on any of it.

That separation is the whole point. The same package runs inside a Nextcloud ExApp, inside a standalone capture service, or inside an application that does everything, without dragging a product's worth of code along.

Module
spreed_client signalling client: HPB + aiortc, per-speaker audio
monitor active-call detection (polls the Nextcloud DB, optionally over an SSH tunnel)
presence join/leave annotations (pure functions, no I/O)
chat_commands opt-out commands posted in the room chat, honoured mid-call
resolve assembles a FinishedCall when the call ends
transcriber_backend sends audio to an engine, in-process or over gRPC
contracts FinishedCall, SpeakerStatInput — the payload handed downstream
config CaptureConfig — what capture needs, nothing more
aioice_patch works around an aioice race; import it before aiortc

Requirements

  • Nextcloud Talk with a High Performance Backend. Call media lives in the signalling server, not in the PHP layer, so an HPB is required.
  • Python 3.11+

Configuration

CaptureConfig carries what capture needs: Nextcloud credentials, the signalling server and its secret, call-detection database access, the room filter, and where to send the audio. Build it from the environment with CaptureConfig.from_env(), or pass any object exposing the same attributes — config is taken duck-typed, so a larger application config works unchanged.

Contributing

Two rules keep the package shippable on its own, both enforced by tests in the consuming repository:

  • nothing here may import the downstream half (publishing, analysis, storage);
  • a config field must keep its name, type and default in sync with any larger config that is passed in — a mismatch fails mid-call, not at import.

Licence

MIT.

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

nextcloud_talk_capture-0.2.0.tar.gz (36.9 kB view details)

Uploaded Source

Built Distribution

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

nextcloud_talk_capture-0.2.0-py3-none-any.whl (41.7 kB view details)

Uploaded Python 3

File details

Details for the file nextcloud_talk_capture-0.2.0.tar.gz.

File metadata

  • Download URL: nextcloud_talk_capture-0.2.0.tar.gz
  • Upload date:
  • Size: 36.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for nextcloud_talk_capture-0.2.0.tar.gz
Algorithm Hash digest
SHA256 779cbb7596d8a458799c5b357cdc626ba68543499d8296478154b21d6af0a645
MD5 b358b1c1d3a1934cecd5ef5803b061ca
BLAKE2b-256 150bc1fad56a547a0e34935869927107107622b751270779372b03e66165f1b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextcloud_talk_capture-0.2.0.tar.gz:

Publisher: publish-package.yml on devsoftmus/nextcloude-transcription

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

File details

Details for the file nextcloud_talk_capture-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nextcloud_talk_capture-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93057e163b81e1d9b80720efd8d5a636d4d02973d5802c489d4c0954167ca3bb
MD5 40a2cdf9a8293e9e3852c4c336741d0f
BLAKE2b-256 0879dcc78fa6fb12d18fdb2392db20faec5651050b8a54bd9e5bd4a0df8291bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextcloud_talk_capture-0.2.0-py3-none-any.whl:

Publisher: publish-package.yml on devsoftmus/nextcloude-transcription

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