Skip to main content

Documentation Index

Fetch the complete documentation index at: https://usenaive.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Media Asset Management is the asset library primitive for organizing all your company’s media files — images, videos, clips, and generated content. Assets are auto-ingested when video clipping or video generation jobs complete, and can also be uploaded manually via URL or direct file upload.

CLI First

# List all media assets
naive media list

# List only video clips
naive media list --source video_clipping

# Upload from a URL
naive media upload --url "https://cdn.example.com/hero.mp4" --title "Hero Video"

# Upload a local file
naive media upload --file ./campaign-video.mp4 --title "Campaign Video" --tags "campaign,q3"

# Get asset details
naive media get <asset_id>

# Update metadata
naive media update <asset_id> --title "Updated Title" --tags "edited,final"

# Delete an asset
naive media delete <asset_id>

Tools

ToolTypeDescriptionCost
naive_media_listCoreList and filter media assetsFree
naive_media_getCoreGet a single asset by IDFree
naive_media_upload_urlCoreUpload media from a public URLFree
naive_media_updateCoreUpdate asset title, description, tagsFree
naive_media_deleteCoreDelete an assetFree
Direct file upload is available via the CLI (naive media upload --file) and Studio UI, but not as an MCP tool.

Listing Assets

The naive_media_list tool returns a paginated list of assets with optional filtering.
curl https://api.usenaive.ai/v1/media?source_type=video_clipping&limit=20 \
  -H "Authorization: Bearer nv_sk_live_..."

Filter Parameters

ParameterTypeDescription
source_typestringFilter by origin: manual, video_clipping, video_generation, url_import
searchstringSearch by title or filename (case-insensitive)
limitnumberMax results (default 50, max 100)
offsetnumberPagination offset

Uploading Assets

From URL

curl -X POST https://api.usenaive.ai/v1/media/upload/url \
  -H "Authorization: Bearer nv_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://cdn.example.com/video.mp4",
    "title": "Product Demo",
    "tags": ["demo", "product"]
  }'

Direct File Upload

curl -X POST https://api.usenaive.ai/v1/media/upload/file \
  -H "Authorization: Bearer nv_sk_live_..." \
  -F "file=@./video.mp4" \
  -F "title=Campaign Video" \
  -F 'tags=["campaign","q3"]'
File uploads accept images and videos up to 100 MB. Files are stored on Tigris object storage with automatic CDN delivery.

Auto-Ingest from Jobs

When a video clipping, video editing, or video generation job completes, results are automatically added to your media library:
  • Video Clipping: Each extracted clip becomes a separate asset with source_type: "video_clipping", tagged with clip and its virality score (e.g. virality:91)
  • Video Editing: The enhanced video is added with source_type: "video_clipping", tagged with edited
  • Video Generation: The generated video is added with the prompt as the title, source_type: "video_generation", tagged with generated and the model name (e.g. text-to-video)
No manual action is needed — check your Media Asset Manager or call naive media list to see new assets. You can then create social posts directly from these assets using upload_ids on the social post API.

Updating Assets

Update title, description, or tags on any asset:
curl -X PATCH https://api.usenaive.ai/v1/media/<asset_id> \
  -H "Authorization: Bearer nv_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Final Cut - Hero Video",
    "description": "Approved version for social distribution",
    "tags": ["final", "approved", "hero"]
  }'

Deleting Assets

curl -X DELETE https://api.usenaive.ai/v1/media/<asset_id> \
  -H "Authorization: Bearer nv_sk_live_..."

Cost

All media asset management operations are free. Storage is included with your plan. The only costs come from the upstream primitives that generate the assets (video clipping at 4 credits, video generation at variable cost).

Error Handling

ErrorCauseFix
resource_not_foundAsset ID doesn’t exist or belongs to another companyVerify the asset ID
invalid_inputMissing required fieldsCheck required parameters
provider_errorURL upload failed (unreachable URL)Verify the URL is publicly accessible

Typical Workflow

┌─────────────┐     ┌──────────────┐     ┌──────────────────┐
│ Video Clip   │────>│ Auto-ingest  │────>│ Media Asset      │
│ or Generate  │     │ to library   │     │ Manager          │
└─────────────┘     └──────────────┘     └──────────────────┘

                                    ┌───────────┼───────────┐
                                    ▼           ▼           ▼
                              Tag & organize  Create post  Download
                              naive media     naive social  asset URL
                              update          post