Effortlessly Extract Video Frames with lucataco/frame-extractor Actions

24 Apr 2025
Effortlessly Extract Video Frames with lucataco/frame-extractor Actions

In today's digital landscape, video content is more prevalent than ever. Whether you're creating thumbnails for video uploads, generating before-and-after comparisons, or extracting key frames for analysis, having a reliable way to extract video frames is essential. The lucataco/frame-extractor offers a powerful Cognitive Action that allows developers to easily extract frames from video files, enhancing their applications with minimal effort.

Prerequisites

To get started with the Cognitive Actions from lucataco/frame-extractor, you will need an API key for the Cognitive Actions platform. Authentication typically involves passing this API key in the headers of your requests. Ensure you have the appropriate permissions and access set up in your development environment.

Cognitive Actions Overview

Extract Video Frame

The Extract Video Frame action enables you to extract either the first or last frame from a video file as a high-quality image. This action is particularly useful for generating thumbnails or performing visual comparisons.

Input

The input schema for this action consists of the following fields:

  • video (required): A valid URI that points to the input video file.
  • returnFirstFrame (optional): A boolean flag to indicate whether to return the first frame instead of the last frame. Defaults to false.

Example Input:

{
  "video": "https://replicate.delivery/pbxt/MhRdvvOM6hd7O9J0Sazb32TBwSfvD4GDCI5KaEQcR3sdk9bF/replicate-prediction-h6dtd6vk6drma0cn8dy91bxkzm.mp4",
  "returnFirstFrame": false
}

Output

The action typically returns a URL pointing to the extracted frame image. Here’s an example of an output you can expect:

Example Output:

https://assets.cognitiveactions.com/invocations/823ad6c0-d355-4768-8f36-301a4496d9b6/1deef6a6-2661-4c70-9ee1-6c839c68bdb0.jpg

Conceptual Usage Example (Python)

Here’s how you might call the Extract Video Frame action using Python:

import requests
import json

# Replace with your Cognitive Actions API key and endpoint
COGNITIVE_ACTIONS_API_KEY = "YOUR_COGNITIVE_ACTIONS_API_KEY"
COGNITIVE_ACTIONS_EXECUTE_URL = "https://api.cognitiveactions.com/actions/execute"  # Hypothetical endpoint

action_id = "8ea97aaa-ddd5-4fbf-a6c6-8a92355ceac5"  # Action ID for Extract Video Frame

# Construct the input payload based on the action's requirements
payload = {
    "video": "https://replicate.delivery/pbxt/MhRdvvOM6hd7O9J0Sazb32TBwSfvD4GDCI5KaEQcR3sdk9bF/replicate-prediction-h6dtd6vk6drma0cn8dy91bxkzm.mp4",
    "returnFirstFrame": False
}

headers = {
    "Authorization": f"Bearer {COGNITIVE_ACTIONS_API_KEY}",
    "Content-Type": "application/json"
}

try:
    response = requests.post(
        COGNITIVE_ACTIONS_EXECUTE_URL,
        headers=headers,
        json={"action_id": action_id, "inputs": payload}  # Hypothetical structure
    )
    response.raise_for_status()  # Raise an exception for bad status codes (4xx or 5xx)

    result = response.json()
    print("Action executed successfully:")
    print(json.dumps(result, indent=2))

except requests.exceptions.RequestException as e:
    print(f"Error executing action {action_id}: {e}")
    if e.response is not None:
        print(f"Response status: {e.response.status_code}")
        try:
            print(f"Response body: {e.response.json()}")
        except json.JSONDecodeError:
            print(f"Response body: {e.response.text}")

In this code snippet:

  • You replace the COGNITIVE_ACTIONS_API_KEY with your actual API key.
  • The action_id is set to the ID for the Extract Video Frame action.
  • The payload is structured according to the action's input schema. The video URL and the optional flag for returning the first frame are included.
  • The response is processed, displaying the extracted frame URL or any errors encountered.

Conclusion

The lucataco/frame-extractor Cognitive Action for extracting video frames simplifies the process of obtaining high-quality images from video files. Whether for thumbnails or analysis, integrating this action into your applications can significantly enhance user experience and functionality.

Explore this action further, experiment with various video inputs, and think about how you can leverage it in your next project!