Bulk Detect Chapters
curl --request POST \
--url https://api.example.com/api/v1/assets/chapters/bulk \
--header 'Content-Type: application/json' \
--data '
{
"asset_ids": [
"<string>"
],
"force": false
}
'import requests
url = "https://api.example.com/api/v1/assets/chapters/bulk"
payload = {
"asset_ids": ["<string>"],
"force": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({asset_ids: ['<string>'], force: false})
};
fetch('https://api.example.com/api/v1/assets/chapters/bulk', 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.example.com/api/v1/assets/chapters/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'asset_ids' => [
'<string>'
],
'force' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/assets/chapters/bulk"
payload := strings.NewReader("{\n \"asset_ids\": [\n \"<string>\"\n ],\n \"force\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/assets/chapters/bulk")
.header("Content-Type", "application/json")
.body("{\n \"asset_ids\": [\n \"<string>\"\n ],\n \"force\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/assets/chapters/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"asset_ids\": [\n \"<string>\"\n ],\n \"force\": false\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}chapters
Bulk Detect Chapters
Run AI chapter detection (+ AI naming) across MANY videos at once — “AI chapters for the
library”. Enqueues ONE durable detect job per video (the detect workflow already detects
boundaries AND names them), returning the job ids so the client can track them. Non-video /
missing assets are skipped and reported; videos that already have a chapter set are skipped
unless force (so re-running ‘all’ is cheap and won’t redo finished work or clobber edits).
POST
/
api
/
v1
/
assets
/
chapters
/
bulk
Bulk Detect Chapters
curl --request POST \
--url https://api.example.com/api/v1/assets/chapters/bulk \
--header 'Content-Type: application/json' \
--data '
{
"asset_ids": [
"<string>"
],
"force": false
}
'import requests
url = "https://api.example.com/api/v1/assets/chapters/bulk"
payload = {
"asset_ids": ["<string>"],
"force": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({asset_ids: ['<string>'], force: false})
};
fetch('https://api.example.com/api/v1/assets/chapters/bulk', 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.example.com/api/v1/assets/chapters/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'asset_ids' => [
'<string>'
],
'force' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/assets/chapters/bulk"
payload := strings.NewReader("{\n \"asset_ids\": [\n \"<string>\"\n ],\n \"force\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/assets/chapters/bulk")
.header("Content-Type", "application/json")
.body("{\n \"asset_ids\": [\n \"<string>\"\n ],\n \"force\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/assets/chapters/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"asset_ids\": [\n \"<string>\"\n ],\n \"force\": false\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}⌘I