curl --request GET \
--url https://api.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}', 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.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}",
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: Bearer <token>"
],
]);
$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.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"collection_id": "<string>",
"file_id": "<string>",
"object": "collection_file",
"added_at": 123,
"status": "pending",
"searchable_status": "pending",
"file": {
"id": "<string>",
"status": "pending",
"uri": "<string>",
"bytes": 123,
"created_at": 123,
"filename": "<string>",
"metadata": {},
"media_type": "video",
"media_info": {
"duration_seconds": 123,
"width": 123,
"height": 123,
"sample_rate": 123,
"channels": 123,
"bitrate": 123,
"format": "<string>",
"has_audio": true
},
"video_info": {
"duration_seconds": 123,
"height": 123,
"width": 123,
"format": "<string>",
"has_audio": true
},
"thumbnail_url": "<string>",
"source": "video",
"source_metadata": {
"source_type": "grain",
"grain_recording_id": "<string>",
"title": "<string>",
"start_datetime": "2023-11-07T05:31:56Z",
"end_datetime": "2023-11-07T05:31:56Z",
"duration_ms": 123,
"media_type": "audio",
"upstream_source": "aircall",
"grain_url": "<string>",
"thumbnail_url": "<string>",
"tags": [
"<string>"
],
"teams": [
{
"id": "<string>",
"name": "<string>"
}
],
"meeting_type": {
"id": "<string>",
"name": "<string>",
"scope": "<string>"
},
"participants": [
{
"id": "<string>",
"name": "<string>",
"email": "<string>",
"scope": "internal",
"confirmed_attendee": true,
"hs_contact_id": "<string>"
}
],
"highlights": [
{}
],
"ai_summary": {
"text": "<string>"
},
"ai_action_items": [
{
"status": "pending",
"timestamp_ms": 123,
"text": "<string>",
"assignee": {
"id": "<string>",
"name": "<string>",
"user_id": "<string>"
}
}
],
"ai_template_sections": [
{}
],
"calendar_event": {
"ical_uid": "<string>"
},
"hubspot": {
"hubspot_company_ids": [
"<string>"
],
"hubspot_deal_ids": [
"<string>"
]
}
}
},
"segmentation": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"segmentation_config": {
"strategy": "uniform",
"uniform_config": {
"window_seconds": 60.5,
"hop_seconds": 60.5
},
"shot_detector_config": {
"detector": "adaptive",
"threshold": 123,
"min_seconds": 300.3,
"max_seconds": 300.5,
"fill_gaps": true
},
"manual_config": {
"segments": [
{
"start_time": 123,
"end_time": 123
}
]
},
"narrative_config": {
"prompt": "<string>",
"strategy": "comprehensive",
"number_of_chapters": 2,
"min_chapters": 2,
"max_chapters": 2
},
"keyframe_config": {
"frames_per_segment": 4,
"max_width": 2232
},
"start_time_seconds": 1,
"end_time_seconds": 1
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}Get Collection Video Info
Retrieve information about a specific video file in a collection
curl --request GET \
--url https://api.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}', 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.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}",
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: Bearer <token>"
],
]);
$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.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudglue.dev/v1/collections/{collection_id}/videos/{file_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"collection_id": "<string>",
"file_id": "<string>",
"object": "collection_file",
"added_at": 123,
"status": "pending",
"searchable_status": "pending",
"file": {
"id": "<string>",
"status": "pending",
"uri": "<string>",
"bytes": 123,
"created_at": 123,
"filename": "<string>",
"metadata": {},
"media_type": "video",
"media_info": {
"duration_seconds": 123,
"width": 123,
"height": 123,
"sample_rate": 123,
"channels": 123,
"bitrate": 123,
"format": "<string>",
"has_audio": true
},
"video_info": {
"duration_seconds": 123,
"height": 123,
"width": 123,
"format": "<string>",
"has_audio": true
},
"thumbnail_url": "<string>",
"source": "video",
"source_metadata": {
"source_type": "grain",
"grain_recording_id": "<string>",
"title": "<string>",
"start_datetime": "2023-11-07T05:31:56Z",
"end_datetime": "2023-11-07T05:31:56Z",
"duration_ms": 123,
"media_type": "audio",
"upstream_source": "aircall",
"grain_url": "<string>",
"thumbnail_url": "<string>",
"tags": [
"<string>"
],
"teams": [
{
"id": "<string>",
"name": "<string>"
}
],
"meeting_type": {
"id": "<string>",
"name": "<string>",
"scope": "<string>"
},
"participants": [
{
"id": "<string>",
"name": "<string>",
"email": "<string>",
"scope": "internal",
"confirmed_attendee": true,
"hs_contact_id": "<string>"
}
],
"highlights": [
{}
],
"ai_summary": {
"text": "<string>"
},
"ai_action_items": [
{
"status": "pending",
"timestamp_ms": 123,
"text": "<string>",
"assignee": {
"id": "<string>",
"name": "<string>",
"user_id": "<string>"
}
}
],
"ai_template_sections": [
{}
],
"calendar_event": {
"ical_uid": "<string>"
},
"hubspot": {
"hubspot_company_ids": [
"<string>"
],
"hubspot_deal_ids": [
"<string>"
]
}
}
},
"segmentation": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"segmentation_config": {
"strategy": "uniform",
"uniform_config": {
"window_seconds": 60.5,
"hop_seconds": 60.5
},
"shot_detector_config": {
"detector": "adaptive",
"threshold": 123,
"min_seconds": 300.3,
"max_seconds": 300.5,
"fill_gaps": true
},
"manual_config": {
"segments": [
{
"start_time": 123,
"end_time": 123
}
]
},
"narrative_config": {
"prompt": "<string>",
"strategy": "comprehensive",
"number_of_chapters": 2,
"min_chapters": 2,
"max_chapters": 2
},
"keyframe_config": {
"frames_per_segment": 4,
"max_width": 2232
},
"start_time_seconds": 1,
"end_time_seconds": 1
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the collection
The ID of the file
Response
File details within the collection
ID of the collection
ID of the file
Object type, always 'collection_file'
collection_file Unix timestamp in milliseconds when the file was added to the collection
Overall processing status of the file in this collection
pending, processing, completed, failed, not_applicable Indexing status of the file's search documents in this collection. Only present for media-descriptions, rich-transcripts, metadata, and entities collections. For entities collections it tracks entity indexing: file-level collections index one document per file, segment-level collections one per segment.
pending, processing, completed, failed The file object
Show child attributes
Show child attributes
Segmentation information for this file in the collection. Only present when the file has been segmented.
Show child attributes
Show child attributes