All guides

Developer guide

How can I extract hooks and calls to action from short-form videos?

Ask mamitsu what a short video opens with and what it asks viewers to do. You get the opening hook and every call to action as JSON, from what the video says and shows.

Start with a video

Ask what the video opens with and what it asks for

The hook is the first line or image a viewer meets, and calls to action are spread across the video: said out loud, written on screen or tucked into the caption. mamitsu watches the video, listens to the audio and reads the caption, so it finds them wherever they are.

Send a public short from TikTok, Instagram, YouTube or X with a prompt that asks for the opening hook and each call to action.

Request
: "${XTRAKT_USER_API_KEY:?Set XTRAKT_USER_API_KEY to your mamitsu API key}"
curl https://usemamitsu.com/api/v1/extract \
  -H "Authorization: Bearer $XTRAKT_USER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://www.youtube.com/shorts/PJgY3gVIJeE",
  "prompt": "What does this short video open with to grab attention, and which calls to action does it contain? Give the opening hook as it is said or shown, and each call to action with what it asks the viewer to do."
}'

A real example

The hook and four calls to action from a YouTube Short

This is the full response for a YouTube Short about growing an email list. The opening hook comes back word for word: “What if you could keep growing your audience, even if TikTok disappeared tomorrow?”

mamitsu also returns four calls to action, from downloading a free guide to subscribing on YouTube. The request has no schema, so mamitsu named the fields itself.

Response
{
  "extraction_id": "ext_9d7c1ba1-ab4e-418e-888a-761cd440d201",
  "data": {
    "opening_hook": "What if you could keep growing your audience, even if TikTok disappeared tomorrow?",
    "calls_to_action": [
      {
        "action": "Download my free guide",
        "context": "linked in my bio"
      },
      {
        "action": "Check out the video",
        "context": "linked here for 17 more tips"
      },
      {
        "action": "Watch Full Video on YouTube",
        "context": "@HubSpotMarketing"
      },
      {
        "action": "Subscribe",
        "context": "on YouTube"
      }
    ]
  },
  "source": {
    "provider": "youtube",
    "url": "https://www.youtube.com/shorts/PJgY3gVIJeE"
  }
}

Fixed fields

Add a schema to compare hundreds of videos

When you collect hooks from many videos, a schema gives every result the same fields. This one also asks what form the hook takes and where each call to action appears, which makes the results easy to group and filter.

Run on the same Short, it labels the hook a question and notes that two calls to action are spoken and one is written on screen.

Store the results with the video links and you have a swipe file of openings and asks from the creators you follow, ready for writers and editors to learn from.

Request with a schema
: "${XTRAKT_USER_API_KEY:?Set XTRAKT_USER_API_KEY to your mamitsu API key}"
curl https://usemamitsu.com/api/v1/extract \
  -H "Authorization: Bearer $XTRAKT_USER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://www.youtube.com/shorts/PJgY3gVIJeE",
  "prompt": "What does this short video open with to grab attention, and which calls to action does it contain? Give the opening hook as it is said or shown, and each call to action with what it asks the viewer to do.",
  "schema": {
    "type": "object",
    "properties": {
      "opening_hook": {
        "type": "string"
      },
      "hook_format": {
        "type": "string",
        "enum": [
          "question",
          "bold claim",
          "promise",
          "story",
          "demonstration",
          "other"
        ]
      },
      "calls_to_action": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "action": {
              "type": "string"
            },
            "where": {
              "type": "string",
              "enum": [
                "spoken",
                "on screen",
                "caption"
              ]
            }
          },
          "required": [
            "action",
            "where"
          ]
        }
      }
    },
    "required": [
      "opening_hook",
      "hook_format",
      "calls_to_action"
    ]
  }
}'
Response
{
  "extraction_id": "ext_6cdc86e5-fbda-48de-94dd-c2a524de9f49",
  "data": {
    "opening_hook": "What if you could keep growing your audience even if TikTok disappeared tomorrow?",
    "hook_format": "question",
    "calls_to_action": [
      {
        "action": "download my free guide linked in my bio",
        "where": "spoken"
      },
      {
        "action": "check out the video linked here for 17 more tips",
        "where": "spoken"
      },
      {
        "action": "Watch Full Video on YouTube @HubSpotMarketing",
        "where": "on screen"
      }
    ]
  },
  "source": {
    "provider": "youtube",
    "url": "https://www.youtube.com/shorts/PJgY3gVIJeE"
  }
}

From an AI client

Study a creator with your agent

Connect an AI client to the mamitsu MCP server and share a few links. The agent asks mamitsu for the hook and calls to action of each video, then compares them for you in the conversation.

Connect your agent to mamitsu

How can I extract hooks and calls to action from short-form videos? · mamitsu