Search
Streamdiver automatically indexes every uploaded media asset – transcripts, speakers, keywords, entities, OCR text from images and videos, and document content. This makes your entire media library searchable by content, not just filenames.
Full-Text Search
The basic search endpoint queries across all indexed fields:
- curl
- Python
- TypeScript
curl --request GET \
--url "https://api.streamdiver.com/v2/search?type=all&text=quarterly%20results" \
--header "Authorization: Bearer {token}" \
--header "Accept: application/json"
results = requests.get(
"https://api.streamdiver.com/v2/search",
params={"type": "all", "text": "quarterly results"},
headers={"Authorization": f"Bearer {token}"},
).json()
for item in results["data"]:
print(item["name"], item["highlights"])
const results = await fetch(
"https://api.streamdiver.com/v2/search?" +
new URLSearchParams({ type: "all", text: "quarterly results" }),
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
results.data.forEach((item) => console.log(item.name, item.highlights));
The type parameter controls what to search for:
| Value | Description |
|---|---|
all | Search media assets and channels |
mediaasset | Search only media assets |
channel | Search only channels |
Targeted Field Search
By default, all indexed fields are searched. Use the fields parameter to narrow the search to specific metadata layers:
curl --request GET \
--url "https://api.streamdiver.com/v2/search?type=mediaasset&text=budget&fields=transcript&fields=document_content" \
--header "Authorization: Bearer {token}"
Available Search Fields
| Field | What it searches |
|---|---|
transcript | Spoken content (automatic transcription) |
speakers | Recognized speaker names |
entities | Extracted entities (people, places, organizations) |
keywords | Automatically derived keywords |
video_text | On-screen text via OCR (videos) |
image_text | Text detected in images via OCR |
document_content | Full text content of documents |
name | Asset name |
description | Asset description |
tag | Assigned tags |
objects | Detected objects in video/images |
actions | Detected actions in video |
exif_metadata | EXIF metadata from images |
Filters
Combine text search with filters to narrow results:
curl --request GET \
--url "https://api.streamdiver.com/v2/search?type=mediaasset&text=keynote&assetTypes=video&channelId={channelId}&durationTo=600" \
--header "Authorization: Bearer {token}"
Commonly used filters:
| Parameter | Description |
|---|---|
assetTypes | Filter by video, audio, image, or document |
channelId | Scope results to a specific channel |
speakers | Filter by speaker name |
tags | Filter by tag |
durationFrom / durationTo | Duration range in seconds |
after / before | Date range filters |
Use GET /search/ranges to retrieve the available filter ranges (max duration, file size, etc.) for your library.
Semantic Search
Beyond keyword matching, Streamdiver provides semantic search that ranks results by meaning – finding relevant content even when exact words don't match:
- curl
- Python
- TypeScript
curl --request GET \
--url "https://api.streamdiver.com/v2/search/semantic?text=how%20to%20reduce%20costs" \
--header "Authorization: Bearer {token}"
results = requests.get(
"https://api.streamdiver.com/v2/search/semantic",
params={"text": "how to reduce costs"},
headers={"Authorization": f"Bearer {token}"},
).json()
const results = await fetch(
"https://api.streamdiver.com/v2/search/semantic?" +
new URLSearchParams({ text: "how to reduce costs" }),
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
Two semantic search modes are available:
| Endpoint | Matches against |
|---|---|
/search/semantic | Overall asset metadata (titles, descriptions, topics) |
/search/textSemantic | Individual sections within assets (chapters, segments) |
Pagination
All search endpoints support pagination:
/search?type=all&text=demo&perPage=10&page=2
| Parameter | Description |
|---|---|
perPage | Number of results per page |
page | Page number (1-based) |
Further Resources
- Interactive API Reference -- Search -- explore all search parameters
- Recommendations -- content-based recommendations
- Chat, RAG & Flows -- ask natural-language questions against your media
- Metadata -- entities, keywords, and speakers that power search
Related Use Cases
- KI-Medienanalyse -- semantic search and RAG across your entire media library
- Medienbeobachtung -- build a media monitoring platform with search and entity extraction