mcpField
O
octen-video-search

octen-video-search

github.com/octen-teamCreative & media1052 installsUpdated 4w ago
Repository

About octen-video-search

octen-video-search is a skill that searches web videos using text queries. It returns matched timestamps alongside video details, helping researchers and viewers locate relevant moments; the service is currently in invite-only beta and requires an API key.

Key features

  1. 01Search videos with text queries
  2. 02Return matched segment timestamps
  3. 03Filter by relative or ISO 8601 dates
  4. 04Set result count and safe-search mode
  5. 05Include source, author and cover details

Use cases

  1. 01Finding a specific moment in a video
  2. 02Searching for recent videos on a topic
  3. 03Filtering video results by publication period

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/octen-team/octen-skills --skill octen-video-search

After installing, type/octen-video-searchin Claude Code to confirm it loaded.

Bundled filesagents/openai.yaml

Details

From the project README

Octen Video Search

Find web videos by a text query. Each result includes the matched segment (start/end timestamps within the video), duration, cover image, source page, and author — so you can jump straight to the relevant moment.

In Beta. Contact us to request beta access. Octen Video Search is in invite-only beta — request access via https://octen.ai (or [email protected]). Calls will fail without access; if so, tell the user it's in beta and how to reach Octen.

API Key Setup

Before searching, ensure OCTEN_API_KEY is set. If it is missing — or any call returns 401 — stop and do not retry blindly: tell the user a key is required, point them to https://octen.ai, help them configure it for their agent, then continue once it's set. A 403 means the key is valid but the request was refused — either no beta access or insufficient account balance; relay both possibilities and how to request beta access.

Configure the key for the relevant agent (same as other Octen skills):

  • Claude Code — add { "env": { "OCTEN_API_KEY": "your-key" } } to ~/.claude/settings.json
  • Cursor / generic shell — export OCTEN_API_KEY="your-key" in ~/.zshrc or ~/.bashrc
  • Codex — ~/.codex/config.toml → [shell_environment_policy], set = { OCTEN_API_KEY = "your-key" }
  • OpenClaw — add OCTEN_API_KEY=your-key to ~/.openclaw/.env

Endpoint

POST https://api.octen.ai/video-search

Authentication: X-Api-Key: <API_KEY> header · Content-Type: application/json

Quick Start (cURL)

curl -s -X POST "https://api.octen.ai/video-search" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: ${OCTEN_API_KEY}" \
  -d '{
    "inputs": [{"type": "text", "data": "how to tie a tie"}],
    "count": 5
  }'
With Time Filtering
curl -s -X POST "https://api.octen.ai/video-search" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: ${OCTEN_API_KEY}" \
  -d '{
    "inputs": [{"type": "text", "data": "GPT-5 launch keynote"}],
    "count": 10,
    "time_range": "month"
  }'

Parameters

ParameterTypeRequiredDefaultDescription
inputsarrayYes-One text input: [{"type": "text", "data": "<query>"}] (query max 500 chars)
countintegerNo5Number of results (1–10)
time_rangestringNo-Relative time window: day, week, month, year (or d, w, m, y)
start_timestringNo-Start time filter, ISO 8601
end_timestringNo-End time filter, ISO 8601 (must be after start_time)
safesearchstringNostrictAdult content filter: off or strict

Response Format

FieldTypeDescription
request_idstringUnique request identifier
data.results[]arrayList of video results
data.results[].titlestringVideo title
data.results[].urlstringVideo URL
data.results[].source_pagestringPage the video was found on
data.results[].descriptionstring?Video description
data.results[].cover_urlstring?Cover/thumbnail image URL
data.results[].duration_secondsinteger?Total video duration in seconds
data.results[].match_segmentobject?Matched segment {start_seconds, end_seconds}
data.results[].authorsstring?Channel / author
data.results[].time_publishedstring?Publish time, ISO 8601
data.results[].time_last_crawledstring?Last crawl time, ISO 8601
meta.latencynumberResponse time in milliseconds
meta.warningstring?Warning message, if any

Error Codes

HTTP StatusDescription
400Missing or invalid parameter
401Invalid or missing API key
403Insufficient balance, or no beta access
429Rate limited
500Internal server error

Notes

  • Input is text only today ({"type": "text", "data": "..."}).
  • match_segment gives the timestamps of the most relevant moment — surface them so the user can jump straight to it.
  • count is capped at 10.

Comments

Markdown supported