Skip to content

Videos

The Videos router manages your video library. Videos are the core resource in LynxVizion — each video has a unique job_id and progresses through processing states.

Video statuses: uploadedqueuedprocessingcompleted | failed


List all videos for the authenticated user.

Auth: Required

Query ParamTypeRequiredDescription
project_idstringNoFilter by project ID
statusstringNoFilter by status (uploaded, queued, processing, completed, failed)

Response: VideoResponse[]

[
{
"id": "1",
"user_id": "550e8400-...",
"job_id": "a1b2c3d4-...",
"project_id": null,
"name": "my-video.mp4",
"status": "completed",
"selected_insights": "[\"visualelements\",\"transcription\"]",
"duration": 120.5,
"file_size": 52428800,
"processing_time": 45.2,
"storage_path": "users/550e8400-.../my-video.mp4",
"created_at": "2025-01-15T10:00:00",
"updated_at": "2025-01-15T10:05:00"
}
]
Terminal window
curl https://api.lynxvizion.com/api/videos \
-H "Authorization: $LVZ_KEY"

Get a single video by job ID.

Auth: Required

Path ParamTypeRequiredDescription
job_idstringYesThe video’s job ID (UUID)

Response: VideoResponse

Terminal window
curl https://api.lynxvizion.com/api/videos/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: $LVZ_KEY"

Update video metadata.

Auth: Required

Path ParamTypeRequiredDescription
job_idstringYesThe video’s job ID
Body FieldTypeRequiredDescription
namestringNoDisplay name
descriptionstringNoDescription text
project_idstringNoAssign to a project (or null to unassign)

Response: Updated VideoResponse

Terminal window
curl -X PATCH https://api.lynxvizion.com/api/videos/a1b2c3d4-... \
-H "Authorization: $LVZ_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Product Demo v2", "project_id": "5"}'

Delete a video, its analysis segments, and associated shared reports. Does not delete the source file from storage (use DELETE /storage/files for that).

Auth: Required

Path ParamTypeRequiredDescription
job_idstringYesThe video’s job ID

Response:

{ "ok": true }
Terminal window
curl -X DELETE https://api.lynxvizion.com/api/videos/a1b2c3d4-... \
-H "Authorization: $LVZ_KEY"

Register a video from storage and immediately queue it for processing in one call.

Auth: Required

Body FieldTypeRequiredDescription
modulesstring[]YesAnalysis modules to run (e.g. ["visualelements", "transcription"])
storage_pathstringYesB2 storage path (must be under users/<your-user-id>/)
file_namestringNoDisplay name (defaults to filename from path)
initial_promptstringNoCustom prompt to guide analysis

Response:

{
"job_id": "a1b2c3d4-...",
"status": "queued",
"message": "Video queued for processing"
}
Terminal window
curl -X POST https://api.lynxvizion.com/api/videos/register-and-process \
-H "Authorization: $LVZ_KEY" \
-H "Content-Type: application/json" \
-d '{
"modules": ["visualelements", "transcription", "scenes"],
"storage_path": "users/550e8400-.../my-video.mp4",
"file_name": "Product Demo"
}'

Start or restart processing for an existing video with specified modules.

Auth: Required

Path ParamTypeRequiredDescription
job_idstringYesThe video’s job ID
Body FieldTypeRequiredDescription
modulesstring[]YesAnalysis modules to run
storage_pathstringNoOverride storage path
initial_promptstringNoCustom prompt

Response:

{
"job_id": "a1b2c3d4-...",
"status": "queued",
"message": "Video queued for processing"
}
Terminal window
curl -X POST https://api.lynxvizion.com/api/videos/a1b2c3d4-.../process \
-H "Authorization: $LVZ_KEY" \
-H "Content-Type: application/json" \
-d '{"modules": ["visualelements", "transcription"]}'

Reprocess an already-analyzed video. Clears existing segments before reprocessing.

Auth: Required

Path ParamTypeRequiredDescription
job_idstringYesThe video’s job ID
Body FieldTypeRequiredDescription
modulesstring[]NoOverride modules (keeps existing if omitted)
initial_promptstringNoCustom prompt

Response:

{
"job_id": "a1b2c3d4-...",
"status": "queued",
"message": "Video queued for reprocessing"
}
Terminal window
curl -X POST https://api.lynxvizion.com/api/videos/a1b2c3d4-.../reprocess \
-H "Authorization: $LVZ_KEY" \
-H "Content-Type: application/json" \
-d '{"modules": ["scenes", "logos"]}'