postreef
All schemas

Language Lesson

vidextract.predefined.language.v1

A language-learning lesson extracted from a video — vocabulary, phrases, grammar, or pronunciation for a target language. Captures the language taught, the vocabulary and phrases with translations, grammar points, and practice guidance. Optional fields are omitted when the creator does not state them — do not infer.

Fields

titlerequired
string

Title of the lesson, e.g. '100 everyday Spanish sentences'.

summaryrequired
string

Two or three sentences on what the lesson teaches and who it is for.

targetLanguagerequired
string

The language being taught, e.g. 'Spanish', 'Japanese'.

instructionLanguage
string

The language the lesson is delivered in, e.g. 'English'. Omit if unclear.

level
enum

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

lessonFocus
enum

Primary focus of the lesson. Pick the single best fit. Omit if unclear.

topic
string

Thematic topic if any, e.g. 'greetings', 'restaurant', 'numbers', 'past tense'. Omit if general.

vocabulary
object[]

Individual words taught with their translations.

phrases
object[]

Full phrases or sentences taught with their translations.

grammarPoints
object[]

Grammar rules or concepts explained in the lesson.

pronunciationTips
string[]

Tips on sounds, accents, or pronunciation, e.g. 'roll the double R', 'the H is silent'.

culturalNotes
string[]

Cultural context, etiquette, or regional differences mentioned, e.g. 'formal vs informal you'.

studyTips
string[]

Advice for practicing or memorizing the material.

commonMistakes
string[]

Errors learners commonly make that the creator warns against.

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "vidextract.predefined.language.v1",
  "title": "Language Lesson",
  "description": "A language-learning lesson extracted from a video — vocabulary, phrases, grammar, or pronunciation for a target language. Captures the language taught, the vocabulary and phrases with translations, grammar points, and practice guidance. Optional fields are omitted when the creator does not state them — do not infer.",
  "type": "object",
  "required": [
    "title",
    "summary",
    "targetLanguage"
  ],
  "additionalProperties": false,
  "properties": {
    "title": {
      "type": "string",
      "description": "Title of the lesson, e.g. '100 everyday Spanish sentences'."
    },
    "summary": {
      "type": "string",
      "description": "Two or three sentences on what the lesson teaches and who it is for."
    },
    "targetLanguage": {
      "type": "string",
      "description": "The language being taught, e.g. 'Spanish', 'Japanese'."
    },
    "instructionLanguage": {
      "type": "string",
      "description": "The language the lesson is delivered in, e.g. 'English'. Omit if unclear."
    },
    "level": {
      "type": "string",
      "enum": [
        "beginner",
        "elementary",
        "intermediate",
        "advanced",
        "fluent"
      ],
      "description": "Target proficiency level if stated or clearly implied. Omit if unclear."
    },
    "lessonFocus": {
      "type": "string",
      "enum": [
        "vocabulary",
        "phrases",
        "grammar",
        "pronunciation",
        "conversation",
        "listening",
        "reading",
        "writing",
        "verb-conjugation"
      ],
      "description": "Primary focus of the lesson. Pick the single best fit. Omit if unclear."
    },
    "topic": {
      "type": "string",
      "description": "Thematic topic if any, e.g. 'greetings', 'restaurant', 'numbers', 'past tense'. Omit if general."
    },
    "vocabulary": {
      "type": "array",
      "description": "Individual words taught with their translations.",
      "items": {
        "type": "object",
        "required": [
          "term",
          "translation"
        ],
        "additionalProperties": false,
        "properties": {
          "term": {
            "type": "string",
            "description": "The word or term in the target language."
          },
          "translation": {
            "type": "string",
            "description": "Its meaning in the instruction language."
          },
          "partOfSpeech": {
            "type": "string",
            "description": "Part of speech, lowercased, e.g. 'noun', 'verb', 'adjective'. Omit if not stated."
          },
          "pronunciation": {
            "type": "string",
            "description": "Pronunciation guide or phonetic hint as given. Omit if not stated."
          },
          "gender": {
            "type": "string",
            "description": "Grammatical gender if applicable, e.g. 'masculine', 'feminine'. Omit otherwise."
          }
        }
      }
    },
    "phrases": {
      "type": "array",
      "description": "Full phrases or sentences taught with their translations.",
      "items": {
        "type": "object",
        "required": [
          "phrase",
          "translation"
        ],
        "additionalProperties": false,
        "properties": {
          "phrase": {
            "type": "string",
            "description": "The phrase or sentence in the target language."
          },
          "translation": {
            "type": "string",
            "description": "Its meaning in the instruction language."
          },
          "literalTranslation": {
            "type": "string",
            "description": "Word-for-word literal translation if the creator gives one separately. Omit otherwise."
          },
          "usageNote": {
            "type": "string",
            "description": "When or how to use it, register, or context, as described. Omit if none."
          }
        }
      }
    },
    "grammarPoints": {
      "type": "array",
      "description": "Grammar rules or concepts explained in the lesson.",
      "items": {
        "type": "object",
        "required": [
          "rule"
        ],
        "additionalProperties": false,
        "properties": {
          "rule": {
            "type": "string",
            "description": "The grammar rule or concept, e.g. 'adjectives agree in gender and number'."
          },
          "explanation": {
            "type": "string",
            "description": "Explanation as given. Omit if the rule is self-explanatory."
          },
          "example": {
            "type": "string",
            "description": "An example sentence illustrating the rule. Omit if none given."
          }
        }
      }
    },
    "pronunciationTips": {
      "type": "array",
      "description": "Tips on sounds, accents, or pronunciation, e.g. 'roll the double R', 'the H is silent'.",
      "items": {
        "type": "string"
      }
    },
    "culturalNotes": {
      "type": "array",
      "description": "Cultural context, etiquette, or regional differences mentioned, e.g. 'formal vs informal you'.",
      "items": {
        "type": "string"
      }
    },
    "studyTips": {
      "type": "array",
      "description": "Advice for practicing or memorizing the material.",
      "items": {
        "type": "string"
      }
    },
    "commonMistakes": {
      "type": "array",
      "description": "Errors learners commonly make that the creator warns against.",
      "items": {
        "type": "string"
      }
    }
  }
}

Use it via the API

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

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

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