postreef
All schemas

Music Video

vidextract.predefined.music_video.v1

A music video or music performance extracted from a clip. Captures the song and artist when identifiable, plus the mood, genre, and visual treatment. Do not invent a title or artist that is not shown or clearly recognizable — omit instead.

Fields

title
string

Song title if shown on screen or clearly identifiable. Omit if unknown.

artist
string

Performing artist or band if shown or recognizable. Omit if unknown.

genre
string

Musical genre, lowercased — e.g. 'indie rock', 'hip hop', 'electronic'. Omit if unclear.

moodrequired
string[]

Emotional tone conveyed by the music and visuals — e.g. 'melancholic', 'euphoric', 'dreamy'.

visualStyle
string

How the video looks — e.g. 'hand-painted animation', 'one-shot live performance', 'neon-lit narrative'.

themes
string[]

Themes or subjects depicted in the lyrics or imagery. Short phrases.

setting
string

Primary location or world the video takes place in, if discernible.

summary
string

One or two sentences describing the video's narrative or concept.

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "vidextract.predefined.music_video.v1",
  "title": "Music Video",
  "description": "A music video or music performance extracted from a clip. Captures the song and artist when identifiable, plus the mood, genre, and visual treatment. Do not invent a title or artist that is not shown or clearly recognizable — omit instead.",
  "type": "object",
  "required": [
    "mood"
  ],
  "additionalProperties": false,
  "properties": {
    "title": {
      "type": "string",
      "description": "Song title if shown on screen or clearly identifiable. Omit if unknown."
    },
    "artist": {
      "type": "string",
      "description": "Performing artist or band if shown or recognizable. Omit if unknown."
    },
    "genre": {
      "type": "string",
      "description": "Musical genre, lowercased — e.g. 'indie rock', 'hip hop', 'electronic'. Omit if unclear."
    },
    "mood": {
      "type": "array",
      "description": "Emotional tone conveyed by the music and visuals — e.g. 'melancholic', 'euphoric', 'dreamy'.",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "visualStyle": {
      "type": "string",
      "description": "How the video looks — e.g. 'hand-painted animation', 'one-shot live performance', 'neon-lit narrative'."
    },
    "themes": {
      "type": "array",
      "description": "Themes or subjects depicted in the lyrics or imagery. Short phrases.",
      "items": {
        "type": "string"
      }
    },
    "setting": {
      "type": "string",
      "description": "Primary location or world the video takes place in, if discernible."
    },
    "summary": {
      "type": "string",
      "description": "One or two sentences describing the video's narrative or concept."
    }
  }
}

Use it via the API

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

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

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