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 bymedium(audio / data / gpio / video / rf),criticality(program vs ancillary), androle(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.
Metadata
Release files for nautobot-app-broadcast 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| nautobot_app_broadcast-0.4.3.tar.gz | 21.6 kB | With provenance | Details for nautobot_app_broadcast-0.4.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nautobot_app_broadcast-0.4.3-py3-none-any.whl | Python 3 | none | any | Details for nautobot_app_broadcast-0.4.3-py3-none-any.whl |
Total release size: 50.2 kB
Release files / nautobot_app_broadcast-0.4.3.tar.gz
| Download URL | nautobot_app_broadcast-0.4.3.tar.gz |
|---|---|
| Size | 21.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9fa6cd76a5a4fe07be38812d408a0d0ad518b666bbc48da747d3468c60ad6dee
|
|
BLAKE2b-256 checksum How to use checksums |
00f7d93d0009c513003adf2dcadd00b2aeb7c0725c71b388600c4d31df4f55d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.
Transparency logRelease files / nautobot_app_broadcast-0.4.3-py3-none-any.whl
| Download URL | nautobot_app_broadcast-0.4.3-py3-none-any.whl |
|---|---|
| Size | 28.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5f09f405039cfc3d4b06425156afea3784b7a71c71c2f1a798bab7850566cb37
|
|
BLAKE2b-256 checksum How to use checksums |
6151f50a3e1104817571f8ef29951ee4ae6b165c9c63381f68793f0a3d4944d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.
Transparency logSecurity for nautobot-app-broadcast 0.4.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for nautobot_app_broadcast-0.4.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.