Files
hermes-config/skills/self-hosting/mealie-setup/references/recipe-curation.md
T
2026-07-13 02:00:15 -04:00

3.5 KiB
Raw Blame History

Recipe Curation for Batch Import

How to find popular, high-rated recipes and import them into Mealie.

Workflow

  1. Find popular collections on reliable scraper-compatible sites
  2. Extract individual recipe URLs (not category/search pages)
  3. Filter by dietary preference (e.g., no pork/bacon)
  4. Batch import via the Mealie API with polite delays

Reliable Source Sites (near-100% scraper success)

Site Notes
BBC Good Food (bbcgoodfood.com) Has curated collections like "All-time top 20 recipes", "Best rated recipes", "Most popular recipes of [year]". High rating counts (5003000+).
RecipeTin Eats (recipetineats.com) Has a "Most Popular" category across 12 pages. Many recipes have comments/ratings.

Both sites consistently return 200/201 from Mealie's scraper. Avoid sites behind Cloudflare (Damn Delicious, AllRecipes, Simply Recipes) — they fail with HTTP 400.

BBC Good Food

Known collection URLs (direct recipe lists, not just articles):

https://www.bbcgoodfood.com/recipes/collection/all-time-top-20-recipes
https://www.bbcgoodfood.com/recipes/collection/most-popular-recipes
https://www.bbcgoodfood.com/howto/guide/most-popular-recipes-on-good-food
https://www.bbcgoodfood.com/news-trends/popular-recipes-2025

Search strategy: site:bbcgoodfood.com "most popular" OR "top" OR "best rated" recipes collection

Each recipe on these list pages links to its individual URL (e.g., https://www.bbcgoodfood.com/recipes/chilli-con-carne-recipe).

RecipeTin Eats

The "Most Popular" category has 12 pages:

https://www.recipetineats.com/category/most-popular/
https://www.recipetineats.com/category/most-popular/page/2/
...up to page 12

To extract URLs from a category page programmatically, use the browser console:

JSON.stringify(Array.from(document.querySelectorAll('article a[href*="recipetineats.com"]')).map(a => a.href))

Or scrape with web_extract + regex on the class/HTML (the article titles contain links).

Filtering by Dietary Preference

When the user has restrictions (e.g., no pork or bacon), skip recipes with these in the title before importing:

  • "pork" (pork tenderloin, pork chops, pulled pork, etc.)
  • "bacon" (bacon-wrapped, bacon cheeseburger, etc.)
  • "chorizo" (often Spanish pork sausage — check if user is ok with it; chorizo is typically pork)
  • "pancetta" (cured pork belly, common in carbonara)
  • "sausage" (can be pork — check recipe page)
  • "prosciutto" / "ham" / "gammon"

Checking individual recipes: Open the recipe URL, scan the ingredient list for pork/bacon before importing. BBC Good Food often lists dietary tags (Vegetarian, Vegan, Healthy) which help quickly ID compatible recipes.

Curated safe categories with high success: vegetarian, chicken, beef, lamb, fish/seafood, pasta (without pork), curries, baked goods, soups, salads.

Batch Import Script

See references/batch-import.md for the full Python import script.

Recommended settings:

  • 2-second delay between imports (avoids rate limiting on BBC Good Food)
  • 60-second timeout per URL (Mealie's scraper can be slow on first parse)
  • Filter URL list before importing — it's easier than cleaning up after

Real-World Example

20 recipes imported in a single batch (13 BBC Good Food + 7 RecipeTin Eats):

  • Pork/bacon recipes skipped: Bacon-Wrapped Pork Tenderloin, Sausage Ragu, Bangers and Mash (sausage = likely pork)
  • Result: 20/20 success (100%)
  • Time: ~68 seconds with 2-second delays