No description
- Python 100%
| tests | ||
| .gitignore | ||
| .python-version | ||
| main.py | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
hello-fresh-extract
Extract HelloFresh France menu recipes and export them as a Markdown checklist.
Features
- Parse recipes from
https://www.hellofresh.fr/menus - Optional week-specific menu via
YYYY-Wwwformat (example:2026-W17) - Configurable normalized image width via
--image-width(default:400) - Markdown output with unchecked checkboxes:
- title + subtitle on first line
- image URL on next line
- time on next line
- tag on next line
- Image URL normalization for HelloFresh transformed media links:
- example:
.../w_3840,.../c_fill,.../hellofresh_s3/image/...jpg - becomes:
.../w_400/hellofresh_s3/image/...jpg
- example:
- Output file naming:
- default menu:
menus.md - week menu:
<week>-<monday>.md(example:2026-W17-2026-04-20.md)
- default menu:
Install
uv sync
Usage
Current/default menu
python3 main.py
Writes menus.md.
Specific week menu
python3 main.py --week 2026-W17
Fetches https://www.hellofresh.fr/menus/2026-W17 and writes 2026-W17-2026-04-20.md.
Specific week menu with custom image width
python3 main.py --week 2026-W17 --image-width 720
Image URLs are normalized to .../w_720/hellofresh_s3/image/....
Markdown output example
# HelloFresh menu 2026-W17
## Monday 2026-04-20
- [ ] **Poulet rôti** — avec pommes de terre

Temps: 35 min
Tag: Œufs non inclus
Testing
This project includes unit tests + a simple smoke test.
Run all tests:
pytest -q
Lint and type-check
ruff check .
uvx pyright --pythonpath .venv/bin/python