Skip to main content

nautobot-app-broadcast

Broadcast domain models for Nautobot: services, multiplex capacity, and (next) signal chains.

Nautobot models networks extremely well and has no vertical for broadcast or media facilities at all. This fills that gap, and does so medium-agnostically — radio and television, and audio, video, RF and data, are all the same shapes. A new domain should add data, not tables.

Status

Early. Capacity models are in; signal chains are next. Not yet published to PyPI.

Models

Model Purpose
BroadcastService A station as the audience receives it — FM/AM/DAB+/DTV/stream
Multiplex A shared carrier: a DAB ensemble or DVB multiplex
MultiplexCarriage One service on one multiplex, at a bitrate and protection level

Why capacity first

Signal chains have to be elicited from people's heads, one conversation at a time. Multiplex capacity is objective and already known, so it can be populated in an afternoon and answer a question most operators cannot answer today: how much of our allocation are we actually using, and does next quarter's line-up fit?

Design decisions

allocated_capacity, not total. A DAB ensemble is 864 Capacity Units, but most broadcasters are tenants on a multiplex rather than its owner. total_capacity is informational; carriage is validated against the portion you hold.

Planned carriage may overcommit — deliberately. Only Active carriage is enforced against the allocation. "Does next quarter fit?" is the question being asked, not an error to block on. Status therefore does the work that branching would, which matters because Nautobot has none.

capacity_cost is entered, not derived. The DAB bitrate-and-protection to Capacity Unit mapping is defined by ETSI EN 300 401 and varies by profile. It is taken from the standard or from the multiplex operator rather than guessed at in code. Protection level is capacity — the same audio bitrate costs more CUs at stronger protection — so the trade-off should be visible, not silently computed.

Separate from Tenant. Tenant means ownership. A service is a thing delivered. Using Tenant for services spends it on the wrong concept and blocks using tenancy for real ownership later.

Not here yet

  • SignalChain — ordered, Device-referencing paths tagged by medium (audio / data / gpio / video / rf), criticality (program vs ancillary), and role (primary / backup). One service has many chains: program audio, RDS, now-playing metadata and GPIO can each take different routes with backups in different directions.
  • Diversity validation — the payoff. Walk primary against backup and report every shared device, rack, location, power feed or circuit. Redundancy that isn't diverse is the failure people don't find out about until it happens. Unknown must report as unknown, never as diverse.
  • REST API, UI views, tables, filters, navigation.

Development

No local dev environment yet. Migrations are generated against a running Nautobot 3.0.11 by putting the package on PYTHONPATH, adding nautobot_broadcast to PLUGINS in a throwaway config, and running makemigrations — a build-time artifact, not a deployment change.

Installing

pip install nautobot-app-broadcast

then add to PLUGINS in nautobot_config.py:

PLUGINS = ["nautobot_broadcast"]

Nautobot apps are Python packages baked into the image — they cannot be installed at runtime — so containerised deployments need this in their image build.

Licence

Apache-2.0 — see LICENSE. Same as Nautobot itself, so it composes freely with the rest of the ecosystem.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nautobot_app_broadcast-0.4.1.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

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

nautobot_app_broadcast-0.4.1-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file nautobot_app_broadcast-0.4.1.tar.gz.

File metadata

  • Download URL: nautobot_app_broadcast-0.4.1.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nautobot_app_broadcast-0.4.1.tar.gz
Algorithm Hash digest
SHA256 9173bb560f1a46be2baaa5737ddefd623d97b4178a31692a19b02dfe9dcfc476
MD5 992438c7b46654c4b860d6c9956e323d
BLAKE2b-256 a2bdc8137597af00b1f583b267f5733e04927cf78b93aee152a654ac23521f9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nautobot_app_broadcast-0.4.1.tar.gz:

Publisher: release.yml on at-blacknight-projects/nautobot-app-broadcast

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

File details

Details for the file nautobot_app_broadcast-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for nautobot_app_broadcast-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cf72e6d52d84f158a72e3815515e74575de516679d8031e5961c71ff991139bc
MD5 430e48b42acb5b98ff38b22e480ec5f8
BLAKE2b-256 b9d5b41e26a798e28b4597d2a1a94e3a5f27058b152a9229ed724284bb6c88b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for nautobot_app_broadcast-0.4.1-py3-none-any.whl:

Publisher: release.yml on at-blacknight-projects/nautobot-app-broadcast

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

Release history Release notifications | RSS feed

0.4.3

2 files

0.4.2

2 files

This release

0.4.1 This release

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page