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

Uploaded Python 3

File details

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

File metadata

  • Download URL: nautobot_app_broadcast-0.1.0.tar.gz
  • Upload date:
  • Size: 15.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.1.0.tar.gz
Algorithm Hash digest
SHA256 6d5158364bb3df34e234e32e029c5e640a10d263c8319ead8528d8e215009f46
MD5 09563516581fa1f2afe74f30e4c54c94
BLAKE2b-256 87926a984775867bde49124d010874f70f5e3230aec8fec1825ee60c7b9cd0f6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for nautobot_app_broadcast-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b4ae7a66d76e7341687769639b17195d3a1a5dacae5af29999e3037cb8c50f5b
MD5 1fda5c6c1c5fe882e749ccfaea34c68e
BLAKE2b-256 35f4c4f8d1b6e85c6a8095132b6ebf14b8d01c0b7c1d1e87e15d89fc7ac8af46

See more details on using hashes here.

Provenance

The following attestation bundles were made for nautobot_app_broadcast-0.1.0-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

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

This release

0.1.0 This release

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