postreef
All schemas

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

titlerequired
string

Title of the tutorial, e.g. 'How to draw a realistic eye'.

summaryrequired
string

Two or three sentences on what is created and the approach taught.

subject
string

What is being drawn or painted, e.g. 'human face', 'landscape', 'anime character'. Omit if abstract or unclear.

medium
enum

Primary art medium. Pick the single best fit. Omit if unclear.

style
string

Artistic style, e.g. 'realism', 'cartoon', 'manga', 'impressionist', 'line art'. Omit if not stated.

level
enum

Target skill level if stated or clearly implied. Omit if unclear.

durationMinutes
integer

Approximate time to complete in whole minutes, if stated. Omit otherwise.

materials
object[]

Specific supplies used or recommended.

stepsrequired
object[]

Ordered steps in the order performed, from initial sketch through to finishing.

techniques
object[]

Named techniques taught, e.g. 'shading', 'blending', 'gesture drawing', each with a brief note.

concepts
string[]

Foundational art concepts referenced, e.g. 'proportion', 'perspective', 'color theory', 'light and shadow'.

tips
string[]

Pro tips or advice mentioned outside the per-step flow.

commonMistakes
string[]

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.