def handler(event):
    mixpeek = Mixpeek("API_KEY")
    file_url = event.file_url(event['bucket'], event['key'])

    # process video into chunks
    processed_videos = mixpeek.tools.video.process(
        url=file_url,
        frame_interval=5,
        resolution=[720, 1280],
        return_base64=True
    )

    results = []

    for index, chunk in enumerate(processed_videos):
        print(f"embedding video chunk: {index}")
        # embed each chunk
        embed_response = mixpeek.embed.video(
            model_id="mixpeek/vuse-generic-v1",
            input=video['base64_string'],
            input_type="base64"
        )
        obj = {
            "embedding": embed_response['embedding'],
            "file_url": file_url,
            "metadata": {
                "time_start": chunk.start_time,
                "time_end": chunk.end_time,
                "duration": chunk.duration,
            }
        }
        results.append(obj)

    return results

Was this page helpful?