How bhancockio/adk-youtube-thumbnail-agent works
This is an ADK multi-agent YouTube thumbnail style-cloning and generation application. The root agent coordinates channel collection, reference-thumbnail analysis, style synthesis, prompt creation, and image generation; users can also request revisions that use the prior generated image. The graph includes README-documented stages and tree-supported analyzer components, but some internal analyzer wiring and callback registration are not shown in the sampled source, so uncertain connections are omitted.
Main entry points: agent.py Thumbnail Manager · scrape_channel.py Scrape Channel · analysis_process_agent.py Analysis Process · create_image.py Create or Edit Image
Components 22
Workflow Coordination
- Thumbnail Manager
youtube_thumbnail_agent/agent.py
Reference Analysis
- Channel Scraper
youtube_thumbnail_agent/sub_agents/thumbnail_scraper/agent.py - Scrape Channel
youtube_thumbnail_agent/sub_agents/thumbnail_scraper/tools/scrape_channel.py - Reference Images
youtube_thumbnail_agent/constants.py - Thumbnail Analyzer
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/agent.py - Analysis Loop
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/agent.py - Analysis Process
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/sub_agents/analysis_process_agent.py - Thumbnail Selector
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/sub_agents/thumbnail_selector_agent.py - Single Thumbnail Analysis
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/sub_agents/single_thumbnail_analyzer_agent.py - Load Thumbnail
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/tools/analyze_thumbnail.py - Save Analysis
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/sub_agents/save_analysis_agent.py - Analysis Storage Tool
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/tools/save_analysis.py - Style Guide
youtube_thumbnail_agent/sub_agents/thumbnail_analyzer_agent/sub_agents/style_guide_generator_agent.py
Prompt Design
- Prompt Generator
youtube_thumbnail_agent/sub_agents/prompt_generator/agent.py
Image Generation
- User Image Callback
youtube_thumbnail_agent/shared_lib/callbacks.py - User Assets
youtube_thumbnail_agent/constants.py - Image Generator
youtube_thumbnail_agent/sub_agents/generate_image_agent/agent.py - Create or Edit Image
youtube_thumbnail_agent/sub_agents/generate_image_agent/tools/create_image.py - Generated Thumbnails
youtube_thumbnail_agent/constants.py
Other components
- Creator
- YouTube Data API
- OpenAI Image API
Connections 26
- Creator → Thumbnail Manager: provides requests
- Thumbnail Manager → Creator: asks for details
- Thumbnail Manager → Channel Scraper: delegates collection
- Channel Scraper → Scrape Channel: invokes
- Scrape Channel → YouTube Data API: queries channel
- Scrape Channel → YouTube Data API: downloads thumbnails
- Scrape Channel → Reference Images: writes thumbnails
- Thumbnail Manager → Thumbnail Analyzer: delegates analysis
- Thumbnail Analyzer → Analysis Loop: runs iteratively
- Analysis Loop → Analysis Process: repeats
- Analysis Process → Thumbnail Selector: selects thumbnail
- Analysis Process → Single Thumbnail Analysis: runs analysis
- Single Thumbnail Analysis → Load Thumbnail: loads image
- Load Thumbnail → Reference Images: reads thumbnail
- Analysis Process → Save Analysis: saves result
- Save Analysis → Analysis Storage Tool: uses tool
- Thumbnail Analyzer → Style Guide: synthesizes analyses
- Thumbnail Manager → Prompt Generator: delegates prompting
- Prompt Generator → Creator: collects video details
- Thumbnail Manager → Image Generator: delegates generation
- Image Generator → Create or Edit Image: invokes
- User Image Callback → User Assets: saves uploaded images
- Create or Edit Image → User Assets: reads references
- Create or Edit Image → OpenAI Image API: generates or edits
- Create or Edit Image → Generated Thumbnails: saves output
- Thumbnail Manager → Creator: presents result