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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nautobot_app_broadcast-0.4.0.tar.gz.
File metadata
- Download URL: nautobot_app_broadcast-0.4.0.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d4d004544ac9d8d21352f8f1e82723b27beb1ca76521d5236f2fe86313d858c
|
|
| MD5 |
e727c1ba95ff0b15e596fc2dc867a36e
|
|
| BLAKE2b-256 |
0a562041b90d146112967b13e83d8d0527409daff72edc8804abe2ac751321cd
|
Provenance
The following attestation bundles were made for nautobot_app_broadcast-0.4.0.tar.gz:
Publisher:
release.yml on at-blacknight-projects/nautobot-app-broadcast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nautobot_app_broadcast-0.4.0.tar.gz -
Subject digest:
2d4d004544ac9d8d21352f8f1e82723b27beb1ca76521d5236f2fe86313d858c - Sigstore transparency entry: 2332941002
- Sigstore integration time:
-
Permalink:
at-blacknight-projects/nautobot-app-broadcast@50340d991851a38a4155f355f2493d2642b673c7 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/at-blacknight-projects
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@50340d991851a38a4155f355f2493d2642b673c7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file nautobot_app_broadcast-0.4.0-py3-none-any.whl.
File metadata
- Download URL: nautobot_app_broadcast-0.4.0-py3-none-any.whl
- Upload date:
- Size: 28.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01cd4efe1ac3661fa43ec15eb1cd5a696cd2060b418975904f3b902e4ac10874
|
|
| MD5 |
5bd99b788b3880320dcd80eeacf6619c
|
|
| BLAKE2b-256 |
a82cb6176570b640de102f5766507a08a44d70771ed14a9f99bdf1ff5479edcd
|
Provenance
The following attestation bundles were made for nautobot_app_broadcast-0.4.0-py3-none-any.whl:
Publisher:
release.yml on at-blacknight-projects/nautobot-app-broadcast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nautobot_app_broadcast-0.4.0-py3-none-any.whl -
Subject digest:
01cd4efe1ac3661fa43ec15eb1cd5a696cd2060b418975904f3b902e4ac10874 - Sigstore transparency entry: 2332941015
- Sigstore integration time:
-
Permalink:
at-blacknight-projects/nautobot-app-broadcast@50340d991851a38a4155f355f2493d2642b673c7 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/at-blacknight-projects
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@50340d991851a38a4155f355f2493d2642b673c7 -
Trigger Event:
push
-
Statement type: