Mixpeek Logo

    Searchable Video Library

    Turn an unstructured video archive into a fully searchable library. Each video is decomposed into scenes with transcriptions, visual embeddings, and metadata. Users search by natural language and jump directly to the relevant moment in any video.

    video
    text
    audio
    Multi-Tier
    2.9K runs
    Deploy Recipe
    from mixpeek import Mixpeek
    client = Mixpeek(api_key="YOUR_API_KEY")
    # Create video library collection
    collection = client.collections.create(
    namespace_id="ns_your_namespace",
    name="video_library",
    extractors=["multimodal-extractor", "text-extractor"],
    params={"video_chunking": "scene-based"}
    )
    # Upload your video archive
    client.buckets.upload(
    bucket_id="bkt_videos",
    url="s3://your-bucket/video-archive/"
    )
    # Build a search retriever
    retriever = client.retrievers.create(
    namespace_id="ns_your_namespace",
    name="video_library_search",
    collection_ids=["col_video_library"],
    stages=[
    {"type": "feature_search", "top_k": 50},
    {"type": "rerank", "top_k": 10}
    ]
    )
    # Search for specific moments
    results = client.retrievers.execute(
    retriever_id=retriever["retriever_id"],
    query={"text": "product roadmap presentation Q3 goals"}
    )
    for doc in results["results"]:
    print(f"Video: {doc['root_object_id']}")
    print(f" Timestamp: {doc['start_time']:.1f}s - {doc['end_time']:.1f}s")
    print(f" Transcript: {doc['text'][:100]}...")

    Feature Extractors

    Retriever Stages

    rerank

    Rerank documents using cross-encoder models for accurate relevance

    sort

    Related Recipes & Resources

    Explore these related resources to deepen your understanding and discover more powerful features