From an hour long video, want to create a fun compilation of every moment Mark Zuckerberg says ‘metaverse’?
Load content from console.videodb.io?
Loading external content may reveal information to 3rd parties.
Learn more Allow 💬 Overview
In this tutorial, let’s explore the powerful functionality of Keyword Search in VideoDB. This feature enables users to efficiently locate any keyword or phrase within their video assets, streamlining the process of content discovery.
Setup
📦 Installing packages
🔑 API Keys
Before proceeding, ensure access to Get your API key from . ( Free for first 50 uploads, No credit card required ) 🎉 import videodb
import os
from getpass import getpass
# Prompt user for API key securely
api_key = getpass("Please enter your VideoDB API Key: ")
os.environ["VIDEO_DB_API_KEY"] = api_key
Steps
🌐 Step 1: Connect to VideoDB
Begin by establishing a connection to VideoDB using your API key
from videodb import connect
conn = connect()
coll = conn.get_collection()
🎥 Step 2: Upload Video
Upload the video to your VideoDB collection. You can upload the video asset from your local device or from a YouTube URL to upload the video from its source. This works as the base video for all the Keyword Search queries.
video = coll.upload(url="https://www.youtube.com/watch?v=Uvufun6xer8")
video.play()
You can upload from your local file system too by passing file_path in upload()
For this tutorial, we’ll run a Keyword Search on the following video:
🔊 Step 3: Index Spoken Words
Index the spoken words in your video to enable accurate keyword search.
video.index_spoken_words()
🔎 Step 4: Search for any keyword
Utilize the keyword search by using video.search() method with following parameters.
pass search query in query parameter pass SearchType.keyword in search_type
Note: You will need to import SearchType first to enable this function
from videodb import SearchType
results = video.search(query='metaverse', search_type=SearchType.keyword)
👀 Step 5: Preview and Share
Preview your video with a compilation of all the clips matching your search query. You can access the stream link alongside the preview to share the Keyword Search result with others.
🔎 Bonus : Refining Keyword Search results by adding padding.
Some keyword search results/ compilations may appear slightly choppy, or the cuts may feel abrupt. We can solve this issue by using VideoDB’s padding controls. Here’s how it works:
The resulting shots can be made smoother by including a little more context from before and after the matching timestamps. That's exactly what padding controls enable:
Using the Editor SDK's Track and Clip pattern, we can create a timeline with padding:
1. Create a timeline and track using Timeline() and Track()
2. Create a VideoAsset with id and start parameters (where start is adjusted by subtracting padding)
3. Wrap each asset in a `Clip` with the appropriate duration (adding padding on both ends)
4. Add clips to the track sequentially using track.add_clip(start_time, clip)
from videodb import play_stream
from videodb.editor import Timeline, Track, Clip, VideoAsset
timeline = Timeline(conn)
# Add padding for smoother cuts
padding = 0.4
# Create main track
track = Track()
seeker = 0
# Compile Video from search results
for shot in results.shots:
start_with_padding = max(0, shot.start - padding)
duration = (shot.end + padding) - start_with_padding
asset = VideoAsset(id=shot.video_id, start=start_with_padding)
clip = Clip(asset=asset, duration=duration)
track.add_clip(seeker, clip)
seeker += duration
timeline.add_track(track)
stream_url = timeline.generate_stream()
play_stream(stream_url)
▶️ Here’s the result for the same video, but improved using padding control.
🎉 Conclusion
Keyword Search in VideoDB empowers users to extract valuable insights from their video assets with ease. For more information and advanced features, explore the and join the VideoDB community on or for support and collaboration. More Examples
Checkout these fun experiments with Keyword search 👇
So basically it’s “basically”
2. The untold story of “generative”AI