{
  "model_name": "pegasus1.5",
  "video": {
    "type": "url",
    "url": "<DIRECT_MP4_URL_OR_PRESIGNED_S3>"
  },
  "analysis_mode": "time_based_metadata",
  "response_format": {
    "type": "segment_definitions",
    "segment_definitions": [
      {
        "id": "shot_boundary",
        "description": "Detect all shot boundaries in this soccer broadcast. Each segment represents a continuous shot from a single camera angle without cuts. Covers every camera cut including replays, close-ups, crowd shots, and bench shots.",
        "fields": [
          {
            "name": "shot_type",
            "type": "string",
            "description": "Camera framing and primary subject of this shot.",
            "enum": [
              "WIDE_PITCH",
              "PLAYER_CLOSE_UP",
              "CROWD",
              "BENCH",
              "OTHER"
            ]
          },
          {
            "name": "description",
            "type": "string",
            "description": "1-2 sentence multimodal synthesis combining visual content, on-screen text, and audio context."
          },
          {
            "name": "main_actions",
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Physical actions visible in the shot, e.g. ['dribbling','shooting','goalkeeper diving']."
          },
          {
            "name": "emotional_elements",
            "type": "string",
            "description": "Dominant emotional tone combining visual cues and audio. Most relevant for CROWD, PLAYER_CLOSE_UP, BENCH."
          },
          {
            "name": "player_names",
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Players visible in this shot. Populate only when an on-screen name graphic confirms identity. Do not infer from appearance alone."
          }
        ]
      },
      {
        "id": "soccer_event",
        "description": "Identify important soccer gameplay events shown in this broadcast, whether live or replayed. Each segment represents exactly one discrete game event - if multiple distinct events occur in sequence, emit a separate segment for each. A segment ends at the moment the primary action concludes; do not extend into the subsequent restart or reaction.",
        "fields": [
          {
            "name": "event_type",
            "type": "string",
            "description": "Primary gameplay event in this segment.",
            "enum": [
              "GOAL",
              "SHOT_ON_TARGET",
              "SHOT_OFF_TARGET",
              "SAVE",
              "FREE_KICK",
              "CORNER_KICK",
              "PENALTY_KICK",
              "PASS",
              "DRIBBLE",
              "SUBSTITUTION",
              "FOUL",
              "YELLOW_CARD",
              "RED_CARD",
              "OFFSIDE",
              "VAR_REVIEW",
              "STOPPAGE_TIME",
              "HYDRATION_BREAK",
              "EXTRA_TIME",
              "PENALTY_SHOOT_OUT",
              "CELEBRATION"
            ]
          },
          {
            "name": "playback_status",
            "type": "string",
            "description": "Whether shown as live gameplay or replay footage.",
            "enum": [
              "LIVE_GAMEPLAY",
              "REPLAY"
            ]
          },
          {
            "name": "match_phase",
            "type": "string",
            "description": "Match phase when the event occurs, inferred from scoreboard clock and broadcast context.",
            "enum": [
              "FIRST_HALF",
              "SECOND_HALF",
              "FIRST_EXTRA_TIME",
              "SECOND_EXTRA_TIME",
              "PENALTY_SHOOTOUT",
              "UNKNOWN"
            ]
          },
          {
            "name": "highlight_score",
            "type": "integer",
            "description": "Editorial importance of the event on a 1-10 scale (10 = most significant, e.g. a live goal). Useful for ranking and highlight reels."
          },
          {
            "name": "score",
            "type": "string",
            "description": "Scoreline shown on the scoreboard overlay at this moment, e.g. 'ANG 1-0 RSA'. Omit if not readable."
          },
          {
            "name": "description",
            "type": "string",
            "description": "1-2 sentence narrative of what happened and who was involved, specific enough for editorial search."
          },
          {
            "name": "player_names",
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Players involved. Identify from commentary or on-screen name graphic. Array handles multi-player events."
          }
        ]
      },
      {
        "id": "broadcast_structure",
        "description": "Classify non-live broadcast inserts. Each segment represents a continuous portion of the broadcast that is NOT live match play: replay analysis, halftime coverage, interviews, player spotlights, crowd reactions, archive clips. Only emit segments for non-live content. Do not duplicate a discrete replayed event already captured under soccer_event with playback_status = REPLAY.",
        "fields": [
          {
            "name": "segment_type",
            "type": "string",
            "description": "Type of non-live broadcast segment.",
            "enum": [
              "REPLAY_ANALYSIS",
              "ARCHIVE_CLIP",
              "HALFTIME",
              "POST_MATCH",
              "PLAYER_SPOTLIGHT",
              "CROWD_REACTION",
              "INTERVIEW"
            ]
          },
          {
            "name": "description",
            "type": "string",
            "description": "1-2 sentence summary of what is shown or discussed."
          },
          {
            "name": "player_names",
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Player(s) featured. Relevant for INTERVIEW, PLAYER_SPOTLIGHT, ARCHIVE_CLIP."
          },
          {
            "name": "emotional_state",
            "type": "string",
            "description": "Dominant emotional tone, e.g. 'celebrating','frustrated','tense'."
          }
        ]
      }
    ]
  }
}