Travel Guide
vidextract.predefined.travel_itinerary.v1
A travel guide or itinerary extracted from a vlog or city-guide video. Captures the destination and the specific places the creator recommends, each as a mappable, structured stop. Do not invent addresses or prices that were never shown — omit instead.
Fields
Primary destination, e.g. 'Lisbon, Portugal', 'Tokyo'.
One or two sentences on the trip's theme or angle, e.g. 'a 3-day budget food crawl'.
Trip length in days if stated. Omit otherwise.
Season or months the creator recommends, if mentioned. Omit otherwise.
Overall budget vibe of the trip if conveyed. Omit if unclear.
Specific places the creator recommends — restaurants, sights, neighborhoods, hotels, activities. In the order featured.
Trip-wide advice not tied to one stop — transport passes, safety, language, money. Short phrases.
Total trip cost if the creator gives a figure, as stated. Omit otherwise.
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "vidextract.predefined.travel_itinerary.v1",
"title": "Travel Guide",
"description": "A travel guide or itinerary extracted from a vlog or city-guide video. Captures the destination and the specific places the creator recommends, each as a mappable, structured stop. Do not invent addresses or prices that were never shown — omit instead.",
"type": "object",
"required": [
"destination",
"stops"
],
"additionalProperties": false,
"properties": {
"destination": {
"type": "string",
"description": "Primary destination, e.g. 'Lisbon, Portugal', 'Tokyo'."
},
"summary": {
"type": "string",
"description": "One or two sentences on the trip's theme or angle, e.g. 'a 3-day budget food crawl'."
},
"durationDays": {
"type": "integer",
"description": "Trip length in days if stated. Omit otherwise."
},
"bestTimeToVisit": {
"type": "string",
"description": "Season or months the creator recommends, if mentioned. Omit otherwise."
},
"budgetLevel": {
"type": "string",
"enum": [
"budget",
"mid-range",
"luxury",
"mixed"
],
"description": "Overall budget vibe of the trip if conveyed. Omit if unclear."
},
"stops": {
"type": "array",
"description": "Specific places the creator recommends — restaurants, sights, neighborhoods, hotels, activities. In the order featured.",
"minItems": 1,
"items": {
"type": "object",
"required": [
"name",
"type"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the place or activity."
},
"type": {
"type": "string",
"enum": [
"restaurant",
"cafe",
"bar",
"sight",
"museum",
"neighborhood",
"hotel",
"activity",
"shop",
"viewpoint",
"beach",
"transport"
],
"description": "Kind of stop. Pick the closest single category."
},
"neighborhood": {
"type": "string",
"description": "Neighborhood or area within the destination. Omit if not stated."
},
"description": {
"type": "string",
"description": "Why the creator recommends it — one short sentence."
},
"mustTry": {
"type": "string",
"description": "Specific dish, drink, or thing to do/order here that the creator highlights. Omit if none."
},
"priceText": {
"type": "string",
"description": "Cost as stated, e.g. '€8 a plate', 'free entry', '~$120/night'. Omit if not mentioned."
},
"tip": {
"type": "string",
"description": "Practical tip for this stop (timing, booking, how to get there). Omit if none."
},
"videoTimestamp": {
"type": "string",
"description": "Start timestamp of this stop in the video, 'mm:ss' or 'h:mm:ss'. Omit if unknown.",
"pattern": "^(\\d{1,2}:)?\\d{1,2}:\\d{2}$"
}
}
}
},
"generalTips": {
"type": "array",
"description": "Trip-wide advice not tied to one stop — transport passes, safety, language, money. Short phrases.",
"items": {
"type": "string"
}
},
"estimatedTotalCost": {
"type": "string",
"description": "Total trip cost if the creator gives a figure, as stated. Omit otherwise."
}
}
}Use it via the API
Pass schemaId: "vidextract.predefined.travel_itinerary.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.travel_itinerary.v1"}'Full request/response shape in the API reference; copy-paste poll loops in the API quickstart.
Pass schemaId: "vidextract.predefined.travel_itinerary.v1" in your request to extract with this schema.