postreef
All schemas

Interview

vidextract.predefined.interview.v1

A one-on-one or panel interview. Capture the interviewer(s) and interviewee(s), the question-and-answer exchanges in order, key revelations, and notable quotes. Reconstruct each Q&A as a paired question and the substance of the answer. Optional fields are omitted entirely when not stated — do not infer, and never emit placeholder strings like 'not stated' or 'N/A'.

Fields

titlerequired
string

Title or subject of the interview.

summary
string

Two to four sentences summarizing what the interview covers.

interviewers
object[]

The person or people asking the questions.

intervieweesrequired
object[]

The person or people being interviewed.

mainTopics
string[]

The main subjects covered across the interview.

exchangesrequired
object[]

The question-and-answer exchanges, in order. Group follow-ups into the same exchange when they belong together.

keyRevelationsrequired
string[]

The most newsworthy, surprising, or memorable things the interviewee revealed.

notableQuotes
object[]

Memorable statements, verbatim.

tone
enum

Overall tone of the interview. Omit if mixed or unclear.

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "vidextract.predefined.interview.v1",
  "title": "Interview",
  "description": "A one-on-one or panel interview. Capture the interviewer(s) and interviewee(s), the question-and-answer exchanges in order, key revelations, and notable quotes. Reconstruct each Q&A as a paired question and the substance of the answer. Optional fields are omitted entirely when not stated — do not infer, and never emit placeholder strings like 'not stated' or 'N/A'.",
  "type": "object",
  "required": [
    "title",
    "interviewees",
    "exchanges",
    "keyRevelations"
  ],
  "additionalProperties": false,
  "properties": {
    "title": {
      "type": "string",
      "description": "Title or subject of the interview."
    },
    "summary": {
      "type": "string",
      "description": "Two to four sentences summarizing what the interview covers."
    },
    "interviewers": {
      "type": "array",
      "description": "The person or people asking the questions.",
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Interviewer's name. Omit if not stated."
          },
          "outlet": {
            "type": "string",
            "description": "Their show, publication, or affiliation. Omit if not stated."
          }
        }
      }
    },
    "interviewees": {
      "type": "array",
      "description": "The person or people being interviewed.",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Interviewee's name as stated."
          },
          "title": {
            "type": "string",
            "description": "Their profession, role, or what they are known for. Omit if not stated."
          }
        }
      }
    },
    "mainTopics": {
      "type": "array",
      "description": "The main subjects covered across the interview.",
      "items": {
        "type": "string"
      }
    },
    "exchanges": {
      "type": "array",
      "description": "The question-and-answer exchanges, in order. Group follow-ups into the same exchange when they belong together.",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": [
          "question",
          "answerSummary"
        ],
        "additionalProperties": false,
        "properties": {
          "question": {
            "type": "string",
            "description": "The question asked, paraphrased concisely or verbatim."
          },
          "answerSummary": {
            "type": "string",
            "description": "The substance of the interviewee's answer, in one to three sentences."
          },
          "respondent": {
            "type": "string",
            "description": "Who answered, when more than one interviewee. Omit if obvious or single interviewee."
          },
          "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}$"
          }
        }
      }
    },
    "keyRevelations": {
      "type": "array",
      "description": "The most newsworthy, surprising, or memorable things the interviewee revealed.",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "notableQuotes": {
      "type": "array",
      "description": "Memorable statements, verbatim.",
      "items": {
        "type": "object",
        "required": [
          "quote"
        ],
        "additionalProperties": false,
        "properties": {
          "quote": {
            "type": "string",
            "description": "The statement, verbatim."
          },
          "speaker": {
            "type": "string",
            "description": "Who said it. Omit if unclear."
          }
        }
      }
    },
    "tone": {
      "type": "string",
      "enum": [
        "serious",
        "lighthearted",
        "tense",
        "humorous",
        "emotional",
        "promotional",
        "confrontational"
      ],
      "description": "Overall tone of the interview. Omit if mixed or unclear."
    }
  }
}

Use it via the API

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

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

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