Cocktail Recipe
vidextract.predefined.cocktail.v1
A cocktail or mixed-drink recipe extracted from a video. Ingredients are parsed into amount + unit + item; build steps are ordered. Optional fields are omitted when the creator does not state them — do not infer.
Fields
Name of the cocktail, e.g. 'Mojito', 'White Russian'.
One or two sentences describing the drink's character, flavor, or occasion.
Cocktail family or style. Pick the single best fit. Omit if unclear.
Primary base spirit lowercased, e.g. 'vodka', 'gin', 'rum', 'tequila', 'whiskey'. Use 'none' for mocktails. Omit if unclear.
True if the drink contains alcohol, false for a mocktail. Omit if unclear.
Number of drinks the recipe yields if stated. Omit otherwise.
Glass the drink is served in, e.g. 'rocks glass', 'coupe', 'highball', 'martini glass'. Omit if not stated.
Ice format used/served, e.g. 'cubed', 'crushed', 'large cube', 'none'. Omit if not stated.
Garnishes used to finish the drink, e.g. 'lime wheel', 'mint sprig', 'orange twist'.
Ingredients in the drink, parsed into amount + unit + item.
Ordered build/mixing steps.
Bar tools required, e.g. 'shaker', 'jigger', 'muddler', 'bar spoon', 'strainer'.
Taste descriptors, lowercased, e.g. 'sweet', 'sour', 'bitter', 'refreshing', 'boozy', 'creamy'.
Substitutions, variations, or pro tips mentioned outside the main build steps.
Origin story or history of the cocktail if the creator mentions it. Omit otherwise.
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "vidextract.predefined.cocktail.v1",
"title": "Cocktail Recipe",
"description": "A cocktail or mixed-drink recipe extracted from a video. Ingredients are parsed into amount + unit + item; build steps are ordered. Optional fields are omitted when the creator does not state them — do not infer.",
"type": "object",
"required": [
"name",
"ingredients",
"instructions"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the cocktail, e.g. 'Mojito', 'White Russian'."
},
"description": {
"type": "string",
"description": "One or two sentences describing the drink's character, flavor, or occasion."
},
"category": {
"type": "string",
"enum": [
"sour",
"highball",
"old-fashioned",
"martini",
"tiki",
"punch",
"spritz",
"flip",
"shot",
"frozen",
"hot",
"non-alcoholic",
"other"
],
"description": "Cocktail family or style. Pick the single best fit. Omit if unclear."
},
"baseSpirit": {
"type": "string",
"description": "Primary base spirit lowercased, e.g. 'vodka', 'gin', 'rum', 'tequila', 'whiskey'. Use 'none' for mocktails. Omit if unclear."
},
"alcoholic": {
"type": "boolean",
"description": "True if the drink contains alcohol, false for a mocktail. Omit if unclear."
},
"servings": {
"type": "integer",
"description": "Number of drinks the recipe yields if stated. Omit otherwise."
},
"glassware": {
"type": "string",
"description": "Glass the drink is served in, e.g. 'rocks glass', 'coupe', 'highball', 'martini glass'. Omit if not stated."
},
"ice": {
"type": "string",
"description": "Ice format used/served, e.g. 'cubed', 'crushed', 'large cube', 'none'. Omit if not stated."
},
"garnish": {
"type": "array",
"description": "Garnishes used to finish the drink, e.g. 'lime wheel', 'mint sprig', 'orange twist'.",
"items": {
"type": "string"
}
},
"ingredients": {
"type": "array",
"description": "Ingredients in the drink, parsed into amount + unit + item.",
"minItems": 1,
"items": {
"type": "object",
"required": [
"item"
],
"additionalProperties": false,
"properties": {
"amount": {
"type": "string",
"description": "Quantity as a string so fractions ('1/2') and decimals round-trip, e.g. '2', '0.75'. Omit for 'to taste' / 'splash'."
},
"unit": {
"type": "string",
"description": "Unit of measure, e.g. 'oz', 'ml', 'cl', 'dash', 'tsp', 'part', 'splash'. Omit for whole items like '2 limes'."
},
"item": {
"type": "string",
"description": "The ingredient itself lowercased, e.g. 'white rum', 'lime juice', 'simple syrup', 'mint leaves'."
},
"garnish": {
"type": "boolean",
"description": "True if this ingredient is used as a garnish rather than mixed in.",
"default": false
}
}
}
},
"instructions": {
"type": "array",
"description": "Ordered build/mixing steps.",
"minItems": 1,
"items": {
"type": "object",
"required": [
"text"
],
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "Imperative build step, e.g. 'Muddle the mint with the sugar and lime juice.'"
},
"technique": {
"type": "string",
"enum": [
"build",
"shake",
"stir",
"muddle",
"blend",
"layer",
"strain",
"double-strain",
"dry-shake",
"float",
"rim",
"garnish"
],
"description": "Primary bartending technique for this step. Omit if not applicable."
},
"videoTimestamp": {
"type": "string",
"description": "Start timestamp in source video, 'mm:ss' or 'h:mm:ss'. Omit if unknown.",
"pattern": "^(\\d{1,2}:)?\\d{1,2}:\\d{2}$"
}
}
}
},
"tools": {
"type": "array",
"description": "Bar tools required, e.g. 'shaker', 'jigger', 'muddler', 'bar spoon', 'strainer'.",
"items": {
"type": "string"
}
},
"flavorProfile": {
"type": "array",
"description": "Taste descriptors, lowercased, e.g. 'sweet', 'sour', 'bitter', 'refreshing', 'boozy', 'creamy'.",
"items": {
"type": "string"
}
},
"tips": {
"type": "array",
"description": "Substitutions, variations, or pro tips mentioned outside the main build steps.",
"items": {
"type": "string"
}
},
"origin": {
"type": "string",
"description": "Origin story or history of the cocktail if the creator mentions it. Omit otherwise."
}
}
}Use it via the API
Pass schemaId: "vidextract.predefined.cocktail.v1" when you submit an extraction. The call returns an id immediately. Poll GET /v1/extractions/{id}/result (or register a webhook) for the structured result.
curl -s -X POST https://postreef.com/v1/extractions \
-H "x-api-key: $VIDEXTRACT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"inputs": ["transcript", "comments"],
"schemaId": "vidextract.predefined.cocktail.v1"}'Full request/response shape in the API reference; copy-paste poll loops in the API quickstart.
Pass schemaId: "vidextract.predefined.cocktail.v1" in your request to extract with this schema.