Documentation Index
Fetch the complete documentation index at: https://docs.vidnavigator.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
VidNavigator’s semantic search allows you to find relevant information within your video content without having to manually sift through hours of footage. You can search across a library of online videos (like YouTube) or your own uploaded files.
Prerequisites
- A valid VidNavigator API key.
- The Python or JavaScript SDK installed in your project.
Billing
Semantic search consumes search_request usage. 1 credit covers 10 searches across YouTube or your own uploaded files.
Searching Videos
Searching Across Online Videos
This example demonstrates how to search for videos on YouTube that match a specific query.
Using the Python SDK
from vidnavigator import VidNavigatorClient, VidNavigatorError
client = VidNavigatorClient()
try:
results = client.search_videos(
query="What are the best practices for React development?",
focus="relevance",
start_year=2022
)
print(f"Found {len(results.data['results'])} relevant videos:")
for video in results.data['results']:
print(f"- {video['title']} ({video['url']})")
except VidNavigatorError as e:
print(f"An error occurred: {e.message}")
Using the JavaScript SDK
const { VidNavigatorClient, VidNavigatorError } = require('vidnavigator');
const client = new VidNavigatorClient({
apiKey: process.env.VIDNAVIGATOR_API_KEY,
});
async function searchOnlineVideos() {
try {
const results = await client.searchVideos({
query: "What are the best practices for React development?",
focus: "relevance",
start_year: 2022
});
console.log(`Found ${results.data.results.length} relevant videos:`);
results.data.results.forEach(video => {
console.log(`- ${video.title} (${video.url})`);
});
} catch (error) {
if (error instanceof VidNavigatorError) {
console.error(`An error occurred: ${error.message}`);
} else {
console.error("An unexpected error occurred:", error);
}
}
}
searchOnlineVideos();
Searching Your Uploaded Files
This example demonstrates how to search across the files you have uploaded to VidNavigator. Each result includes namespace_ids and namespaces showing which namespaces the file belongs to.
Using the Python SDK
from vidnavigator import VidNavigatorClient, VidNavigatorError
client = VidNavigatorClient()
try:
results = client.search_files(query="Customer feedback on pricing")
print(f"Found {len(results.data['results'])} relevant files:")
for file_result in results.data['results']:
ns_names = [ns['name'] for ns in file_result.get('namespaces', [])]
print(f"- {file_result['name']} (File ID: {file_result['id']}, Namespaces: {ns_names})")
except VidNavigatorError as e:
print(f"An error occurred: {e.message}")
Using the JavaScript SDK
const { VidNavigatorClient, VidNavigatorError } = require('vidnavigator');
const client = new VidNavigatorClient({
apiKey: process.env.VIDNAVIGATOR_API_KEY,
});
async function searchUploadedFiles() {
try {
const results = await client.searchFiles({ query: "Customer feedback on pricing" });
console.log(`Found ${results.results.length} relevant files:`);
results.results.forEach(fileResult => {
const nsNames = (fileResult.namespaces || []).map(ns => ns.name);
console.log(`- ${fileResult.name} (File ID: ${fileResult.id}, Namespaces: ${nsNames})`);
});
} catch (error) {
if (error instanceof VidNavigatorError) {
console.error(`An error occurred: ${error.message}`);
} else {
console.error("An unexpected error occurred:", error);
}
}
}
searchUploadedFiles();
Filtering File Search by Namespace
You can restrict search to specific namespaces by passing namespace_ids. If omitted, all namespaces are searched.
results = client.search_files(
query="Customer feedback on pricing",
namespace_ids=["64a1b2c3d4e5f6789abc0002"]
)
const results = await client.searchFiles({
query: "Customer feedback on pricing",
namespace_ids: ["64a1b2c3d4e5f6789abc0002"]
});