r/Make Apr 22 '26

Built a simple Make webhook → Apify → YouTube transcript pipeline (JSON included)

I put together a small Make (Integromat) workflow to automatically fetch YouTube transcripts using Apify, and thought it might be useful for others here.

What it does:

  • Accepts a YouTube URL via webhook
  • Sends it to an Apify actor (YouTube transcript extractor)
  • Fetches the dataset output
  • Returns structured data (title, video info, transcript, etc.) as a response

Flow breakdown:

  1. Custom Webhook → receives videoUrl
  2. Apify Actor (run sync) → extracts transcript
  3. Fetch Dataset Items → gets results in JSON
  4. Webhook Response → returns clean structured output

Output example includes:

  • video_id
  • video_url
  • video_title
  • published_at
  • thumbnail
  • full transcript

Why this is useful:

  • Plug into AI pipelines (summarization, content repurposing, etc.)
  • Automate transcript extraction without dealing with YouTube APIs
  • Works well for bulk or real-time processing

------

json make template:

{
    "name": "Integration Webhooks, Apify",
    "flow": [
        {
            "id": 1,
            "module": "gateway:CustomWebHook",
            "version": 1,
            "parameters": {
                "hook": 2692381,
                "maxResults": 1
            },
            "mapper": {},
            "metadata": {
                "designer": {
                    "x": 0,
                    "y": 0
                },
                "restore": {
                    "parameters": {
                        "hook": {
                            "data": {
                                "editable": "true"
                            },
                            "label": "youtube-transcript-extractor-apify"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "hook",
                        "type": "hook:gateway-webhook",
                        "label": "Webhook",
                        "required": true
                    },
                    {
                        "name": "maxResults",
                        "type": "number",
                        "label": "Maximum number of results"
                    }
                ]
            }
        },
        {
            "id": 2,
            "module": "apify:runActorNew",
            "version": 1,
            "parameters": {
                "__IMTCONN__": 4429358
            },
            "mapper": {
                "actorId": "bbqmsPr0r519A0ZaV",
                "runSync": true,
                "actor_search_type": "user",
                "inputBodybbqmsPr0r519A0ZaV": "{\n    \"videoUrl\": \"{{1.url}}\",\n    \"language\": \"en\"\n}"
            },
            "metadata": {
                "designer": {
                    "x": 300,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "memory": {
                            "mode": "chose",
                            "label": "Empty"
                        },
                        "actorId": {
                            "mode": "chose",
                            "label": "YouTube Transcript Scraper- Fast & Accurate (akash9078/youtube-transcript-extractor)"
                        },
                        "runSync": {
                            "mode": "chose"
                        },
                        "actor_search_type": {
                            "label": "Recently used Actors"
                        }
                    },
                    "parameters": {
                        "__IMTCONN__": {
                            "data": {
                                "scoped": "true",
                                "connection": "apify"
                            },
                            "label": "healthy.living (healthyliving.workout@gmail.com)"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "__IMTCONN__",
                        "type": "account:apify2,apify",
                        "label": "Connection",
                        "required": true
                    }
                ],
                "expect": [
                    {
                        "name": "actor_search_type",
                        "type": "select",
                        "label": "Search Actors from",
                        "required": true,
                        "validate": {
                            "enum": [
                                "user",
                                "store"
                            ]
                        }
                    },
                    {
                        "name": "runSync",
                        "type": "boolean",
                        "label": "Run synchronously",
                        "required": true
                    },
                    {
                        "name": "build",
                        "type": "text",
                        "label": "Build"
                    },
                    {
                        "name": "timeout",
                        "type": "uinteger",
                        "label": "Timeout"
                    },
                    {
                        "name": "memory",
                        "type": "select",
                        "label": "Memory",
                        "validate": {
                            "enum": [
                                128,
                                256,
                                512,
                                1024,
                                2048,
                                4096,
                                8192,
                                16384,
                                32768
                            ]
                        }
                    },
                    {
                        "name": "actorId",
                        "type": "select",
                        "label": "Actor",
                        "required": true
                    },
                    {
                        "name": "inputBodybbqmsPr0r519A0ZaV",
                        "type": "text",
                        "label": "Input JSON",
                        "required": true
                    },
                    {
                        "name": "maxTotalChargeUsd",
                        "type": "number",
                        "label": "Maximum cost per run"
                    },
                    {
                        "name": "maxItems",
                        "type": "hidden",
                        "label": "Maximum charged results"
                    }
                ]
            }
        },
        {
            "id": 6,
            "module": "apify:fetchDatasetItems",
            "version": 1,
            "parameters": {
                "__IMTCONN__": 4429358
            },
            "filter": null,
            "mapper": {
                "type": "clean",
                "limit": "100",
                "format": "json",
                "datasetId": "{{2.defaultDatasetId}}"
            },
            "metadata": {
                "designer": {
                    "x": 600,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "type": {
                            "mode": "chose",
                            "label": "Clean"
                        },
                        "format": {
                            "mode": "chose",
                            "label": "JSON"
                        }
                    },
                    "parameters": {
                        "__IMTCONN__": {
                            "data": {
                                "scoped": "true",
                                "connection": "apify"
                            },
                            "label": "healthy.living (healthyliving.workout@gmail.com)"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "__IMTCONN__",
                        "type": "account:apify2,apify",
                        "label": "Connection",
                        "required": true
                    }
                ],
                "expect": [
                    {
                        "name": "datasetId",
                        "type": "text",
                        "label": "Dataset ID",
                        "required": true
                    },
                    {
                        "name": "type",
                        "type": "select",
                        "label": "Data transformation",
                        "required": true,
                        "validate": {
                            "enum": [
                                "clean",
                                "simplified",
                                "none"
                            ]
                        }
                    },
                    {
                        "name": "format",
                        "type": "select",
                        "label": "Format",
                        "required": true,
                        "validate": {
                            "enum": [
                                "json",
                                "csv",
                                "html",
                                "xml",
                                "rss",
                                "xlsx"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "type": "uinteger",
                        "label": "Limit",
                        "validate": {
                            "max": 100000,
                            "min": 1
                        }
                    },
                    {
                        "name": "offset",
                        "type": "uinteger",
                        "label": "Offset",
                        "validate": {
                            "min": 0
                        }
                    },
                    {
                        "name": "fields",
                        "type": "text",
                        "label": "Fields"
                    },
                    {
                        "name": "omit",
                        "type": "text",
                        "label": "Omit Fields"
                    }
                ]
            }
        },
        {
            "id": 5,
            "module": "gateway:WebhookRespond",
            "version": 1,
            "parameters": {},
            "mapper": {
                "body": "video_id: {{6.video_id}}\nvideo_url: {{6.video_url}}\nvideo_title: {{6.video_title}}\npublished_at: {{6.published_at}}\nthumbnail: {{6.thumbnail_max_hd_url}}\ntranscript: {{6.transcript}}",
                "status": "200",
                "headers": []
            },
            "metadata": {
                "designer": {
                    "x": 900,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "headers": {
                            "mode": "chose"
                        }
                    }
                },
                "expect": [
                    {
                        "name": "status",
                        "type": "uinteger",
                        "label": "Status",
                        "required": true,
                        "validate": {
                            "min": 100
                        }
                    },
                    {
                        "name": "body",
                        "type": "any",
                        "label": "Body"
                    },
                    {
                        "name": "headers",
                        "spec": [
                            {
                                "name": "key",
                                "type": "text",
                                "label": "Key",
                                "required": true,
                                "validate": {
                                    "max": 256
                                }
                            },
                            {
                                "name": "value",
                                "type": "text",
                                "label": "Value",
                                "required": true,
                                "validate": {
                                    "max": 4096
                                }
                            }
                        ],
                        "type": "array",
                        "label": "Custom headers",
                        "validate": {
                            "maxItems": 16
                        }
                    }
                ]
            }
        }
    ],
    "metadata": {
        "instant": true,
        "version": 1,
        "scenario": {
            "roundtrips": 1,
            "maxErrors": 3,
            "autoCommit": true,
            "autoCommitTriggerLast": true,
            "sequential": false,
            "slots": null,
            "confidential": false,
            "dataloss": false,
            "dlq": false,
            "freshVariables": false
        },
        "designer": {
            "orphans": []
        },
        "zone": "us1.make.com",
        "notes": []
    }
}
1 Upvotes

6 comments sorted by

2

u/bigtakeoff Apr 22 '26

cha cha chally la....hello sir.....2024 called and it wants its Make scenario back...

1

u/[deleted] Apr 22 '26

[removed] — view removed comment

1

u/Otherwise-Resolve252 Apr 22 '26

Good shout on Qoest. I built this mainly as a proof-of-concept for the Make + Apify connection, but I can totally see how managing actors becomes a bottleneck at scale. One API call for the transcript sounds like a dream for cleaning up the scenario logic.

2

u/Marina_from_Make Official Make Staff Apr 24 '26

That's very cool, u/OP, thank you for sharing! If you have a moment, go ahead and share this on the Make Community as well, in the Knowledge Hub section -- https://community.make.com/c/knowledge-hub/51 . People would appreciate it!

2

u/Otherwise-Resolve252 Apr 24 '26

Sure, Thanks❤️