Skip to content
videodb
VideoDB Documentation
  • Pages
    • Welcome to VideoDB Docs
    • Quick Start Guide
      • Video Indexing Guide
      • Semantic Search
      • Collections
      • icon picker
        Public Collections
      • Callback Details
      • Ref: Subtitle Styles
      • Language Support
      • Guide: Subtitles
      • How Accurate is Your Search?
    • Visual Search and Indexing
      • Scene Extraction Algorithms
      • Custom Annotations
      • Scene-Level Metadata: Smarter Video Search & Retrieval
      • Advanced Visual Search Pipelines
      • Playground for Scene Extractions
      • Deep Dive into Prompt Engineering : Mastering Visual Indexing
      • How VideoDB Solves Complex Visual Analysis Tasks
      • Multimodal Search: Quickstart
      • Conference Slide Scraper with VideoDB
    • Examples and Tutorials
      • Dubbing - Replace Soundtrack with New Audio
      • VideoDB: Adding AI Generated voiceovers to silent footage
      • Beep curse words in real-time
      • Remove Unwanted Content from videos
      • Instant Clips of Your Favorite Characters
      • Insert Dynamic Ads in real-time
      • Adding Brand Elements with VideoDB
      • Elevating Trailers with Automated Narration
      • Add Intro/Outro to Videos
      • Audio overlay + Video + Timeline
      • Building Dynamic Video Streams with VideoDB: Integrating Custom Data and APIs
      • AI Generated Ad Films for Product Videography
      • Fun with Keyword Search
      • Overlay a Word-Counter on Video Stream
      • Generate Automated Video Outputs with Text Prompts | VideoDB
      • VideoDB x TwelveLabs: Real-Time Video Understanding
      • Multimodal Search
      • How I Built a CRM-integrated Sales Assistant Agent in 1 Hour
      • Make Your Video Sound Studio Quality with Voice Cloning
      • Automated Traffic Violation Reporter
    • Live Video→ Instant Action
    • Generative Media Quickstart
      • Generative Media Pricing
    • Video Editing Automation
      • Fit & Position: Aspect Ratio Control
      • Trimming vs Timing: Two Independent Timelines
      • Advanced Clip Control: The Composition Layer
      • Caption & Subtitles: Auto-Generated Speech Synchronization
      • Notebooks
    • Transcoding Quickstart
    • director-light
      Director - Video Agent Framework
      • Agent Creation Playbook
      • Setup Director Locally
    • Workflows and Integrations
      • zapier
        Zapier Integration
        • Auto-Dub Videos & Save to Google Drive
        • Create & Add Intelligent Video Highlights to Notion
        • Create GenAI Video Engine - Notion Ideas to Youtube
        • Automatically Detect Profanity in Videos with AI - Update on Slack
        • Generate and Store YouTube Video Summaries in Notion
        • Automate Subtitle Generation for Video Libraries
        • Solve customers queries with Video Answers
      • n8n
        N8N Workflows
        • AI-Powered Meeting Intelligence: Recording to Insights Automation
        • AI Powered Dubbing Workflow for Video Content
        • Automate Subtitle Generation for Video Libraries
        • Automate Interview Evaluations with AI
        • Turn Meeting Recordings into Actionable Summaries
        • Auto-Sync Sales Calls to HubSpot CRM with AI
        • Instant Notion Summaries for Your Youtube Playlist
    • Meeting Recording SDK
    • github
      Open Source
      • llama
        LlamaIndex VideoDB Retriever
      • PromptClip: Use Power of LLM to Create Clips
      • StreamRAG: Connect ChatGPT to VideoDB
    • mcp
      VideoDB MCP Server
    • videodb
      Give your AI, Eyes and Ears
      • Building Infrastructure that “Sees” and “Edits”
      • Agents with Video Experience
      • From MP3/MP4 to the Future with VideoDB
      • Dynamic Video Streams
      • Why do we need a Video Database Now?
      • What's a Video Database ?
      • Enhancing AI-Driven Multimedia Applications
      • Beyond Traditional Video Infrastructure
    • Customer Love
    • Join us
      • videodb
        Internship: Build the Future of AI-Powered Video Infrastructure
      • Ashutosh Trivedi
        • Playlists
        • Talks - Solving Logical Puzzles with Natural Language Processing - PyCon India 2015
      • Ashish
      • Shivani Desai
      • Gaurav Tyagi
      • Rohit Garg
      • Edge of Knowledge
        • Language Models to World Models: The Next Frontier in AI
        • Society of Machines
          • Society of Machines
          • Autonomy - Do we have the choice?
          • Emergence - An Intelligence of the collective
        • Building Intelligent Machines
          • Part 1 - Define Intelligence
          • Part 2 - Observe and Respond
          • Part 3 - Training a Model
      • Updates
        • VideoDB Acquires Devzery: Expanding Our AI Infra Stack with Developer-First Testing Automation

Public Collections

Public Collections allow you to share a collection of media (videos, audios, images) and intelligence with anyone. When a collection is public:
Anyone with the collection ID can access (read-only) the media within that collection.
Anyone can list and use the indexes of this collection and access the scene descriptions.
By default, all new collections are private unless explicitly made public.

1. Creating a New Public Collection

When you create a new collection using create_collection function, you can mark it public by setting the is_public parameter to True. This makes the collection immediately accessible to other users (read-only) by sharing the collection ID with them.
public_collection = conn.create_collection(
name="Sample Collection",
description="Sample Collection Description",
is_public=True
)

print(public_collection.is_public) # Should print True
Parameters:
name: (Required) A string specifying the collection’s name.
description: (Required) A string describing the collection.
is_public: (Optional, boolean) Defaults to False. Set to True to make the collection public.

2. Changing Collection Visibility

You can always toggle visibility of any existing collection. Use make_public() to make any collection public, or make_public() to switch it back to your private collection.
# Make collection private
public_collection.make_private()
print(public_collection.is_public) # Should print False

# Make collection public again
public_collection.make_public()
print(public_collection.is_public) # Should print True

3. Accessing a Public Collection

Any user can access a public collection using its collection ID. Once you have the collection object, you can retrieve videos, audios, or images within it.
# Replace with the actual public collection ID
collection = conn.get_collection("PUBLIC_COLLECTION_ID")

# Retrieve all videos
videos = collection.get_videos()
video = collection.get_video("VIDEO_ID_OF_PUBLIC_COLLECTION")

# Retrieve all audios
audios = collection.get_audios()
audio = collection.get_audio("AUDIO_ID_OF_PUBLIC_COLLECTION")

# Retrieve all images
images = collection.get_images()
image = collection.get_image("IMAGE_ID_OF_PUBLIC_COLLECTION")


Sample Code:
# VideoDB's OCR Benchmark Public Collection
collection = conn.get_collection("c-c0a2c223-e377-4625-94bf-910501c2a31c")

videos = collection.list_videos()

#Stock Market Ticker 01
video = collection.get_video("m-z-0194c27c-f30c-7803-b2ca-8f1026c940a2")

4. Working with Scene Collections and Scene Indexes (Videos)

You can list and retrieve scene collections and scene indexes for a public video.
public_collection = conn.get_collection("PUBLIC_COLLECTION_ID")
video = public_collection.get_video("VIDEO_ID")

# List and retrieve scene collections
scene_collections = video.list_scene_collection()
scene_collection = video.get_scene_collection(
scene_collections[0].get("scene_collection_id")
)

# List and retrieve scene indexes
scene_indexes = video.list_scene_index()
scene_index = video.get_scene_index(scene_indexes[0].get("scene_index_id"))

Sample Code:
# VideoDB's OCR Benchmark Public Collection
collection = conn.get_collection("c-c0a2c223-e377-4625-94bf-910501c2a31c")

# Stock Market Ticker 01
video = collection.get_video("m-z-0194c27c-f30c-7803-b2ca-8f1026c940a2")

scene_collections = video.list_scene_collection()

scene_collection = video.get_scene_collection(
scene_collections[0].get("scene_collection_id")
)

Upcoming Updates:

Copy function to copy the whole collection with it’s indexes.
Search using existing spoken and visual indexes on public collections.
Get transcription of spoken indexed videos.

 
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.