Skip to content

Workflow Design Document — Day 1 Submission

Agent: Nova — Morning YouTube Briefing

I want my agent to handle: finding me the best YouTube videos on my chosen topics every morning so I don't have to search manually.

Task Name: Morning YouTube Briefing

Trigger: Time-based — every morning at 8am. Can also be triggered manually by typing /yt in Telegram.

Input: A list of topics I configure via Telegram (e.g. /topics add AI agents). The agent saves these in its workspace. I can view, add, or remove topics at any time by sending /topics, /topics add [topic], or /topics remove [topic].

Steps:

  1. Read my saved topic list from the workspace file — [DO]
  2. For each topic, search the web for YouTube videos posted in the last 24 hours — [DO]
  3. From all results, filter to YouTube links only and select the 3 most relevant videos based on title and description match to my topics — [DO]
  4. For each video, open the YouTube page and extract the title, channel name, and description — [DO]
  5. For each video, write a 3-bullet summary from the description: what it covers, the key insight, and why it matters to my topics — [DO]
  6. Send all 3 videos to me in Telegram: the YouTube link (which auto-previews with thumbnail) followed by the 3-bullet summary — [DO]
  7. If I reply with a video number (e.g. "2"), fetch the full transcript or captions for that video and send me a detailed summary with key quotes — [DECIDE]

Output: A Telegram message every morning at 8am containing 3 YouTube links with thumbnail previews and a 3-bullet summary each (~500 words total). Optionally, a deeper transcript-based summary if I request one by replying with the video number.

Out of scope: Downloading or storing video files. Translating non-English content. Commenting, subscribing, or interacting with YouTube on my behalf. More than 3 videos per briefing unless manually triggered.


Implementation notes (added after build):

  • Step 7 [DECIDE]: Decided against transcript fetching. Deep dives use the video metadata and description already retrieved — no yt-dlp transcript extraction. Keeps things simpler and faster.
  • 8am cron trigger: Not implemented yet. Briefings are manual only (/yt command). The cron system works for simple tasks but scheduling a multi-step delegation chain reliably needs more testing.
  • MCP tool: Used a custom youtube_fetch.py + youtube-mcp-server.js instead of the workshop's @anaisbetts/mcp-youtube, to get search capability (find videos by topic) rather than just transcript download from known URLs.