Search from Audio
curl --request GET \
--url https://api.memories.ai/serve/api/v1/search_audio_transcripts \
--header 'Authorization: <api-key>'import requests
url = "https://api.memories.ai/serve/api/v1/search_audio_transcripts"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.memories.ai/serve/api/v1/search_audio_transcripts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.memories.ai/serve/api/v1/search_audio_transcripts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.memories.ai/serve/api/v1/search_audio_transcripts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.memories.ai/serve/api/v1/search_audio_transcripts")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.memories.ai/serve/api/v1/search_audio_transcripts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"code": "0000",
"msg": "success",
"data": {
"current_page": 1,
"page_size": 100,
"total_count": 2,
"videos": [
{
"videoNo": "VI576925607808602112",
"videoName": "1920447021987282945",
"startTime": "13",
"audio_ts": "... where is the love ...",
"video_bucket": "mavi-resource",
"video_blob": "VI576925607808602112.mp4"
}
]
},
"success": true,
"failed": false
}Private Video Library
Search by Transcript
Exact keyword search across stored audio transcripts in your Private Video Library.
GET
/
serve
/
api
/
v1
/
search_audio_transcripts
Search from Audio
curl --request GET \
--url https://api.memories.ai/serve/api/v1/search_audio_transcripts \
--header 'Authorization: <api-key>'import requests
url = "https://api.memories.ai/serve/api/v1/search_audio_transcripts"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.memories.ai/serve/api/v1/search_audio_transcripts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.memories.ai/serve/api/v1/search_audio_transcripts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.memories.ai/serve/api/v1/search_audio_transcripts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.memories.ai/serve/api/v1/search_audio_transcripts")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.memories.ai/serve/api/v1/search_audio_transcripts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"code": "0000",
"msg": "success",
"data": {
"current_page": 1,
"page_size": 100,
"total_count": 2,
"videos": [
{
"videoNo": "VI576925607808602112",
"videoName": "1920447021987282945",
"startTime": "13",
"audio_ts": "... where is the love ...",
"video_bucket": "mavi-resource",
"video_blob": "VI576925607808602112.mp4"
}
]
},
"success": true,
"failed": false
}Product: Visual Search
Use case: Upload videos and images, auto-index them, then search by natural language, image, or transcript phrase
Host:
https://api.memories.ai/serve/api/v1
Auth: Authorization: sk-mavi-... (no Bearer prefix)search_type=BY_AUDIO.
Prerequisites
- You have created a memories.ai API key.
- The target videos have an audio track and have finished parsing.
Request Example
import requests
headers = {"Authorization": "sk-mavi-..."}
params = {
"query": "where is the love",
"page": 1,
"page_size": 100
}
response = requests.get(
"https://api.memories.ai/serve/api/v1/search_audio_transcripts",
headers=headers,
params=params
)
print(response.json())
Parameters
string
required
Search phrase. LIKE-style exact matching against stored transcripts.
integer
default:"1"
One-based page number.
integer
default:"100"
Results per page. Range: 1 – 500.
Response
{
"code": "0000",
"msg": "success",
"data": {
"current_page": 1,
"page_size": 100,
"total_count": "2",
"videos": [
{
"videoNo": "VI576925607808602112",
"videoName": "1920447021987282945",
"startTime": "13",
"audio_ts": "... where is the love ...",
"video_bucket": "mavi-resource",
"video_blob": "VI576925607808602112.mp4"
}
]
},
"success": true,
"failed": false
}
integer
Page number returned.
integer
Page size returned.
string
Total matching segments across all pages, returned as a string (
int(total_count) to use it).string
Identifier of the video containing the matched segment.
string
Internal stored name of the video.
string
Segment start time in seconds (returned as string).
string
The matched transcript text.
string
GCS bucket of the original video file. Omitted when the storage location cannot be resolved.
string
GCS blob (object) path of the original video. Use it with
video_bucket at GET /serve/api/v2/download?bucket=&blob= to fetch the file directly.Notes & Limits
- Rate limiting: Exceeding the per-account rate limit returns an error. See Rate limits.
- Billing: Each successful call deducts credits from your account balance.
Authorizations
Query Parameters
Audio transcript search text (LIKE match). Must be non-empty.
One-based page number. Must be > 0.
Required range:
x >= 1Results per page. Range 1-500.
Required range:
1 <= x <= 500