> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://dev.hume.ai/expression-measurement/docs/video/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://dev.hume.ai/_mcp/server. # Video **The video endpoints measure emotional expression on faces in JPEG images you upload or in video you stream as JPEG frames.** For each face they detect, the endpoints return its bounding box. For the largest faces in each image, 2 by default, they also return two lists of scores: `expressions`, such as `amusement`, and `descriptions` of visible facial actions, such as `smile`. ## Upload or realtime Both endpoints return the same measurements for the same image. Upload takes a set of images in one request, and realtime takes video one frame at a time.
| [Upload](/expression-measurement/docs/video/upload) | [Realtime](/expression-measurement/docs/video/realtime) | |
|---|---|---|
| Endpoint | `POST /v1/expression/video/file` | `WSS /v1/expression/video/realtime` |
| Input | One or more JPEG images in one request, up to 25 MB | Video frames, each a JPEG image in one binary frame |
| Results | One result per image, in the order the images were sent | One `measurement.result` for each measured frame |
| Configuration | A `config` part | `session.update` , before the first frame |
| Face tracking | `face_id` continues across requests when you pass back `face_state` | `face_id` follows the same face from frame to frame within a session |
| Recorded as | A run under the `run_id` | A run under the `session_id` |