Grocery List Generator from Recipe
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Grocery List Generator from Recipe automatically extracts ingredient lists from recipe web pages and transforms them into organized, categorized grocery lists. Instead of manually writing down ingredients or copying and pasting from multiple recipes, this script does the work for you. It scans the page for ingredients, consolidates similar items (e.g., "onion" and "onions" become one item), groups them into logical categories like Produce, Dairy, Meat, Pantry Staples, Spices, and Canned Goods, and presents a clean checklist. You can check items off as you shop, add custom ingredients, copy the list to your clipboard, and even combine ingredients from multiple recipes by accumulating items across pages. Perfect for meal planning, weekly shopping, and reducing food waste by buying exactly what you need.
WHERE IT RUNS
This script runs on any website that contains recipe content—food blogs, recipe aggregators, cooking sites, meal planning platforms, and social media recipe posts. It operates entirely within your browser tab, reading the page's DOM and structured data to find ingredient lists. The script cannot access other tabs, your browsing history, bookmarks, downloads, or any data outside the current page. All settings are stored locally using GM_setValue and never transmitted anywhere.
HOW TO USE
After installing with the BotGentz extension, the script automatically detects when you're on a recipe page. Click "Generate Grocery List" to extract ingredients and see your categorized list. Each ingredient shows its quantity and unit when available. You can check items off as you shop—checked items appear with a strikethrough. The list format can be toggled between checklist (with interactive checkboxes) and plain text. If the script misses an ingredient or you want to add something, use the "Add Ingredient" field to include custom items. Copy the entire list to your clipboard with one click for use in notes, email, or shopping apps. As you browse multiple recipe pages, the script can accumulate ingredients from all of them into a single master shopping list.
THE REAL MECHANISM
The script uses a three-layer extraction pipeline to find ingredients regardless of page structure. First, it scans all JSON-LD script blocks, recursively traversing the JSON object graph to find Schema.org Recipe nodes and extract their recipeIngredient arrays. Second, it falls back to microdata by querying elements with itemscope and itemtype containing "Recipe" and reading itemprop="recipeIngredient". Third, if no structured data exists, it scans visible text for common ingredient patterns including measurement keywords (cups, tablespoons, grams, ounces) and extracts lines that match ingredient formatting. Once ingredients are collected, the script applies a consolidation algorithm that normalizes names (removing quantities, standardizing plurals based on user preference), then groups them using a keyword-based categorization system with over 250 ingredient keywords mapped to 12 categories. Each ingredient's quantity and unit are parsed using regular expressions, and quantities from multiple occurrences are summed. The result is rendered as a structured DOM list with no innerHTML from untrusted data.
THE PANEL
The Grocery List Generator panel is a BGPanel component that you can drag anywhere on your screen by its header. It snaps to the nearest edge when released, keeping your workspace organized. The panel collapses to a small bubble showing only the emoji icon when minimised—click to expand it again. You can resize the panel horizontally to see more of your grocery list. Press the Escape key to collapse the panel instantly. Your panel position and size are saved per-site, so it remembers where you like it on your favorite recipe sites.
PLEASE NOTE
This script requires the free BotGentz browser extension to function. Recipe websites vary widely in how they structure ingredient data—some use Schema.org JSON-LD, others use microdata, and many use custom or unstructured formats. The script aims to extract whatever it can, but if a page uses non-standard formatting, some ingredients may be missed or incorrectly categorized. The consolidation algorithm works best with common ingredient names; very specific or branded items may not consolidate perfectly. The script never reads or writes password fields, hidden inputs, or file inputs. It stores only your format preference, consolidation setting, and auto-generate toggle locally. No recipe data, ingredient lists, or shopping lists are ever collected, transmitted, or shared.