This release is a pre-release and may not be stable for production use.
ovos-media-provider-pyradios
OVOS MediaProvider plugin for internet radio. It replaces the deprecated
OCP search skill ovos-skill-pyradios.
Instead of broadcasting ovos.common_play.query over the bus and waiting for
skills to answer, the OCP pipeline loads MediaProvider plugins in-process,
gates them by routing, and calls search() directly. This plugin wraps the
pyradios client for the
radio-browser.info API.
pyradios ships no mediavocab bridge, so this plugin builds
mediavocab.Release objects
itself from the raw station dicts: each station becomes a MediaType.RADIO
Work plus a continuous-stream Release that points at the resolved stream
URL.
Install
pip install ovos-media-provider-pyradios
Usage
OCP loads this plugin through its opm.media.provider entry point, so most
users never call it directly. To use it as a standalone library, call
search() with a mediavocab.Signals object:
from mediavocab import Signals
from ovos_media_provider_pyradios import PyRadiosMediaProvider
provider = PyRadiosMediaProvider()
releases = provider.search(Signals(title="BBC Radio 1"))
for release in releases:
print(release.work.title, release.uri)
search() queries radio-browser by station name. If signals carries genre
or content tags, the plugin passes them through as a radio-browser
tag_list filter. It returns an empty list when the request carries neither
a title nor genres, or when the radio-browser API is unreachable.
Routing
There is no declarative routing table. OCP calls every installed provider's search()
method for each query; a provider that cannot serve the query (no title or genre tags in
the request, no matching stations, an unreachable radio-browser API) just returns an
empty list.
Entry point
[project.entry-points."opm.media.provider"]
pyradios = "ovos_media_provider_pyradios:PyRadiosMediaProvider"
Configuration
| Key | Default | Description |
|---|---|---|
max_results |
10 |
Maximum number of stations returned per search. |
Related projects
ovos-plugin-manager: loads and gates MediaProvider plugins for the OCP pipeline.mediavocab: defines theWork/Release/Signalstypes this plugin builds and consumes.ovos-skill-pyradios: the deprecated OCP search skill this plugin replaces.ovos-media-provider-somafm,ovos-media-provider-tunein,ovos-media-provider-radio-tuga,ovos-media-provider-radio-spain: sibling radio MediaProvider plugins.
License
Apache-2.0
Metadata
Release files for ovos-media-provider-pyradios 0.0.1a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ovos_media_provider_pyradios-0.0.1a5.tar.gz | 10.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ovos_media_provider_pyradios-0.0.1a5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.8 kB
Release files / ovos_media_provider_pyradios-0.0.1a5.tar.gz
| Download URL | ovos_media_provider_pyradios-0.0.1a5.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
738ecc5c8879b8a1c6cd75e4123c90782cc9a025deff0f56b515e1d04169df04
|
|
BLAKE2b-256 checksum How to use checksums |
3f4af87f5052295ea912f8eb11717ce4f3836cc5bf6cb1ec2c257f1830210ba1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ovos_media_provider_pyradios-0.0.1a5-py3-none-any.whl
| Download URL | ovos_media_provider_pyradios-0.0.1a5-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
18fb2ee0bbf8b9f9e375f5f3fb9c3d724da85fd2aae1df301eff8817341f4d7a
|
|
BLAKE2b-256 checksum How to use checksums |
dd2e0a9d1eb10ba1fc8e3e87969003929033a9cac20e8d02f1ab2eee2514b4cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|