postreef
All schemas

Pet Training Guide

vidextract.predefined.pet_training.v1

An animal-training guide extracted from a video (dog, cat, or other pet behavior, obedience, or trick training). Capture only what the trainer states; omit anything not mentioned and do not infer.

Fields

titlerequired
string

Concise title phrased as the goal, e.g. 'How to stop your dog pulling on the leash'.

summaryrequired
string

One to three sentences on the behavior being taught and the overall method.

animal
string

Animal being trained, lowercased, e.g. 'dog', 'cat', 'puppy'. Omit if not stated.

targetBehavior
string

The specific skill, command, or behavior the video trains, e.g. 'loose-leash walking', 'recall', 'sit'.

behaviorType
enum

Category of training. Omit if unclear.

trainingMethod
string

The overall technique or philosophy, e.g. 'positive reinforcement with clicker', 'lure-reward'. Omit if not stated.

difficulty
enum

Difficulty if stated or clearly implied. Omit if unsure.

suitableFor
string

Ideal age, breed, or experience level of the animal as stated, e.g. 'puppies 8 weeks+'. Omit if not stated.

sessionLengthMinutes
integer

Recommended length of a training session in whole minutes, if stated. Omit otherwise.

equipment
string[]

Gear, tools, or rewards needed, lowercased, e.g. 'clicker', 'high-value treats', 'front-clip harness'.

stepsrequired
object[]

Ordered training steps. Each is one discrete action or progression stage.

commonMistakes
string[]

Handler mistakes the trainer explicitly warns against. Short phrases. Omit if none.

troubleshooting
object[]

Problems and fixes for when training doesn't go as planned.

tips
string[]

Pro tips or best practices mentioned outside the main steps.

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "vidextract.predefined.pet_training.v1",
  "title": "Pet Training Guide",
  "description": "An animal-training guide extracted from a video (dog, cat, or other pet behavior, obedience, or trick training). Capture only what the trainer states; omit anything not mentioned and do not infer.",
  "type": "object",
  "required": [
    "title",
    "summary",
    "steps"
  ],
  "additionalProperties": false,
  "properties": {
    "title": {
      "type": "string",
      "description": "Concise title phrased as the goal, e.g. 'How to stop your dog pulling on the leash'."
    },
    "summary": {
      "type": "string",
      "description": "One to three sentences on the behavior being taught and the overall method."
    },
    "animal": {
      "type": "string",
      "description": "Animal being trained, lowercased, e.g. 'dog', 'cat', 'puppy'. Omit if not stated."
    },
    "targetBehavior": {
      "type": "string",
      "description": "The specific skill, command, or behavior the video trains, e.g. 'loose-leash walking', 'recall', 'sit'."
    },
    "behaviorType": {
      "type": "string",
      "enum": [
        "obedience",
        "trick",
        "problem-behavior",
        "socialization",
        "agility",
        "other"
      ],
      "description": "Category of training. Omit if unclear."
    },
    "trainingMethod": {
      "type": "string",
      "description": "The overall technique or philosophy, e.g. 'positive reinforcement with clicker', 'lure-reward'. Omit if not stated."
    },
    "difficulty": {
      "type": "string",
      "enum": [
        "beginner",
        "intermediate",
        "advanced"
      ],
      "description": "Difficulty if stated or clearly implied. Omit if unsure."
    },
    "suitableFor": {
      "type": "string",
      "description": "Ideal age, breed, or experience level of the animal as stated, e.g. 'puppies 8 weeks+'. Omit if not stated."
    },
    "sessionLengthMinutes": {
      "type": "integer",
      "description": "Recommended length of a training session in whole minutes, if stated. Omit otherwise."
    },
    "equipment": {
      "type": "array",
      "description": "Gear, tools, or rewards needed, lowercased, e.g. 'clicker', 'high-value treats', 'front-clip harness'.",
      "items": {
        "type": "string"
      }
    },
    "steps": {
      "type": "array",
      "description": "Ordered training steps. Each is one discrete action or progression stage.",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": [
          "text"
        ],
        "additionalProperties": false,
        "properties": {
          "text": {
            "type": "string",
            "description": "Imperative instruction, e.g. 'Reward the dog the moment the leash goes slack.'"
          },
          "detail": {
            "type": "string",
            "description": "Extra clarifying detail if the trainer elaborates. Omit if self-contained."
          },
          "verbalCue": {
            "type": "string",
            "description": "Spoken command or marker word used in this step, e.g. 'heel', 'yes'. Omit if none."
          },
          "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}$"
          }
        }
      }
    },
    "commonMistakes": {
      "type": "array",
      "description": "Handler mistakes the trainer explicitly warns against. Short phrases. Omit if none.",
      "items": {
        "type": "string"
      }
    },
    "troubleshooting": {
      "type": "array",
      "description": "Problems and fixes for when training doesn't go as planned.",
      "items": {
        "type": "object",
        "required": [
          "problem"
        ],
        "additionalProperties": false,
        "properties": {
          "problem": {
            "type": "string",
            "description": "The issue, e.g. 'dog ignores you when distracted'."
          },
          "solution": {
            "type": "string",
            "description": "Recommended fix. Omit if not stated — do not infer."
          }
        }
      }
    },
    "tips": {
      "type": "array",
      "description": "Pro tips or best practices mentioned outside the main steps.",
      "items": {
        "type": "string"
      }
    }
  }
}

Use it via the API

Pass schemaId: "vidextract.predefined.pet_training.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.pet_training.v1"}'

Full request/response shape in the API reference; copy-paste poll loops in the API quickstart.

Pass schemaId: "vidextract.predefined.pet_training.v1" in your request to extract with this schema.