
🎙 Podcast Version
2-host dialogue — ALEX & SAM discuss this course.
Building Agent-Native Video Clips with Clips: An Open‑Source Alternative to Loom
Overview
This course teaches you how Clips enables AI agents to “see and hear” video content directly from a shareable URL, eliminating the barrier that ordinary Loom links pose to automated systems. You will learn the core ideas behind agent‑native media, the specific features Clips provides (transcripts, frame‑level APIs, metadata import/export), and how to integrate Clips into agent workflows using its open‑source APIs. By the end, you will be able to record, share, and programmatically interrogate video clips just as you would with any other data source an agent can consume.
Background & Context
Traditional screen‑recording tools like Loom generate URLs that point to a video file but expose no structured data to AI agents. When an agent receives a Loom link, it can only treat the URL as an opaque blob; it cannot extract spoken words, visual frames, or temporal metadata without running costly, ad‑hoc video‑processing pipelines. This limitation hinders scenarios where agents need to review tutorials, debug sessions, or customer‑support recordings autonomously.
Steve8708 recognized this gap and built Clips as a 100 % free, open‑source, agent‑native clone of Loom. The design goal was to make every clip self‑describing: the URL itself carries enough information for an agent to request a transcript, retrieve any frame, or pull images that correspond to spoken utterances. Clips fits into the broader landscape of multimodal AI agent tooling by providing a lightweight, standards‑based media layer that agents can consume via HTTP APIs, just like they would query a database or call a microservice.
Core Concepts
Agent‑Native Media
Agent‑native media refers to any digital artifact (video, audio, image, text) that is published with built‑in, machine‑readable interfaces enabling autonomous software agents to interrogate its content without external processing. In the case of Clips, each clip is accompanied by a JSON‑based metadata document and a set of RESTful endpoints that return the transcript, timestamps, and individual frames. This contrasts with legacy media where agents must first download the raw file and run speech‑to‑text or object detection models themselves—a costly and error‑prone step.
URL‑Based Agent Understanding
A core promise of Clips is that an agent can derive full comprehension of a clip solely from its public URL. When you share a clip, the URL encodes a unique identifier (e.g., https://clips.app/abc123). An agent appends well‑known paths to this base URL to request specific data:
https://clips.app/abc123/transcript→ plain‑text or JSON transcripthttps://clips.app/abc123/frame?t=45.2→ JPEG/PNG of the video at 45.2 secondshttps://clips.app/abc123/metadata→ JSON describing duration, codec, creator, etc.
Because the URL is the sole entry point, agents do not need authentication tokens or out‑of‑band configuration; they treat the clip like any other web resource.
APIs and Metadata for Agents
Every clip exposes a predictable API surface:
- Metadata endpoint (
/metadata) returns a JSON object with fields such asduration_sec,width,height,created_at,creator_id, andtags. - Transcript endpoint (
/transcript) returns eithertext/plain(verbatim speech) orapplication/jsonwith an array of{start, end, text}objects, enabling agents to locate speech at precise times. - Frame endpoint (
/frame) accepts a query parametert(float seconds) and returns the corresponding image. Optional parameterswidthandheightlet agents request thumbnails or full‑resolution frames. - Search endpoint (
/search?q=…) lets agents query the transcript for keywords and receive matching timestamp ranges.
These APIs are documented via OpenAPI (Swagger) and can be called with standard HTTP clients (curl, fetch, axios, etc.).
Transcript Extraction
When a clip is recorded, Clips runs an on‑server speech‑to‑text model (Whisper‑base by default) and stores the result as time‑coded text. The transcript is searchable and sliceable: an agent can request the transcript for a specific interval (/transcript?start=10&end=20) to reduce bandwidth. The transcript includes speaker labels if the recording captures multiple voices, enabling diarization‑aware agents.
Frame / Image Extraction Based on Speech
Because each transcript entry knows its start and end time, an agent can map spoken phrases to visual frames. For example, if the transcript contains the phrase “click the Submit button” at 12.3 s–12.8 s, the agent can call /frame?t=12.5 to obtain a screenshot of the button at that moment. This capability enables agents to perform visual grounding: linking language to pixels without running a separate vision model.
Importing Loom Clips via URL
Clips provides an import function that accepts a Loom URL (https://www.loom.com/share/xyz) and automatically downloads the source video, runs transcription, and re‑publishes it as a native Clip with its own agent‑friendly URL. The import preserves the original timing and quality while adding the metadata layers described above. Agents can thus treat legacy Loom content as first‑class Clips without manual re‑recording.
Uploading Video or Audio Files
Beyond screen capture, Clips lets users upload arbitrary video (MP4, MOV) or audio (WAV, MP3) files. Upon upload, the service extracts audio, runs transcription, generates thumbnails at keyframes, and stores the media in a content‑addressable store. The resulting clip behaves identically to a natively recorded one: full API access, shareable URL, and open‑source client availability.
Free and Open‑Source
The entire Clips stack—frontend (React), backend (Node.js/Express), transcription worker (Python + Whisper), and storage layer (S3‑compatible or local)—is released under the MIT License. Users can self‑host the service on any Docker‑capable host, eliminating vendor lock‑in and ensuring compliance with data‑privacy requirements. The hosted demo at clips.app offers unlimited free usage for individuals and small teams.
Browser and Desktop Access
Clips provides two primary consumption modes:
- Web app: Open
https://clips.appin any modern browser, click “Record”, and share the generated URL instantly. - Desktop app: Available for Windows, macOS, and Linux (Electron‑based). The desktop client adds features like local file shortcuts, custom hotkeys, and the ability to save recordings directly to a local folder before uploading.
Both clients produce the same agent‑native output; the choice depends on whether you prefer an in‑browser workflow or a native desktop experience.
How It Works / Step‑by‑Step
Step 1 – Record or Import a Clip
- Record: Launch the Clips web or desktop app, press the record button, select the screen region/window/application audio, and perform your demonstration. Stop recording when finished.
- Import Loom: Click “Import”, paste a Loom share URL, and wait for the service to fetch, transcribe, and re‑publish the clip.
- Upload File: Drag‑and‑drop an MP4/MOV/WAV/MP3 file onto the upload zone; the service processes it similarly.
Step 2 – Obtain the Agent‑Friendly URL
After processing, the UI displays a shareable link of the form https://clips.app/<clip-id>. Copy this URL; it is the sole reference an agent will need.
Step 3 – Agent Retrieves Metadata
The agent issues a GET request:
GET https://clips.app/<clip-id>/metadata
Accept: application/json
Response (example):
{
"clip_id": "abc123",
"duration_sec": 184.5,
"width": 1920,
"height": 1080,
"created_at": "2025-09-24T14:32:10Z",
"creator_id": "user_42",
"tags": ["tutorial","debug"]
}
Step 4 – Pull the Transcript
GET https://clips.app/<clip-id>/transcript?start=0&end=184.5
Accept: application/json
Response snippet:
[
{"start":0.0,"end":3.2,"text":"Hello, today we will show how to reset the password."},
{"start":3.2,"end":7.5,"text":"First, navigate to the Settings panel."},
…
]
The agent can now search for keywords (e.g., “password”) and obtain the exact time range.
Step 5 – Retrieve Frames Based on Speech
Suppose the agent wants the frame where the speaker says “click the Reset button”. It first finds the transcript entry:
{"start":45.1,"end":48.3,"text":"Now click the Reset button to continue."}
Then it requests a frame at the midpoint:
GET https://clips.app/<clip-id>/frame?t=46.2
Accept: image/jpeg
The server returns a JPEG of the screen at 46.2 seconds, which the agent can feed into a vision model or compare against UI templates.
Step 6 – Perform Agent‑Level Reasoning
With transcript text and aligned visual frames, the agent can:
- Verify that a demonstrated step matches an expected SOP.
- Extract UI element coordinates via OCR/template matching on the frame.
- Generate a natural‑language summary of the clip for a human reviewer.
- Trigger downstream actions (e.g., file a bug ticket if a step fails).
Step 7 – Share Results
The agent can publish its findings as a new Clip (recording its own screen or audio) or simply return JSON/Markdown to the calling workflow. Because the original clip’s URL remains constant, any other agent can replay the same analysis later.
Real‑World Examples & Use Cases
Example 1 – Autonomous QA Testing
A software team records a regression test walkthrough with Clips. After each build, an agent fetches the latest Clip, pulls the transcript for the phrase “login fails”, retrieves the frame at that timestamp, runs OCR to capture the error message, and automatically creates a Jira ticket if the message matches a known bug pattern. Because the clip is agent‑native, the agent needs no heavyweight video processing pipeline—just a few HTTP calls.
Example 2 – Customer Support Knowledge Base
Support engineers record short troubleshooting clips (e.g., “How to reset your router”). The clips are uploaded to Clips and embedded in the support portal. When a customer asks a question, the support bot retrieves the relevant Clip, searches the transcript for keywords from the transcript for the customer’s phrasing (“router won’t connect”), extracts the frame showing the reset button, and replies with a screenshot and a short video clip timestamped to that moment.
Example 3 – Educational Content Review
A professor records a lecture using Clips. Teaching assistants need to verify that all learning objectives were covered. An agent pulls the full transcript, runs a keyword match against the syllabus (“object‑oriented inheritance”, “polymorphism”), and returns the list of timestamps where each concept appears. The TA can then jump directly to those sections to review the slides and code samples shown in the video.
Example 4 – Cross‑Platform Media Import
A company archives years of Loom recordings for compliance. Rather than re‑recording, they run a batch import job: each Loom URL is POSTed to https://clips.app/api/import with the Loom link; the service returns a new Clips URL. The resulting clips are stored in an internal S3 bucket, and a nightly agent job indexes their transcripts for searchable retrieval.
Key Insights & Takeaways
- Clips removes the “opaque URL” problem by binding machine‑readable metadata and APIs directly to every shareable video link.
- Agents can obtain a full‑text transcript, arbitrary frames, and keyword‑searchable indices with simple HTTP GET requests—no heavyweight video decoding required on the agent side.
- The ability to import Loom URLs or upload arbitrary video/audio means existing media libraries can be upgraded to agent‑native format without loss of fidelity.
- Because Clips is MIT‑licensed and self‑hostable, organizations can retain full control over data privacy while still benefiting from the same agent‑friendly interface.
- The frame‑extraction feature enables true vision‑language grounding: agents can map spoken descriptions to precise pixels without running a separate object detection model on the whole video.
- Browser‑based recording lowers the barrier to adoption; desktop clients offer additional workflow integrations for power users.
- Open‑source nature invites community contributions (e.g., alternative transcription models, custom storage backends, SDKs for popular agent frameworks).
Common Pitfalls / What to Watch Out For
- Assuming real‑time processing: The transcription and thumbnail generation happen server‑side after upload; agents should not expect instant availability for very long recordings (e.g., >2 hours). Plan for a short processing lag (typically a few seconds per minute of video).
- Neglecting API rate limits: The public demo instance enforces a reasonable request‑per‑minute limit to prevent abuse. When building production agents, either self‑host or request a higher‑quota endpoint.
- Overlooking transcript accuracy: Whisper‑base provides strong English accuracy but may struggle with heavy accents, domain‑specific jargon, or low‑audio‑quality clips. Consider post‑processing the transcript with a custom language model or providing a correction UI.
- Misusing frame timestamps: Frame requests are approximate; the nearest keyframe may be returned if the video uses inter‑frame compression. For pixel‑precise work, request frames at intervals shorter than the GOP size (e.g., every 0.5 s) and then select the exact frame you need.
- Forgetting to secure self‑hosted instances: If you deploy Clips internally, ensure the service is behind authentication or network segmentation if the clips contain sensitive information; the open‑source nature does not automatically enforce access control.
- Assuming all Loom imports preserve interactivity: Loom’s interactive features (e.g., clickable CTA overlays) are not retained in the imported Clip; only the underlying video/audio and transcript are preserved.
Review Questions
- Explain how an agent can obtain a transcript for a specific time interval from a Clip, including the exact HTTP request format and the shape of the JSON response.
- Describe the step‑by‑step process an agent would follow to locate a visual frame that corresponds to a spoken phrase, starting from the Clip’s URL and ending with the retrieved image file.
- Imagine you have a legacy library of Loom recordings that must be made searchable by an internal knowledge‑bot. Outline a complete workflow—from import to indexing—using Clips, specifying which APIs you would call and what data you would store for fast retrieval.
Further Learning
- Multimodal Agent Architectures: Study how vision and language models are combined (e.g., Flamingo, GPT‑4V) to enable agents that reason over both text and frames.
- Speech‑to‑Text Optimization: Explore fine‑tuning Whisper or using specialized models (e.g., NVIDIA NeMo) for domain‑specific vocabularies to improve transcript accuracy in Clips.
- Agent Workflow Orchestration: Look into frameworks like LangChain, LlamaIndex, or AutoGen that allow chaining API calls (metadata → transcript → frame search) into reusable agent tools.
- Self‑Hosting and Scaling: Review the Clips repository’s Docker‑Compose file, learn how to swap the storage backend (e.g., MinIO, Azure Blob), and horizontally scale the transcription worker pool with Kubernetes.
- Open‑Source Media Standards: Investigate emerging standards such as MPEG‑7, Media Fragment URI (MFURI), and W3C Media Captions that aim to make media natively queryable by machines, and consider how Clips aligns with or diverges from these efforts.
End of course.