Art Tutorial
vidextract.predefined.art_tutorial.v1
An art tutorial extracted from a video — drawing, painting, sketching, or digital art. Captures the subject, medium and materials, the ordered steps, and the techniques and tips taught. Optional fields are omitted when the creator does not state them — do not infer.
Fields
Title of the tutorial, e.g. 'How to draw a realistic eye'.
Two or three sentences on what is created and the approach taught.
What is being drawn or painted, e.g. 'human face', 'landscape', 'anime character'. Omit if abstract or unclear.
Primary art medium. Pick the single best fit. Omit if unclear.
Artistic style, e.g. 'realism', 'cartoon', 'manga', 'impressionist', 'line art'. Omit if not stated.
Target skill level if stated or clearly implied. Omit if unclear.
Approximate time to complete in whole minutes, if stated. Omit otherwise.
Specific supplies used or recommended.
Ordered steps in the order performed, from initial sketch through to finishing.
Named techniques taught, e.g. 'shading', 'blending', 'gesture drawing', each with a brief note.
Foundational art concepts referenced, e.g. 'proportion', 'perspective', 'color theory', 'light and shadow'.
Pro tips or advice mentioned outside the per-step flow.
Mistakes or pitfalls the creator warns beginners against.
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "vidextract.predefined.art_tutorial.v1",
"title": "Art Tutorial",
"description": "An art tutorial extracted from a video — drawing, painting, sketching, or digital art. Captures the subject, medium and materials, the ordered steps, and the techniques and tips taught. Optional fields are omitted when the creator does not state them — do not infer.",
"type": "object",
"required": [
"title",
"summary",
"steps"
],
"additionalProperties": false,
"properties": {
"title": {
"type": "string",
"description": "Title of the tutorial, e.g. 'How to draw a realistic eye'."
},
"summary": {
"type": "string",
"description": "Two or three sentences on what is created and the approach taught."
},
"subject": {
"type": "string",
"description": "What is being drawn or painted, e.g. 'human face', 'landscape', 'anime character'. Omit if abstract or unclear."
},
"medium": {
"type": "string",
"enum": [
"pencil",
"ink",
"charcoal",
"graphite",
"colored-pencil",
"watercolor",
"acrylic",
"oil",
"gouache",
"pastel",
"marker",
"digital",
"mixed-media"
],
"description": "Primary art medium. Pick the single best fit. Omit if unclear."
},
"style": {
"type": "string",
"description": "Artistic style, e.g. 'realism', 'cartoon', 'manga', 'impressionist', 'line art'. Omit if not stated."
},
"level": {
"type": "string",
"enum": [
"beginner",
"intermediate",
"advanced"
],
"description": "Target skill level if stated or clearly implied. Omit if unclear."
},
"durationMinutes": {
"type": "integer",
"description": "Approximate time to complete in whole minutes, if stated. Omit otherwise."
},
"materials": {
"type": "array",
"description": "Specific supplies used or recommended.",
"items": {
"type": "object",
"required": [
"name"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Material name as stated, e.g. '2B pencil', 'Winsor & Newton ultramarine'."
},
"type": {
"type": "string",
"description": "Category, lowercased, e.g. 'pencil', 'paper', 'paint', 'brush'. Omit if unclear."
},
"purpose": {
"type": "string",
"description": "What it is used for, as described. Omit if not stated."
}
}
}
},
"steps": {
"type": "array",
"description": "Ordered steps in the order performed, from initial sketch through to finishing.",
"minItems": 1,
"items": {
"type": "object",
"required": [
"instruction"
],
"additionalProperties": false,
"properties": {
"instruction": {
"type": "string",
"description": "What to do in this step, e.g. 'Block in the basic head shape with a light oval'."
},
"tool": {
"type": "string",
"description": "Material/tool used in this step, if named. Omit otherwise."
},
"technique": {
"type": "string",
"description": "Technique applied in this step, e.g. 'cross-hatching', 'wet-on-wet'. Omit if none."
},
"videoTimestamp": {
"type": "string",
"description": "Start timestamp of this step in the source video, 'mm:ss' or 'h:mm:ss'. Omit if unknown.",
"pattern": "^(\\d{1,2}:)?\\d{1,2}:\\d{2}$"
}
}
}
},
"techniques": {
"type": "array",
"description": "Named techniques taught, e.g. 'shading', 'blending', 'gesture drawing', each with a brief note.",
"items": {
"type": "object",
"required": [
"name"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Technique name."
},
"explanation": {
"type": "string",
"description": "Brief explanation as given. Omit if only named."
}
}
}
},
"concepts": {
"type": "array",
"description": "Foundational art concepts referenced, e.g. 'proportion', 'perspective', 'color theory', 'light and shadow'.",
"items": {
"type": "string"
}
},
"tips": {
"type": "array",
"description": "Pro tips or advice mentioned outside the per-step flow.",
"items": {
"type": "string"
}
},
"commonMistakes": {
"type": "array",
"description": "Mistakes or pitfalls the creator warns beginners against.",
"items": {
"type": "string"
}
}
}
}Use it via the API
Pass schemaId: "vidextract.predefined.art_tutorial.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.art_tutorial.v1"}'Full request/response shape in the API reference; copy-paste poll loops in the API quickstart.
Pass schemaId: "vidextract.predefined.art_tutorial.v1" in your request to extract with this schema.