Hoyolab RSS Feeds
Generate RSS news feeds for Hoyoverse games like Genshin Impact, Honkai Starrail or Zenless Zone Zero based on the official Hoyolab forum posts. Available feed formats are Atom and JSON Feed. This application is supposed to run periodically by a cronjob for example.
Installation
You can install the application from PyPI with:
python3 -m pip install hoyolab-rss-feeds
... or pull as Docker image:
docker pull ghcr.io/c3kay/hoyolab-rss-feeds
Usage
CLI
You can run the application like this:
hoyolabrssfeeds
... or explicitly as module:
python3 -m hoyolabrssfeeds
You can specify a custom path to the config file as parameter:
hoyolabrssfeeds -c path/to/config.toml
If no configuration can be found, a default config will be created
in your current directory (./hoyolab-rss-feeds.toml).
Module
You can use the application as Python module/library and customize feed generation:
from pathlib import Path
from hoyolabrssfeeds import FeedConfigLoader, GameFeed, GameFeedCollection, Game
async def generate_feeds():
loader = FeedConfigLoader(Path("path/to/config.toml"))
# option 1: all games found in config
all_configs = await loader.get_all_feed_configs()
feed_collection = GameFeedCollection.from_configs(all_configs)
await feed_collection.create_feeds()
# option 2: only a specific game from config
genshin_config = await loader.get_feed_config(Game.GENSHIN)
genshin_feed = GameFeed.from_config(genshin_config)
await genshin_feed.create_feed()
Here you can find an example on how to create a feed without using the config file.
Docker
The application is also available as Docker image and can be run like this:
docker run \
-v "/path/to/config.toml:/app/config.toml" \
-v "/path/to/data:/data" \
ghcr.io/c3kay/hoyolab-rss-feeds
The config file should be mounted to the default path /app/config.toml.
The /data directory should be used as the target directory for the generated
feeds and also need to be configured like so in the config file
(see option feed.<format>.path below).
Note: You still need some kind of scheduler like cron or Kubernetes to run the image in a fixed interval to refresh the feeds!
Configuration
In the TOML config file you can define the games you want to create feeds for and in which format the feeds should be. Here is an example config:
language = "de-de"
category_size = 15
[genshin]
feed.json.path = "path/to/genshin.json"
feed.json.url = "https://example.org/genshin.json"
categories = ["Info", "Notices"]
category_size = 5
title = "Genshin Impact News"
icon = "https://example.org/icon.png"
[starrail]
feed.json.path = "path/to/starrail.json"
feed.json.url = "https://example.org/starrail.json"
feed.atom.path = "path/to/starrail.xml"
feed.atom.url = "https://example.org/starrail.xml"
A minimal configuration requires at least one game section with a feed.<format>.path
entry. Available feed formats are currently json and atom. You can either use
one format or both.
Entries defined at root level are considered default values and will apply to every
game section. The feed key can only be used in a game section. All other keys
can be defined at root level, and they can be overwritten by a game section.
The categories list defines the selected Hoyolab categories (Info, Event and
Notices) for this feed. If this entry is omitted, all categories are selected.
The category_size entry defines the amount of feed items (default: 5) of a category
for each feed.
Note: When using Windows file paths (like C:\\path\to\config.toml), single quotes
should be used to avoid wrong auto-escaping of backslashes. More info about the TOML
format can be found in the official documentation.
Logging
Simple logs at level INFO are written to the terminal by default. If a file path is given
via parameter (-l /path/to/out.log), the logs are written to this file.
If the application is used as module, the logger must be configured separately. The application specific logger is available by:
import logging
logger = logging.getLogger("hoyolabrssfeeds")
Options
Games
| Game | Section |
|---|---|
| Genshin Impact | genshin |
| Honkai Impact 3rd | honkai |
| Honkai: Starrail | starrail |
| Zenless Zone Zero | zenless |
| Tears of Themis | themis |
| Honkai: Nexus Anima | nexus |
| Petit Planet | planet |
Languages
English is the default language.
| Language | Code |
|---|---|
| German | de-de |
| English | en-us |
| Spanish | es-es |
| French | fr-fr |
| Indonesian | id-id |
| Italian | it-it |
| Japanese | ja-jp |
| Korean | ko-kr |
| Portuguese | pt-pt |
| Russian | ru-ru |
| Thai | th-th |
| Turkish | tr-tr |
| Vietnamese | vi-vn |
| Chinese (CN) | zh-cn |
| Chinese (TW) | zh-tw |
Metadata
Release files for hoyolab-rss-feeds 2.6.1
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 | |
|---|---|---|---|---|
| hoyolab_rss_feeds-2.6.1.tar.gz | 28.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hoyolab_rss_feeds-2.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.0 kB
Release files / hoyolab_rss_feeds-2.6.1.tar.gz
| Download URL | hoyolab_rss_feeds-2.6.1.tar.gz |
|---|---|
| Size | 28.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7ff0525b0cea78bb678c170e3a62bf055d4299bce6ec88ebfab10ab5fd7c020
|
|
BLAKE2b-256 checksum How to use checksums |
7e5b1b5d9d33ce333552b4d079881b2086f9169000dc1611bf0b1e83a8cee30f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 27, 2026.
Transparency logRelease files / hoyolab_rss_feeds-2.6.1-py3-none-any.whl
| Download URL | hoyolab_rss_feeds-2.6.1-py3-none-any.whl |
|---|---|
| Size | 19.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce05765080bc65df0f924d3d40519b3760f302b1e05ccbef46f9e531072ed37f
|
|
BLAKE2b-256 checksum How to use checksums |
06dbf845448b29ab0c493f9db858783553262fcfef9b7a2b8ea3c447f7e104e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 27, 2026.
Transparency logSecurity for hoyolab-rss-feeds 2.6.1
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 hoyolab_rss_feeds-2.6.1.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 Jun 27, 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.