Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Extract recipes from Instagram reels. Use when a user sends an Instagram reel link and wants to get the recipe from the caption. Parses ingredients, instructions, and macros into a clean format.
Extract recipes from Instagram reels. Use when a user sends an Instagram reel link and wants to get the recipe from the caption. Parses ingredients, instructions, and macros into a clean format.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Extract recipes from Instagram reels using a multi-layered approach: Caption parsing โ Instant, check description first Audio transcription โ Whisper (local, no API key) Frame analysis โ Vision model for on-screen text No Instagram login required. Works on public reels.
User sends an Instagram reel link User mentions "recipe from Instagram" or "save this reel" User wants to extract recipe details from a video post
ALWAYS follow this complete flow โ do not stop after caption if instructions are missing: User sends Instagram reel URL Extract metadata using yt-dlp (--dump-json) Parse the caption for recipe details Check completeness: Does caption have BOTH ingredients AND instructions? โ YES: Present the recipe โ NO (missing instructions or incomplete): Automatically proceed to audio transcription โ do NOT stop or ask the user If audio transcription needed: Download video: yt-dlp -o "/tmp/reel.mp4" "URL" Extract audio: ffmpeg -y -i /tmp/reel.mp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 /tmp/reel.wav Transcribe: whisper /tmp/reel.wav --model base --output_format txt --output_dir /tmp Merge caption ingredients with audio instructions Present clean, formatted recipe (combining caption + audio as needed) User decides what to do (save to notes, add to wishlist, etc.) Completeness check heuristics: Has ingredients = contains 3+ quantity+item patterns (e.g., "1 cup flour", "2 lbs chicken") Has instructions = contains action verbs (blend, cook, bake, mix, pour, add) + sequence OR numbered steps
yt-dlp --dump-json "https://www.instagram.com/reel/SHORTCODE/" 2>/dev/null Key fields from JSON output: description โ The caption containing the recipe uploader โ Creator's name channel โ Creator's handle webpage_url โ Original URL like_count โ Popularity indicator
Look for these patterns in the caption: Macros: "X Calories | Xg P | Xg C | Xg F" "Macros per serving" "Cal/Protein/Carbs/Fat" Ingredients: Lines starting with quantities (1 cup, 2 tbsp, 24oz) Lines with measurement units Emoji bullet points (๐ฅฉ ๐ฝ ๐ง etc.) Sections: "For the [component]:" "Ingredients:" "Instructions:" "Directions:"
Let the user decide what to do: "Save to my recipes" โ Save to Apple Notes (if meal-planner skill available) "Add to wishlist" โ Save to memory/recipe-wishlist.json "Just show me" โ Display only, no save "Plan this for next week" โ Hand off to meal-planner skill
Optional storage for recipes user wants to try later: memory/recipe-wishlist.json: { "recipes": [ { "name": "Recipe Name", "source": "instagram", "sourceUrl": "https://instagram.com/reel/...", "handle": "@creator", "addedDate": "2026-01-26", "tried": false, "macros": { "calories": 585, "protein": 56, "carbs": 25, "fat": 28, "servings": 3 }, "ingredients": [...], "instructions": [...] } ] }
The meal-planner skill can reference this skill: When planning meals, check wishlist for untried recipes Suggest wishlist recipes that match pantry items Mark recipes as "tried" after they're used in a meal plan
When caption is missing instructions, ALWAYS transcribe the audio automatically. Do not stop and ask the user โ just do it. This is the most common case since creators often put ingredients in captions but speak the instructions. Step 1: Download video yt-dlp -o "/tmp/reel.mp4" "https://instagram.com/reel/XXX" Step 2: Extract audio ffmpeg -i /tmp/reel.mp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 /tmp/reel.wav Step 3: Transcribe with Whisper /Users/kylekirkland/Library/Python/3.14/bin/whisper /tmp/reel.wav --model base --output_format txt --output_dir /tmp Step 4: Parse transcript for recipe Look for cooking instructions, ingredients mentioned verbally.
ALWAYS infer quantities when not provided. Never present a recipe without amounts โ estimate based on context and standard package sizes.
What they sayInfer"some chicken"~1 lb"a bit of garlic"2-3 cloves"handful of spinach"~2 cups"drizzle of oil"1-2 tbsp"season to taste"ยฝ tsp salt, ยผ tsp pepper"splash of soy sauce"1-2 tbsp"a few tablespoons"2-3 tbsp"some rice"1 cup dry"cheese on top"ยฝ - 1 cup shredded"diced onion"1 medium onion"bell peppers"2 peppers
IngredientStandard PackageInferPuff pastry17oz sheet1 sheetGround beef/turkey1 lb pack1 lbChicken breast~1.5 lb pack1.5 lbsSausage links14oz / 4-5 links1 packageBacon12oz / 12 slicesยฝ package (6 slices)Shredded cheese8oz bag1-2 cupsTortillas8-10 count1 packageCanned beans15oz can1 canBroth/stock32oz carton1-2 cupsPasta16oz box8oz (half box)Rice2 lb bag1-2 cups dry
By recipe type: Stir fry for 2 โ 1 lb protein, 4 cups veggies Soup/stew โ 1.5-2 lbs protein, 4 cups broth Sheet pan meal โ 1.5 lbs protein, 3-4 cups veggies Appetizers โ smaller portions, estimate ~12-15 pieces per batch By servings mentioned: "Serves 4" โ Scale standard amounts for 4 "Meal prep for the week" โ Assume 5-8 servings No servings mentioned โ Default to 4 servings By protein target (if user has macro goals): 40-50g protein per serving โ ~6-8oz cooked meat per portion Scale recipe protein accordingly
1. TRY CAPTION (instant) โโโ yt-dlp --dump-json โ parse description โโโ Recipe found? โ DONE โ โโโ Check for "pinned" / "in comments" / "check comments" โ FLAG 2. IF FLAGGED: CHECK FOR CREATOR COMMENT โโโ Look through comments for creator's username โโโ If creator comment found with recipe โ DONE โ โโโ If not found โ continue + notify user 3. TRY AUDIO (30-60 sec) โโโ Download video โโโ Extract audio with ffmpeg โโโ Transcribe with Whisper (base model) โโโ Parse transcript for recipe โโโ Infer missing measurements โโโ Recipe found? โ DONE โ 4. PRESENT RESULTS + PROMPT IF NEEDED โโโ Show what was extracted from audio โโโ If "pinned" was flagged, tell user: "The creator mentioned the full recipe is pinned in the comments. I extracted what I could from the audio, but if you want the exact measurements, paste the pinned comment here and I'll merge it with what I found." 5. TRY FRAME ANALYSIS (if audio incomplete) โโโ Extract 5-8 key frames with ffmpeg โโโ Send to Claude vision โโโ Ask: "Extract any recipe text, ingredients, or measurements shown" โโโ Merge findings with audio transcript 6. FALLBACK (nothing found) โโโ Inform user: "Recipe wasn't in caption or audio/video" โโโ Offer: search for similar recipe based on video title/description
Scan caption for these phrases (case-insensitive): "recipe pinned" "pinned in comments" "check comments" "in the comments" "comment below" "recipe below" "full recipe in comments" If detected, flag and notify user after extraction: "Heads up โ the creator said the recipe is pinned in the comments. I got what I could from the audio, but yt-dlp can't access pinned comments without login. If you want the exact recipe, copy the pinned comment and send it to me โ I'll format it properly."
yt-dlp โ brew install yt-dlp ffmpeg โ brew install ffmpeg whisper โ pip3 install openai-whisper (runs locally, no API key) No Instagram login required for public reels
Writing, remixing, publishing, visual generation, and marketing content production.
Largest current source with strong distribution and engagement signals.