API reference / media

media

POST/api/v1/media/upload-url

Generate presigned upload URL

Auth:
required (min role: coach)
Request:
{ filename, contentType, fileSize }
Response:
{ data }
GET/api/v1/media

List media assets

Auth:
required
Query:
limit, offset, type, status
Response:
{ data }
GET/api/v1/media/:id

Get media asset by ID

Auth:
required
Response:
{ data }
POST/api/v1/media/:id/confirm

Confirm upload completion

Auth:
required (min role: coach)
Response:
{ success, message }
POST/api/v1/media/:id/analyze

Trigger media analysis via SSE streaming

Auth:
required (min role: coach)
Streaming:
SSE (text/event-stream)
GET/api/v1/media/:id/moments

Get media moments

Auth:
required
Response:
{ data }
GET/api/v1/media/:id/report

Get media analysis report

Auth:
required
Response:
{ data }
POST/api/v1/media/search

Semantic search of media

Auth:
required
Response:
{ data }
PATCH/api/v1/media/:id

Partially update media

Auth:
required
Response:
{ data }
DELETE/api/v1/media/:id

Delete media

Auth:
required
Response:
{ success, message }
POST/api/v1/media/:id/moments

Create moment

Auth:
required
Response:
{ data }
PATCH/api/v1/media/:id/moments

Partially update moment

Auth:
required
Response:
{ data }
PUT/api/v1/media/:id/moments/:momentId

Update moment

Auth:
required
Response:
{ data }
DELETE/api/v1/media/:id/moments/:momentId

Delete moment

Auth:
required
Response:
{ success, message }
GET/api/v1/media/:id/player-taggings

Get player taggings for media

Auth:
required
Response:
{ data }
POST/api/v1/media/:id/player-taggings

Create player tagging

Auth:
required
Response:
{ data }
POST/api/v1/media/cv-jobs

Create cv job

Auth:
required
Response:
{ data }
GET/api/v1/media/cv-jobs/:jobId

Get cv job by ID

Auth:
required
Response:
{ data }
POST/api/v1/media/youtube

Create youtube

Auth:
required
Response:
{ data }
media API — Peer10 Developers