Skip to main content

OVOS Blog

A provider skill for ovos-common-reading-pipeline-plugin, reading the OpenVoiceOS blog aloud.

This exists to prove a point: common-reading isn't just for fairy tales. It's an "article" provider, not a storyteller.

Tests PyPI version

This skill has no standalone voice interface. It registers no intents and never speaks. It only answers ovos.common_reading.* bus messages, so you also need ovos-common-reading-pipeline-plugin installed and added to your pipeline config for it to be useful at all.

Install

pip install ovos-skill-ovosblog ovos-common-reading-pipeline-plugin

Source

Feeds from https://blog.openvoiceos.org/feed.xml (RSS 2.0). The feed already contains full article HTML in <description>, not just a summary, so no separate page fetch is needed - just the feed itself (refreshed at most once an hour, matching the feed's own <ttl>60</ttl>).

Translation

The feed is English-only. If the device language isn't English, this provider machine-translates:

  • titles, before matching a spoken phrase against them (a Danish user speaks a Danish phrase, so that's what has to be matched - not the English original), and
  • the full article text, when actually reading it aloud.

using whatever ovos-plugin-manager language-translation plugin is configured (OVOSLangTranslationFactory.create()).

Every search response includes a "machine_translated": true/false field - ovos-common-reading-pipeline-plugin is expected to disclose this before reading the content aloud, so users know it's a machine translation rather than an original-language text.

If no translation plugin is installed/configured, this provider does not respond to searches at all for a non-English device - it would be misleading to offer an article it can only actually deliver in English when the user asked in (and expects) their own language. (English devices never need a translator and always get a response.)

Note for anyone comparing providers: unlike ovos-skill-andersen-tales/ovos-skill-grimm-tales/ ovos-skill-andrew-lang-tales, which check a fixed SUPPORTED_LANGUAGES set at load time and refuse to load at all otherwise, this provider always loads regardless of device language - it can't know in advance whether a translation plugin will be available, so it always registers its bus events and decides per-search instead (see above).

Collection hints

Responds to collection_hint values in the device's own language - e.g. "ovos blog"/"openvoiceos blog" on English, "ovos nyheder" on Danish, "blog de ovos" on Spanish - matched fuzzily against that language's own alias list (see locale/<lang>/collection.voc). Unlike ovos-skill-andersen-tales/ovos-skill-grimm-tales (a fixed set of languages), this provider works on any device language, so aliases fall back to English for any language we haven't bothered translating

Content type

Responds to content_type hints of "article", "blog", "news", or "post". Ignores everything else (e.g. "story", "poem").

"Surprise me"

A search with no specific phrase but a matching collection_hint (e.g. "read me something from the OVOS blog") returns the most recent post, by pubDate.

Credits

Content and feed from blog.openvoiceos.org, maintained by the OpenVoiceOS community.

Category

News

Tags

#news #blog #openvoiceos #rss #provider

Release files for ovos-skill-ovosblog 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-skill-ovosblog 0.1.3
File Size Uploaded
ovos_skill_ovosblog-0.1.3.tar.gz 29.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-skill-ovosblog 0.1.3
File Interpreter ABI Platform
ovos_skill_ovosblog-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 56.9 kB

Release files / ovos_skill_ovosblog-0.1.3.tar.gz

Download URL ovos_skill_ovosblog-0.1.3.tar.gz
Size 29.4 kB
Tags Source
SHA-256 checksum
How to use checksums
966b53cf6d509b28cd6e077e28a0e484a145398da68a342d9c646d5f61526d8a
BLAKE2b-256 checksum
How to use checksums
ca367bb1f9a913ef7aa7dd80f14242ed7518abb017572a5d96ced9bb17783e28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 25, 2026.

Transparency log

Release files / ovos_skill_ovosblog-0.1.3-py3-none-any.whl

Download URL ovos_skill_ovosblog-0.1.3-py3-none-any.whl
Size 27.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
25e48ddf57bc8e71217e4ee104c7255e33834182be0ff927537cdea319ec5095
BLAKE2b-256 checksum
How to use checksums
db0846af096834d031a3d49620cad7225ba6e683b75bf0948806d22f3d363fc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release 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