Get Video Metadata
Library Management
Get Video Metadata
Fetch the full metadata record for a single video in your Private Video Library.
GET
Get Video Metadata
Product: Visual Search
Use case: Upload videos and images, auto-index them, then search by natural language, image, or transcript phrase
Host:
https://api.memories.ai/serve/api/v1
Auth: Authorization: sk-mavi-... (no Bearer prefix)data.status and wait for it to become PARSE.
Prerequisites
- You have created a memories.ai API key.
- You have uploaded the target video using the Upload API (metadata fields only become available after the video finishes parsing and its summary row is populated).
Endpoint
GET /serve/api/v1/get_metadataAuthentication
Pass your API key in theAuthorization request header. Requests without a valid API key are rejected.
Request Example
Query Parameters
The video identifier returned by the upload API (e.g.
VI606404158946574336). Must be non-empty.Notes & Limits
- Rate limiting: The endpoint is protected by a per-account rate limit. Exceeding the limit returns an error indicating the request has exceeded the limit.
- Metadata availability: The capture-time metadata fields (
datetime_taken / camera_model / latitude / longitude) are only present when the corresponding value was supplied at upload and the video’s summary row has been written (i.e. after parsing completes). Videos not yet parsed return the basic fields only. - Not found is not an error: If the video does not exist (or does not belong to this account), the response is
code: "0000",success: true,data: null— checkdataforNoneexplicitly rather than relying on the status code. - Numeric field types are inconsistent:
duration,size, andcreate_timeare returned as strings;fps,width,heightare returned as actual integers. Castduration/size/create_timewithint(...)before arithmetic.
Response Example
Response Fields
Business status code.
0000 indicates success.Human-readable status message.
The video item.
null when the video is not found.Basic fields
Unique video identifier.
Internal stored name of the video.
Video duration in seconds, returned as a string (
int(duration) to use it).File size in bytes, returned as a string.
Upload time in milliseconds since epoch, returned as a string.
Processing status. One of
PARSE, UNPARSE, FAIL.Failure reason — only present when
status=FAIL.Human-readable resolution label (e.g.
720p, 1080p). Lower-case p.Frames per second.
Frame width in pixels.
Frame height in pixels.
Metadata fields
These are only present when the corresponding value was supplied at upload time and the video’s summary row has been written.Capture timestamp in milliseconds since epoch, returned as a string.
Camera/device model recorded at upload.
Decimal latitude.
Decimal longitude.
Combined tag set: user-supplied tags from upload plus scene/object tags auto-generated by the indexing pipeline (e.g.
living_room, couch, cat), plus the auto-appended api tag. Unlike list_videos, this endpoint always returns tags once the video has finished parsing, even if no user tags were supplied at upload — the auto tags alone are enough to populate it.Storage fields
GCS bucket of the video file. Omitted when the storage location cannot be resolved.
GCS blob (object) path of the video file. Use it with
bucket at GET /serve/api/v2/download?bucket=&blob= to fetch the file directly. Note: video_url and cover_url are deliberately not returned by this endpoint — use bucket/blob instead.