smartmedia
smartmedia API

Give your model something to read about every file.

Language models cannot open a video, a recording or a photo. Upload one, say which of the six types it is, and get back its sidecar: everything about the file as text, measured where a number can be measured, observed where a model looked, never an opinion.

Four calls

Nothing to install: curl is the whole client. Async by design: the estimate is held on your balance when the job is accepted, and settled or released when it ends. Poll the job or give a webhook URL.

# 1. an upload URL
curl -X POST https://api.smartmediaprotocol.com/v1/uploads -H "Authorization: Bearer sm_live_…" \
     -H "Content-Type: application/json" -d '{"filename":"IMG_1731.MOV","bytes":61230411}'
# 2. the file
curl -X PUT "$UPLOAD_URL" -H "Content-Type: video/quicktime" --data-binary @IMG_1731.MOV
# 3. the analysis, with the type you declare
curl -X POST https://api.smartmediaprotocol.com/v1/analyses -H "Authorization: Bearer sm_live_…" \
     -H "Content-Type: application/json" -d '{"upload_id":"up_…","type":"video/footage"}'
# 4. the sidecar, once the job is done
curl "https://api.smartmediaprotocol.com/v1/analyses/an_…/result?format=smartmedia" -H "Authorization: Bearer sm_live_…" \
     -o IMG_1731.MOV.smartmedia

The result comes in three formats: the smartmedia document, the full internal analysis as JSON, and a plain-text rendering for a language model.

What it measures, what it observes

Each type's page on the protocol says which fields are which. In short:

Video

ffmpeg for the file, cuts and loudness; OpenCV keypoints for camera support, pans, tilts, zooms and punch-ins; pixel statistics for colour and tone; a video model for form, people, activities, actions and on-screen text; Deepgram for words and speakers; librosa and ACRCloud for the music.

Audio

The samples for loudness, noise floor, dynamic range, clipping and an overview waveform; ffmpeg for silences; Deepgram for words, sentences, paragraphs and speakers; a language model for the voices as people and a summary; librosa for tempo, key and beats; ACRCloud for which recording it is.

Images

The file's own metadata for camera, lens, exposure, capture time and GPS; pixel statistics for palette, tone and sharpness; a vision model for kind, form, composition, people and objects with boxes, every piece of text, and the quality conditions visibly there.

One price per type

Prepaid credit that never expires. A failed job is never charged. The same file as the same type is free the second time. Every price is on the estimate endpoint before you run a job, and there are monthly spend caps per key and per account.

typepriceminimum per job
video/footage, video/edit20¢ per minute20¢
audio/speech6¢ per minute
audio/music2¢ per minute
image/scene, image/graphic3¢ per image

Limits. Ten minutes and 300 MB per file; videos at most 1280 px on the long side. Larger videos go up as a proxy, and the API is told about the original.

Consolidation. For a video, one readable paragraph per shot from a second model pass, 5¢ per minute more.

New accounts start with $5 of credit. Packs are bought on the dashboard; a refund debits the balance.

Every type, one endpoint

You declare the type with the request; the API never guesses it from the content.

The API · Smart Media Protocol