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:
- Read my saved topic list from the workspace file — [DO]
- For each topic, search the web for YouTube videos posted in the last 24 hours — [DO]
- 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]
- For each video, open the YouTube page and extract the title, channel name, and description — [DO]
- 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]
- Send all 3 videos to me in Telegram: the YouTube link (which auto-previews with thumbnail) followed by the 3-bullet summary — [DO]
- 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-dlptranscript extraction. Keeps things simpler and faster. - 8am cron trigger: Not implemented yet. Briefings are manual only (
/ytcommand). 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.jsinstead of the workshop's@anaisbetts/mcp-youtube, to get search capability (find videos by topic) rather than just transcript download from known URLs.