Jak z veřejného zdroje dat udělat měsíční feed za 725 Kč

Prodej dat formou předplatného je nejnudnější vedlejší příjem s AI, který jsem provozoval, a zároveň ten s nejčistší marží. Produkt není oslnivý chatbot — je to tabulka, která se obnovuje podle plánu a přistane v doručené poště nebo v API odběratele. Crawler je malý, právní filtr přísný a seznam zákazníků krátký a věrný. Celé jsem to postavil za čtyři víkendy a od té doby to běží víceméně beze změny pět měsíců. Tady popisuji, jak vybírám výklenku, jak to držím legálně a jak získám první platící zákazníky.
Test výklenky — dříve než napíšu jediný řádek kódu
Prodejný datový feed má tři vlastnosti: zdroj je veřejný, data se mění dostatečně často, aby předplatné dávalo smysl, a kupující za ošklivější verzi téhož již někomu platí. Cokoliv, co nesplní ani jednu z podmínek, rovnou vyřadím. Kandidáty vybírám zveřejněním dvouřádkového pitche v oborových fórech a malých subredditech — stejný filtr, který používám pro AI chatbot na předplatné. Pokud nezískám alespoň čtyři vážné odpovědi do 72 hodin, výklenka padá na místě. Postavit feed, o který nikdo nežádal, je chyba, kterou odmítám zopakovat.
Právní kontrolní seznam, který nepřekročím
Tenhle krok zabíjí většinu projektů — a právem. Dříve než napíšu jediný řádek kódu crawleru, odpovím na pět otázek o zdroji. Jsou data za přihlášením? Zakazují smluvní podmínky automatizovaný přístup? Vylučuje robots.txt cesty, které chci? Překračuje moje frekvence crawlingu to, co by dělal slušný uživatelský agent? Odhaluje výstup osobní údaje způsobem, jakým původní vydavatel ne? Pokud je jakákoliv odpověď nepohodlná, přejdu k dalšímu kandidátovi. Pro každý zdroj vedu písemný záznam s datem, aby při případném sporu šlo prokázat provedení kontroly. Tato právní hygiena se překrývá s papírovou stopou, kterou vedu u domén — nudná dokumentace vás zachrání.
Zásobník nástrojů — záměrně malý
Jeden malý VPS za 150 Kč měsíčně, Python s requests a selectolax pro parsování, SQLite pro stav, rotující pool rezidenčních proxy za 375 Kč měsíčně, jedna cronjob každých 60 minut. Žádný Kafka, žádné fronty, žádné mikroservisy. Celkové náklady na infrastrukturu jsou 525 Kč měsíčně. AI vstupuje přesně na dvou místech: za prvé při tvorbě extrakčních selektorů ze vzorové stránky — to ušetří asi tři hodiny; za druhé při normalizaci nepořádných textových polí, jako jsou názvy firem a lokace. Samotný crawler má 380 řádků deterministického Pythonu. Nudný kód, který se snadno ladí v 23:00, když něco praskne.
- Načíst stránku se seznamem, porovnat s posledním snímkem, extrahovat URL nových položek.
- Načíst každou novou položku, zparsovat pole, ověřit typy.
- Normalizovat volný text levným LLM voláním, omezit náklady na 0,05 Kč za řádek.
- Deduplikovat v SQLite pomocí hashe normalizovaného záznamu.
- Připojit k dennímu CSV, doručit odběratelům e-mailem i přes malý JSON endpoint.
Cenotvorba, balení a prvních 14 kupujících
Cenu jsem nastavil na 725 Kč měsíčně hned od prvního dne, bez zkušebního období. Zkušební verze by přitáhla zvědavce a tento produkt přežívá na kupujících, kteří problém již znají. První tři odběratelé přišli ze stejného fóra, kde jsem testoval pitch. Dalších osm přišlo z jediného studeného e-mailového kampaně, které jsem rozeslal 40 malým agenturám, jež danou práci zjevně dělaly ručně. Míra odpovědi byla 28 %, míra uzavření u odpovědí 25 %. Zbývající tři mě našli přes vyhledávač po dvou krátkých textech, které jsem zveřejnil. Příjmy v pátém měsíci: 10 150 Kč měsíčně, náklady 525 Kč infrastruktura plus přibližně 2 125 Kč tokenů a proxy v nejtěžším měsíci, čistá marže kolem 7 500 Kč. To je 74% marže na produktu, který mi zabere přibližně 90 minut údržby týdně. Ekonomika na úrovni jednotky se blíží mému placeném newsletteru víc než většině AI wrapper projektů.
Údržba — ta část, kterou nikdo neukazuje na prodejní stránce
Každé úterý večer otevřu dashboard, přehlédnu chybový log a opravím vše, co se změnilo. Za pět měsíců jsem sáhl na selektory čtyřikrát. Dvakrát šlo o drobné úpravy layoutu zdroje, jednou o tichý 403, který potřeboval novou rotaci user agenta, jednou o zásadní změnu schématu, která mi zabrala celý večer. Počítám se 90 minutami týdně a průměrně utratím asi 60. Bez tohoto pevného časového slotu by feed shnilel do čtvrt roku — to je selhání, před nímž varuji na hubu Vedlejší příjmy s AI.
Prodávejte schéma, ne scraping
Kupující je jedno, že scrapujete. Záleží jim na tom, aby byl váš výstup čisté, stabilní schéma, které mohou bez přejmenování sloupců nacpat do vlastních nástrojů. Schéma zveřejňuji na prodejní stránce s ukázkovým CSV a malým souborem JSON Schema. Tento jeden detail uzavřel nejméně tři z mých prvních deseti odběratelů, kteří se spálili na předchozím feedu, jenž měnil sloupce bez varování. Jednostránkový dokument se schématem má větší cenu než jakýkoliv text na landing page.
Nescrapujte nic, co vyžaduje přihlášení — i kdyby to vypadalo jednoduše. Jednou jsem toto pravidlo porušil u zdroje s velmi tenkou přihlašovací stěnou a strávil jsem týden hádkami s vydavatelem a musel jsem vrátit peníze dvěma odběratelům. Úzký veřejný zdroj se skromným objemem vždy porazí bohatý chráněný zdroj s právním rizikem. Pokud se feed nedá postavit bez přihlášení, postavte jiný feed.
Časté dotazy
Je scraping veřejných dat legální?
Veřejná data bez přihlášení a bez smluvních podmínek zakazujících automatizovaný přístup jsou v bezpečné zóně ve většině jurisdikcí. Scraping za přihlášením, obcházení rychlostních limitů nebo ignorování robots.txt vás z té zóny rychle dostanou. Pro každý zdroj si vedu jednostránkový právní kontrolní seznam a odmítám jakýkoliv feed, který nesplňuje každý bod.
Kolik si za výklenkový feed opravdu lze účtovat?
Můj feed stojí 725 Kč měsíčně a má 14 platících odběratelů — 10 150 Kč opakujících se příjmů. Obecný zpravodajský feed by za tuto cenu nepřežil; úzký oborový feed s čerstvostí 60 minut a čistým schématem ano. Kupující jsou téměř vždy malé agentury nebo jednoosá výzkumná oddělení, která oceňují ušetřený čas, ne surová data.
Může AI nahradit scrapingový pipeline?
AI píše extrakční prompty a normalizuje nepořádné datové pole, ale instalatérská práce (plánování, opakované pokusy, deduplikace, detekce změn) je stále nudný kód. Zkoušel jsem celý pipeline provozovat přes LLM agenta — fungovalo to víkend a pak tiše začalo selhávat. Používejte AI pro fuzzy části, deterministické části nechte deterministické.