Media library
The media library (sidebar → Library) is your central store for images, videos, and documents. Upload once, reuse across any number of posts, and organize into collections that agents can draw from.
Two tabs: Media (everything, filterable by All / Images / Videos, paged as you scroll) and Collections. A storage meter in the header shows used vs. plan quota.
Upload
Drop files (or browse): images, video, and PDF documents. Details worth knowing:
- HEIC/HEIF photos are converted to JPEG before they leave your browser — the stored file is the converted one.
- Uploads use a presigned URL flow: the browser PUTs directly to object storage (R2) and then registers the record. Videos are served back with full byte-range support, so they stream and seek correctly.
- The effective size ceiling is the smaller of your plan's per-file limit and the absolute ceiling:
| Type | Absolute ceiling | Free-plan ceiling |
|---|---|---|
| Images | 25 MB | 10 MB |
| Video | 100 MB | 25 MB |
| Documents | 100 MB | 25 MB |
- Allowed types: JPEG, PNG, WebP, GIF, HEIC/HEIF; MP4, WebM, QuickTime; PDF (stored as documents — used by LinkedIn document posts).
- Storage quota — your plan's total storage (5 GB on Starter up to 500 GB on Agency; 1 GB on the free bucket). Exceeding it blocks the upload with a clear message; free space by deleting unused media.
Per-platform limits are often lower still — and the smaller of the two is enforced when media is attached to a post. See platform limits.
AI analysis
Every uploaded image and video is analyzed automatically:
- Images — one vision pass produces a 2–3 sentence description (subjects, setting, colors, text, actions), brand-context aware. This is what lets captions "see" your media.
- Videos — an extraction container pulls four evenly-spaced frames and up to 60 seconds of audio; each frame is described, the audio is transcribed, and a synthesis pass writes the final description. Frame zero becomes the video's poster/thumbnail.
- Analysis is metered as AI actions (a video costs its frames plus transcription and synthesis) — if today's remaining allowance can't cover a video, the job waits and tells you when quota resets. If analysis is slow or you change the content, you can edit a description or force a re-run from the media detail panel.
Thumbnails are generated server-side and are not AI — no allowance consumed.
Media detail
Click any item for the full record: preview (video with controls), type, size, dimensions, upload date, and its AI description. You'll also find:
- Posted in — every post using this media, with status and time, linking to the post.
- Add to collection / Remove from collection.
- Edit (images only) — opens the crop editor.
- Download and Delete.
Delete guard — media attached to any draft, scheduled, or in-flight post can't be deleted, nor media on a post with an active recurrence. The error names the blocking posts. Published history and collection memberships don't block deletion.
Collections
A collection is an album with a name and an optional description (the description is used as AI context when agents pick from it). Collections are how you tell agents what material is approved:
- Create from the library header; add media from any media detail, or in bulk from a collection's Add Media picker (already-added items are hidden).
- Reorder with drag handles — the position is the order agents consume media in.
- Attach collections to an agent as its source pool (see Agents).
Using media in posts
When you attach media in the composer, each file is
validated against the destination platform's constraints for that post type
— a video that's fine as a YouTube long-form upload (≤4 h) will be flagged if
you also target it at a YouTube Short (≤3 min). Media keeps its sortOrder,
which matters for Instagram carousels and Reddit galleries.
Related
- Compose — where media gets attached.
- Platform limits — per-platform constraints.
- Media API — upload and manage media via the REST API.