Know if a YouTube video is worth your time—before you watch it.
You click on a video. 20 minutes later, you realize it was clickbait, poorly explained, or just not what you needed. Now multiply that by every video in your recommended feed.
YouTube doesn't tell you if a video will actually be useful to you. Titles lie. Thumbnails exaggerate. Comments are hit or miss. You only find out a video wasn't worth it after you've watched it.
VidPulse fixes this.
It uses AI (via OpenRouter) to actually watch videos for you (via multimodal analysis—not just reading titles or thumbnails) and tells you:
- Is this worth your time?
- Does it match your interests?
- What are the key points so you can skip to what matters?
Over time, it learns what you like and dislike, so recommendations get more personal. It can even block time-wasting content during focus hours.
Stop wasting time on videos that disappoint. Let AI be your filter.
- Watches videos for you — AI analyzes actual video content, not just metadata
- Scores on 5 dimensions — Productivity, Educational, Entertainment, Inspiring, Creative (0-100)
- Gives a verdict — Worth It / Maybe / Skip
- Learns your taste — Like/dislike videos to teach it your preferences
- Finds related resources — Tutorials, articles, guides from the web
- Blocks rabbit holes — Productivity Guardian stops low-value content
- Tracks your time — Session stats, daily analytics, channel insights
- Timeline markers — Visual chapter and note markers on YouTube's progress bar
- Video overlay — Quick verdict and feedback buttons visible in cinema/theater mode
OpenRouter API Key (required):
- Go to OpenRouter
- Create an API key
- Copy it
Brave Search API Key (optional, for Related tab):
- Go to Brave Search API
- Sign up for free tier (2,000 queries/month)
- Copy your API key
git clone https://github.com/planetaryescape/vidpulse.git
cd vidpulse
bun install
bun run buildLoad in Chrome:
- Go to
chrome://extensions - Enable "Developer mode" (top right)
- Click "Load unpacked"
- Select the
dist/folder
- Click VidPulse icon in toolbar
- Go to Settings (gear icon)
- Paste your OpenRouter API key
- (Optional) Paste Brave Search API key for related content
Opens automatically on YouTube video pages. Five tabs:
| Tab | What It Shows |
|---|---|
| Summary | Verdict, 5 score bars, topic tags |
| For You | Personalized reasoning, relevance score, enjoyment confidence |
| Chapters | Timestamped key points—click to jump in video |
| Notes | Your timestamped bookmarks with export to markdown |
| Related | Web resources (tutorials, articles) via Brave Search |
Visual markers appear on YouTube's progress bar:
- Chapter markers (blue) — AI-extracted key sections from analysis
- Note markers (yellow) — Your personal timestamped notes
Features:
- Click any marker to jump to that moment in the video
- Hover to see chapter title/description or note content
- Wide tooltips with edge-aware positioning (won't overflow screen)
- Semi-transparent when not hovered
- Automatically hide/show with YouTube's controls (when mouse idle)
- Toggle visibility via button in panel header
Compact verdict badge visible on the video itself:
- Shows verdict icon (green/yellow/red)
- Quick like/dislike buttons for fast feedback
- Click to expand full scores panel
- Perfect for cinema/theater mode when sidebar hidden
- Fades with YouTube controls when mouse idle
VidPulse learns what you like:
- Like or dislike a video (Shift+L / Shift+K)
- AI extracts specific preferences: "likes deep technical tutorials on system design", "dislikes clickbait thumbnails"
- Similar preferences automatically merge
- Future videos scored against your learned taste
- See "relevance score" and "enjoyment confidence" in For You tab
- Clickable source links — preferences link back to source video with timestamp
View and manage learned preferences in Settings > Personalization.
Tell VidPulse what you're interested in:
- Write your interests manually
- Or enable auto-sync to combine your text with learned preferences
- Used for relevance scoring and personalized recommendations
Take notes while watching:
- Click "Add note" to capture current timestamp
- Click any timestamp to jump to that moment
- Notes auto-save as you type (with blur fallback)
- See notes as markers on the video timeline
- Export single video's notes or all notes as markdown
Find supporting resources:
- AI generates search query from video summary + tags
- Brave Search finds tutorials, articles, guides
- Shows favicon, title, description, source domain
- Requires Brave Search API key
Block time-wasting content:
- Tag blocking — Block videos with specific tags (e.g., "drama", "reaction")
- Score threshold — Block if all scores below your minimum
- Focus schedule — Stricter rules during work hours
- Entertainment blocking — Block entertainment-dominant videos during focus time
Override: Click "Watch Anyway" or press Escape.
Set productive hours:
- Pick days (Mon-Sun)
- Set start/end hours
- Higher score threshold during focus
- Optional: block all entertainment
- Pause focus for 1 hour via badge in panel
Declare your watching goal:
- Learning — Expects educational content
- Research — Expects educational or productive
- Relaxing — Expects entertainment
- Browsing — No expectations
Videos show alignment badge based on intent vs scores.
Optional time awareness:
- Set interval (e.g., every 30 minutes)
- Shows total watch time, video breakdown
- "Still intentional?" with continue or break options
Track your YouTube habits:
- Session timer in panel header (actual watch time, not wall clock)
- Daily stats — Time by category, video counts
- Channel stats — Average scores per channel, trust badges
- Liked channels — Auto-tracked from liked videos, subscription status
Analysis loads in phases for snappier UX:
- Phase 1 (fast): Summary, scores, verdict, personalized reasoning
- Phase 2 (background): Chapters, tags, detailed analysis
Panel appears as soon as Phase 1 completes. Tabs show loading state until their data arrives.
| Key | Action |
|---|---|
Shift+V |
Toggle panel visibility |
Shift+L |
Like video (trains preferences) |
Shift+K |
Skip/dislike video |
Shift+R |
Regenerate analysis |
Shift+O |
Toggle overlay expand/collapse |
Escape |
Dismiss overlays |
Configure different models per operation via OpenRouter:
| Operation | Default | Purpose |
|---|---|---|
| Video Reading | google/gemini-2.5-flash-preview | Multimodal video analysis (Gemini only) |
| Summarization | google/gemini-2.5-flash-preview | Generate summary |
| Reasoning | google/gemini-2.5-flash-preview | Personalized recommendations |
| Tag Generation | google/gemini-2.5-flash-preview | Topic tags |
| Content Analysis | google/gemini-2.5-flash-preview | Scoring & verdict |
| Memory Extraction | google/gemini-2.5-flash-preview | Learn preferences from feedback |
Video Reading requires Gemini (video multimodal). Other operations support Claude Sonnet 4, GPT-4.5, and more.
- Analyses cached locally (default: 365 days)
- Cache invalidates when you update profile or change models
- Regenerate any video with Shift+R
Enable/disable in Settings:
- Show timeline markers — Toggle chapter and note markers on progress bar
- Toggle visibility per-session via button in panel header
Open Settings, paste a valid OpenRouter API key.
- Check API key at OpenRouter
- Check your OpenRouter credit balance
- Wait and retry
- Click extension icon
- Refresh page
- Check console (F12) for errors
Add Brave Search API key in Settings.
Lower threshold in Settings > Productivity Guardian.
- Enable "Show timeline markers" in Settings
- Check the toggle button in panel header
- Markers only appear after analysis completes
bun run dev # Build with watch mode
bun run build # Production build
bun run clean # Remove dist/- TypeScript, Vite, @crxjs/vite-plugin
- @openrouter/sdk for AI models via OpenRouter
- Brave Search API for related content
- Chrome Extension Manifest V3
MIT — see LICENSE
See CONTRIBUTING.md