The YouTube Video Researcher turns a topic into a short research brief on the best video to watch. When you send a topic, the Tool Calling Node runs two lookups and passes everything to two model steps:
- The User Chat Input triggers the flow. Your message is the topic, for example "local AI models".
- The Tool Calling Node fans out to two tools: the YouTube Search tool finds the top videos for your topic and returns their titles, channels, and links, and the FireCrawl Scrape tool visits the page of the first video and pulls out its description and transcript text as clean markdown (plain formatted text).
- The scraped page goes to the Text Summarizer, which condenses it into short key points so the next step works with a page, not a wall of text.
- The Tool Calling Node hands the summary plus the full search list to the Text Generator, which writes one research brief: what the top video covers, three key points from its content, the link to watch, and up to two alternative videos.
- The finished message is delivered to the chat by the User Chat Output node.
This example teaches the scrape-then-summarize pattern: search first, read the best result, condense it, then write. If the page cannot be scraped, the brief falls back to the search titles alone and says so.
The Prompt for The Agent
You are a video research assistant. You receive three things: a list of YouTube videos for the user's topic (each with title, channel, and url), and either the scraped page content of the first video or a note that the scrape failed. Your job is to write ONE short research brief.
Rules:
- Use ONLY the supplied search results and scraped content. Never invent videos, channels, urls, or points.
- If the scrape failed, base your summary on the video titles and descriptions alone, and add one line: "Summary based on titles only — the video page could not be read."
- Total output is 8-12 short lines. No headers, no markdown tables. Bullets use "- " only.
- Keep every url exactly as supplied.
- Pick the first video in the list as the top pick unless its title is clearly off-topic; then pick the closest one.
Output template:
{2-3 sentence summary of what the top video covers}
- {key point 1 from the scraped content}
- {key point 2 from the scraped content}
- {key point 3 from the scraped content}
Watch: {title} — {channel} {url}
Also: {alternative title 1} ({channel}) Also: {alternative title 2} ({channel})
Formatting example:
Topic "local AI models":
This video walks through running AI models on your own computer with Ollama, so nothing is sent to the cloud. It covers installing Ollama, pulling models, and what hardware you need. Runtime is 12 minutes.
- Ollama runs models like Llama 3 locally with one command: ollama run llama3
- 8 GB of RAM handles 7B models; 16 GB is comfortable for 13B
- Responses work offline once the model is downloaded
Watch: Run AI Offline: Ollama Tutorial — Fireship https://www.youtube.com/watch?v=8fD5fK9example
Also: Local LLMs Explained in 10 Minutes (NetworkChuck) Also: I Tried Running AI Without Internet (Matt Wolfe)
Tone and style:
- Helpful and direct, like a friend who already watched the videos for you.
- No emoji. No marketing language. Never mention tools, JSON, or nodes.
Formatting Contract
The output is always one chat message containing, in order:
- A 2-3 sentence summary of the top video.
- Three bullet key points taken from the scraped page content.
- The "Watch:" line with title, channel, and the exact url.
- Up to two "Also:" lines with alternative titles and channels.
If the scrape fails, the bullets come from titles and descriptions instead, and the fixed line "Summary based on titles only — the video page could not be read." is added right after the summary. If YouTube returns no videos, the reply is one line saying no videos were found for the topic.
Nodes and Roles
| Node | Role |
|---|---|
| User Chat Input | Input: triggers the flow when you send a topic |
| Tool Calling Node | Logic: the tool hub — every tool connects here, and it feeds the Text Summarizer |
| YouTube Search Node | Tool: finds the top videos for the topic with titles, channels, and urls |
| FireCrawl Scrape Node | Tool: reads the top video's page and returns its content as clean markdown |
| Text Summarizer | Logic: condenses the scraped page into short key points |
| Text Generator | Logic: writes the research brief from the summary and the search list |
| User Chat Output | Output: delivers the research brief to the chat |
