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.1.0.tar.gz (33.6 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.1.0-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nextcloud_talk_capture-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b73b42846510c76752d5f2b83e9389be794fbc99d333875527dfdc3c2fece5dc
MD5 487d51984ccadb232096b150a44badb7
BLAKE2b-256 9a9bfb46f5cf5bddaed49c8920f5a6b6dabeefacd109716ff9c6d4d757dd0595

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextcloud_talk_capture-0.1.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.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nextcloud_talk_capture-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 14dd4bf922ccc5cc213c59a6684deada7aa41921ccb7ed358d85995aa3beaefc
MD5 05c32b6cd674e14dc4bfe9de93ed577e
BLAKE2b-256 60bfc996e873fa3d94497d305cf7e65348ebb95942e157c4dda1aeebfa4925c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextcloud_talk_capture-0.1.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