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

85 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
## Finding Popular Recipes
### 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:
```js
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