ATFeed RSS
Veřejné RSS kanály s informacemi z českých institucí a dalších veřejných zdrojů. Přidejte si kanál do své čtečky, nebo ho použijte jako datový zdroj ve vlastní aplikaci.
Co AtFeed RSS nabízí
Pro uživatele RSS čteček
Pokud používáte Feedly, Inoreader, Thunderbird, NewsBlur nebo jinou RSS čtečku, stačí do ní přidat URL požadovaného kanálu.
Veřejné RSS kanály
AtFeed umožňuje odebírat pouze určitou část obsahu — podle zdroje, kategorie, osoby nebo organizace.
Podle zdroje
/rss/source/{slug}
Například:
slug je URL identifikátor zdroje — malá písmena, bez diakritiky,
mezery nahrazené pomlčkou.
ministerstvo-zemedelstvi/rss/source/ministerstvo-zemedelstviPodle kategorie
/rss/category/{slug}
Kategorie popisuje hlavní oblast, které se příspěvek týká. Jsou určovány během zpracování obsahu AtFeed.
Podle tématu
/rss/topic/{slug}
Téma je vhodné pro sledování konkrétní oblasti bez ohledu na zdroj.
Aktuálně se /topic/ chová stejně jako odpovídající
kategoriální filtrace.
Podle osoby
/rss/person/{slug}
Kanál obsahuje příspěvky, ve kterých byla identifikována konkrétní osoba.
Podle organizace
/rss/organization/{slug}
Nastavení RSS kanálu
Každý veřejný RSS endpoint podporuje dva základní parametry.
| Parametr | Hodnoty | Výchozí | Maximum |
|---|---|---|---|
limit |
1–20 | 20 | 20 |
format |
reader, plain |
reader |
— |
Limit výsledků
Například /rss?limit=5 vrátí pouze 5 nejnovějších příspěvků:
Pro vývojáře
Pokud chcete obsah AtFeed dále zpracovávat ve vlastní aplikaci,
použijte parametr format=plain.
atfeed:.
Výhodou je, že nemusíte parsovat HTML z popisu článku. Můžete přímo načíst například:
atfeed:summary
atfeed:keyPoint
atfeed:person
atfeed:organization
atfeed:category
atfeed:location
Formát reader
Výchozí formát, určený především pro klasické RSS čtečky. Obsahuje:
- Standardní RSS metadata
- Textový popis (plain text)
- HTML obsah článku (
content:encoded) - AI shrnutí a klíčové body
- Metadata — lokalita, osoby, organizace
- Odkaz na původní článek
- Obrázek článku (
enclosure)
Příklad itemu
<item>
<title>Nová opatření vlády…</title>
<link>https://atfeed.cz/posts/314</link>
<guid isPermaLink="false">tag:atfeed.cz,2026:post/314</guid>
<pubDate>Fri, 18 Sep 2026 14:43:48 +0200</pubDate>
<source url="https://example.cz/rss">Vláda ČR</source>
<category>zdravotnictví</category>
<description>Vláda ČR · 18. 9. 2026 14:43
AI shrnutí:
Stručné shrnutí obsahu článku…
Klíčové body:
• První důležitá informace
• Druhá důležitá informace
• Třetí důležitá informace
Původní článek: https://example.cz/clanek</description>
<content:encoded><![CDATA[
<p><small>Vláda ČR · 18. 9. 2026 14:43</small></p>
<h3>AI shrnutí</h3>
<p>Stručné shrnutí…</p>
<h3>Klíčové body</h3>
<ul><li>…</li></ul>
<p><a href="https://example.cz/clanek">Přečíst původní článek →</a></p>
]]></content:encoded>
<enclosure url="https://atfeed.cz/og/article/314.png"
type="image/png" length="0"/>
</item>
description
Plain-text verze článku, bez HTML. Vhodná pro jednoduché čtečky, terminálové klienty, RSS-to-email služby.
content:encoded
Sémantické HTML — nadpisy, odstavce, seznamy, odkazy. Bez inline stylů, aby si čtečka mohla obsah zobrazit podle vlastního vzhledu.
enclosure
OG obrázek článku, který dynamicky generujeme z titulku, zdroje, lokality a identifikovaných osob.
Formát plain
Strukturovaná data v samostatných XML elementech. Standardní RSS elementy zůstávají, ale informace specifické pro AtFeed jsou dostupné přímo, bez nutnosti parsovat HTML.
<item>
<title>Nová opatření vlády…</title>
<link>https://atfeed.cz/posts/314</link>
<pubDate>Fri, 18 Sep 2026 14:43:48 +0200</pubDate>
<atfeed:atfeedUrl>https://atfeed.cz/posts/314</atfeed:atfeedUrl>
<atfeed:originalUrl>https://example.cz/clanek</atfeed:originalUrl>
<atfeed:publishedAt>2026-09-18T14:43:48+02:00</atfeed:publishedAt>
<atfeed:sourceName>Vláda ČR</atfeed:sourceName>
<atfeed:sourceUrl>https://example.cz/rss</atfeed:sourceUrl>
<atfeed:summary>Stručné AI shrnutí článku.</atfeed:summary>
<atfeed:keyPoint>První důležitá informace.</atfeed:keyPoint>
<atfeed:keyPoint>Druhá důležitá informace.</atfeed:keyPoint>
<atfeed:category>zdravotnictví</atfeed:category>
<atfeed:location>Praha</atfeed:location>
<atfeed:person>Andrej Babiš</atfeed:person>
<atfeed:organization>Úřad vlády České republiky</atfeed:organization>
</item>
AtFeed XML namespace
Elementy specifické pro AtFeed používají namespace:
https://atfeed.cz/ns/rss/1.0
V XML je namespace deklarován například:
xmlns:atfeed="https://atfeed.cz/ns/rss/1.0"
Namespace umožňuje vývojářům jednoznačně rozlišit vlastní elementy AtFeed od standardních RSS elementů. Není třeba ho registrovat u žádné centrální služby — XML parser pracuje s URI namespace přímo z dokumentu.
Přehled elementů
| Element | Typ | Počet | Popis |
|---|---|---|---|
atfeed:atfeedUrl | URL | 1 | Kanonická URL článku na AtFeed |
atfeed:originalUrl | URL | 1 | URL původního článku |
atfeed:publishedAt | ISO 8601 | 0–1 | Datum publikace |
atfeed:sourceName | string | 0–1 | Název zdroje |
atfeed:sourceUrl | URL | 0–1 | URL zdrojového RSS |
atfeed:summary | string | 0–1 | AI shrnutí |
atfeed:keyPoint | string | 0–N | Klíčové body |
atfeed:category | string | 0–1 | Kategorie |
atfeed:location | string | 0–1 | Identifikovaná lokalita |
atfeed:person | string | 0–N | Identifikované osoby |
atfeed:organization | string | 0–N | Identifikované organizace |
atfeed:aiProvider | string | 0–1 | Poskytovatel AI |
atfeed:aiModel | string | 0–1 | Použitý AI model |
atfeed:aiPromptVersion | string | 0–1 | Verze AI promptu |
atfeed:aiGeneratedAt | ISO 8601 | 0–1 | Čas vytvoření AI zpracování |
Příklady pro vývojáře
Python (feedparser)
import feedparser
feed = feedparser.parse(
"https://atfeed.cz/rss?format=plain"
)
print(f"Kanál: {feed.feed.title}")
print(f"Příspěvků: {len(feed.entries)}")
for entry in feed.entries:
print(f"\n# {entry.title}")
print(f"URL: {entry.link}")
summary = entry.get("atfeed_summary")
if summary:
print(f"Shrnutí: {summary}")
key_points = entry.get("atfeed_keypoint", [])
if isinstance(key_points, str):
key_points = [key_points]
for point in key_points:
print(f" • {point}")
Python + lxml
from lxml import etree
import requests
NS = {"atfeed": "https://atfeed.cz/ns/rss/1.0"}
response = requests.get("https://atfeed.cz/rss?format=plain")
response.raise_for_status()
root = etree.fromstring(response.content)
for item in root.xpath("//item"):
title = item.findtext("title")
summary = item.findtext("atfeed:summary", namespaces=NS)
category = item.findtext("atfeed:category", namespaces=NS)
people = [
el.text for el in item.findall("atfeed:person", namespaces=NS)
]
organizations = [
el.text for el in item.findall("atfeed:organization", namespaces=NS)
]
print(title, category, summary, people, organizations)
JavaScript / Node.js
const { XMLParser } = require("fast-xml-parser");
const parser = new XMLParser({
ignoreAttributes: false,
isArray: (name) => [
"item",
"atfeed:keyPoint",
"atfeed:person",
"atfeed:organization",
"category"
].includes(name)
});
const response = await fetch(
"https://atfeed.cz/rss?format=plain"
);
const xml = await response.text();
const feed = parser.parse(xml);
for (const item of feed.rss.channel.item) {
console.log(item.title);
console.log(item["atfeed:summary"]);
console.log(item["atfeed:keyPoint"] || []);
}
PHP (SimpleXML)
<?php
$xml = simplexml_load_file(
'https://atfeed.cz/rss?format=plain'
);
$xml->registerXPathNamespace(
'atfeed',
'https://atfeed.cz/ns/rss/1.0'
);
foreach ($xml->channel->item as $item) {
echo $item->title . PHP_EOL;
$atfeed = $item->children(
'https://atfeed.cz/ns/rss/1.0'
);
echo 'Kategorie: ' . $atfeed->category . PHP_EOL;
echo 'Shrnutí: ' . $atfeed->summary . PHP_EOL;
echo PHP_EOL;
}
cURL
# Zobrazit RSS
curl -s 'https://atfeed.cz/rss'
# Formátovat XML
curl -s 'https://atfeed.cz/rss' | xmllint --format -
# Pouze plain formát
curl -s 'https://atfeed.cz/rss?format=plain'
# RSS podle osoby
curl -s 'https://atfeed.cz/rss/person/andrej-babis?format=plain'
Vlastní RSS kanály
Přihlášení uživatelé AtFeed si mohou vytvořit vlastní RSS kanály, které kombinují filtry podle zdroje, kategorie, tématu, osoby a organizace.
Jak filtry fungují
- Uvnitř jednoho typu platí OR — např.
Root.cz OR Lupa.cz - Mezi typy platí AND — např.
(Root.cz OR Lupa.cz) AND (Technologie) AND (AI) - Prázdný filtr = žádné omezení (např. bez zdroje = články ze všech zdrojů)
- Alespoň jeden filtr musí být vybrán, jinak by kanál byl jen kopií
/rss
Správa kanálů
V uživatelském účtu otevřete /account/rss. Odtud můžete:
- Vytvořit nový kanál
- Upravit filtry existujícího kanálu
- Kopírovat URL kanálu pro vložení do RSS čtečky
- Deaktivovat — URL přestane vracet obsah (HTTP 410)
- Aktivovat zpět
- Regenerovat URL — vygeneruje nový token, stará URL okamžitě přestane fungovat
- Smazat — trvale odstraní konfiguraci
Bezpečnost URL
Vlastní RSS URL funguje jako přístupový token. V databázi ukládáme pouze jeho SHA-256 hash — plain token zobrazíme jen jednou, při vytvoření nebo regeneraci.
Limity a cache
- Limit výsledků: 10 / 20 / 30 / 50 / 100 článků
- Cache:
Cache-Control: private, max-age=60, must-revalidate - Podporované formáty:
?format=reader(výchozí) a?format=plain - Parametr
?limit=...je ignorován — limit je součástí konfigurace kanálu
Chování a cache
Aktualizace a cache
Veřejné RSS kanály používají cache:
Cache-Control: public, max-age=60, must-revalidate
Kanály jsou aktualizovány přibližně každou minutu. V XML odpovědi je doporučení:
<ttl>1</ttl>
AtFeed omezuje počet položek v jednom kanálu na 20. Toto omezení je záměrné — RSS není určeno ke stahování archivu.
Neexistující zdroj
Pokud požadujete například /rss/source/neexistujici-zdroj,
AtFeed vrátí prázdný RSS kanál s HTTP 200. Toto
chování je záměrné — některé RSS čtečky interpretují 404 jako
trvale nefunkční kanál a přestanou ho kontrolovat.
Dočasná nedostupnost
Pokud interní služba potřebná pro sestavení RSS není dostupná,
endpoint může vrátit 503 Service Unavailable
s RSS odpovědí. Cílem je, aby dočasná chyba nezpůsobila
nekontrolované selhání RSS služby.
Autentizace
Veřejné RSS kanály nevyžadují přihlášení,
API klíč ani jinou autentizaci. Jsou dostupné přes HTTPS
na https://atfeed.cz/rss.
Vlastní RSS kanály jsou navázané na AtFeed účet a používají unikátní URL token. RSS čtečka se k vlastnímu kanálu nepřihlašuje.
Data a původ obsahu
AtFeed zpracovává informace z veřejně dostupných zdrojů. AtFeed není původcem publikovaných zpráv.
U jednotlivých položek proto poskytujeme:
atfeed:originalUrl— odkaz na původní článekatfeed:atfeedUrl— odkaz na odpovídající stránku na AtFeed
Pokud AtFeed RSS používáte ve vlastní aplikaci, doporučujeme zachovat odkaz na původní zdroj.
Doporučení pro vývojáře
- Používejte
guidjako identifikátor položky, nikoliv její pořadí v RSS. - Ukládejte
publishedAt, pokud potřebujete pracovat s časem publikace. - Pro zpracování používejte
format=plain. - Nezávisle na počtu položek počítejte s tím, že některé volitelné elementy mohou chybět.
atfeed:keyPoint,atfeed:personaatfeed:organizationmohou obsahovat více hodnot.- Ignorujte neznámé
atfeed:elementy — pro kompatibilitu s budoucími verzemi. - Respektujte HTTP cache hlavičky a zbytečně neobnovujte RSS častěji než jednou za minutu.
- Pro kompletní historický dataset nepoužívejte RSS — je určeno pro průběžné sledování.
Přehled dostupných slugů
Pro zjištění, jaké slugy jsou aktuálně dostupné, můžete použít
endpoint /rss/slugs. Vrací JSON se seznamem všech
zdrojů, kategorií, osob a organizací, které se v příspěvcích objevují.
Struktura odpovědi
{
"total_articles": 314,
"generated_at": "2026-09-18T16:30:00+02:00",
"sources": [
{ "name": "Vláda ČR", "slug": "vlada-cr" },
{ "name": "Ministerstvo zemědělství", "slug": "ministerstvo-zemedelstvi" }
],
"categories": [
{ "name": "zdravotnictví", "slug": "zdravotnictvi" },
{ "name": "zahraničí", "slug": "zahranici" }
],
"people": [
{ "name": "Andrej Babiš", "slug": "andrej-babis" }
],
"organizations": [
{ "name": "Úřad vlády České republiky", "slug": "urad-vlady-ceske-republiky" }
],
"endpoints": {
"all": "https://atfeed.cz/rss",
"source": "https://atfeed.cz/rss/source/{slug}",
"category": "https://atfeed.cz/rss/category/{slug}",
"topic": "https://atfeed.cz/rss/topic/{slug}",
"person": "https://atfeed.cz/rss/person/{slug}",
"organization": "https://atfeed.cz/rss/organization/{slug}"
}
}
Použití
Ruční použití: otevřete /rss/slugs
v prohlížeči a najděte slug, který potřebujete.
Programové použití: endpoint můžete použít pro dynamické načtení dostupných filtrů (např. našeptávač zdrojů, dropdown kategorií, filtrování osob).
Příklad — Python
import requests
response = requests.get("https://atfeed.cz/rss/slugs")
data = response.json()
# Načteme dostupné zdroje
for source in data["sources"]:
print(f"{source['name']} → {source['slug']}")
# Sestavíme URL pro konkrétní zdroj
first_source = data["sources"][0]
url = f"https://atfeed.cz/rss/source/{first_source['slug']}"
print(f"RSS: {url}")
Příklad — JavaScript
const response = await fetch("https://atfeed.cz/rss/slugs");
const data = await response.json();
// Našeptávač pro zdroje
const sourceOptions = data.sources.map(
(s) => { value: s.slug, label: s.name }
);
// Sestavíme RSS URL
console.log(
`https://atfeed.cz/rss/source/${data.sources[0].slug}`
);
Cache
Endpoint má cache 300 sekund (5 minut). Data se
obnovují pomaleji než RSS kanály, protože přehled slugů se
mění méně často.
Přehled RSS endpointů
| Účel | Endpoint |
|---|---|
| Všechny příspěvky | /rss |
| Podle zdroje | /rss/source/{slug} |
| Podle kategorie | /rss/category/{slug} |
| Podle tématu | /rss/topic/{slug} |
| Podle osoby | /rss/person/{slug} |
| Podle organizace | /rss/organization/{slug} |
| Vlastní kanál | /rss/custom/{token} |
Parametry:
?limit=1–20?format=reader?format=plain
Parametry lze kombinovat:
https://atfeed.cz/rss/category/technologie?limit=10&format=plain
Potřebujete něco dalšího?
Pro konkrétní oblast
Použijte RSS podle zdroje, kategorie, tématu, osoby nebo organizace.
Zobrazit kanály