Skip to main content

Overview

Mux is a video infrastructure platform for building video experiences. By connecting Mux to Mixpeek, you can automatically process your video assets through feature extraction pipelines — enabling search, classification, and analysis across your entire video library.

Prerequisites

  • A Mux account with video assets
  • A Mux access token with Mux Video read permissions
  • A Mixpeek account with an active namespace
  • Static renditions or MP4 support enabled on your Mux assets (see below)
Static renditions are required. By default, Mux assets only have HLS streaming — no downloadable MP4 files. Mixpeek needs MP4 renditions to download and process your videos. Assets without static renditions will be skipped during sync.Enable static renditions when creating assets:
{
  "input": [{"url": "https://example.com/video.mp4"}],
  "playback_policy": ["public"],
  "static_renditions": [{"resolution": "720p"}]
}
Or enable them on existing assets in the Mux Dashboard under each asset’s settings.

Configuration

Connection-level fields

FieldRequiredDescription
access_token_idYesMux access token ID (UUID format)
access_token_secretYesMux access token secret

Sync-level fields

FieldRequiredDefaultDescription
source_pathNomux://Sync all assets, or mux://{asset_id} for a specific asset
sync_modeNocontinuousinitial_only or continuous
polling_interval_secondsNo300How often to check for new assets (continuous mode)

Setup

1

Create a Mux access token

  1. Go to Mux Dashboard → Settings → Access Tokens
  2. Click Generate new token
  3. Select Mux Video with Read permissions
  4. Copy the Token ID and Token Secret immediately — the secret is only shown once
2

Create the connection in Mixpeek

In the Mixpeek Studio, go to Settings → Storage Connections → Add Connection and select Mux.Or via the API:
from mixpeek import Mixpeek

client = Mixpeek(api_key="YOUR_API_KEY")

connection = client.organizations.connections.create(
    name="Mux Production",
    provider_type="mux",
    provider_config={
        "credentials": {
            "type": "access_token",
            "access_token_id": "a3b02074-dbca-47b6-...",
            "access_token_secret": "Am9+RGn2mhmz..."
        }
    },
    test_before_save=True
)
3

Create a bucket with Mux sync

Create a bucket and configure it to sync from your Mux connection:
Python
bucket = client.buckets.create(
    namespace_id="your-namespace-id",
    name="mux-videos",
    description="Video assets from Mux",
    blob_type="video"
)

sync = client.buckets.syncs.create(
    namespace_id="your-namespace-id",
    bucket_id=bucket.bucket_id,
    connection_id=connection.connection_id,
    source_path="mux://",
    sync_mode="continuous",
    polling_interval_seconds=300
)
4

Verify ingestion

Monitor the sync status in Studio or via the API. Video assets in ready status will be automatically downloaded and processed through your collection’s feature extractors.

Source path format

PathBehavior
mux://Sync all video assets in ready status
mux://{asset_id}Sync a specific asset by ID

Asset filtering

Only assets in ready status are synced. Assets that are preparing or errored are skipped automatically. You can also use file filters to narrow sync scope:
sync = client.buckets.syncs.create(
    namespace_id="your-namespace-id",
    bucket_id=bucket.bucket_id,
    connection_id=connection.connection_id,
    source_path="mux://",
    file_filters={
        "min_size": 1000000,  # Skip assets under ~1MB (estimated)
    }
)

Sync modes

ModeDescription
initial_onlySync all current assets once
continuousPoll for new assets at the configured interval

Troubleshooting

Verify your access token ID and secret are correct. The token ID is a UUID (e.g., a3b02074-dbca-47b6-...), not the environment ID. Tokens can be regenerated in the Mux Dashboard.
Only assets with ready status and at least one playback ID are synced. Check your asset status in the Mux Dashboard. Assets that are still encoding (preparing) will be picked up on the next sync cycle.
Assets need a public or signed playback ID and either static renditions or MP4 support enabled. By default, Mux assets only have HLS streaming — MP4 downloads require explicit configuration.To enable static renditions when creating an asset via the Mux API:
{
  "input": [{"url": "https://example.com/video.mp4"}],
  "playback_policy": ["public"],
  "static_renditions": [{"resolution": "720p"}]
}
You can also enable static renditions on existing assets in the Mux Dashboard under the asset’s settings. Mixpeek will try multiple rendition qualities (low, medium, high, highest) and use the first available one.