Seek

Ctrl+K search for YouTube videos. Find what was said and jump to the moment.

2 min read#Chrome Extension#React#TypeScript#Vite#CRXJS

Overview

Seek is a Chrome extension for YouTube watch pages. Ctrl+K opens a search over the transcript so you can jump to where something was said. Think Ctrl+F for spoken content.

Problem

YouTube’s native transcript panel works, but it’s slow to scan. If you’re halfway through a forty-minute talk and want the bit where someone mentions “context window”, you’re scrolling a wall of text or scrubbing the timeline and hoping. I kept doing that on tutorial videos and conference talks, and I wanted a faster way in.

Solution

I built a command palette that overlays the player. Open it with Ctrl+K or the extension icon, search the transcript, and the player seeks to the match. Results show the matching line with surrounding context so you can tell similar hits apart.

It pulls caption data from YouTube’s timedtext endpoints and falls back through InnerTube when the page doesn’t expose tracks yet. A small injected script reads ytInitialPlayerResponse from the page context, because the content script can’t see it directly. If captions aren’t enabled, Seek can toggle them and retry.

Architecture

YouTube watch page


Content script (React overlay)

      ├── Injected script → player response
      ├── timedtext caption fetch
      └── InnerTube get_transcript


Command palette → seek to timestamp

Lessons learned

  • YouTube doesn’t have a stable public transcript API. The extension is mostly a chain of fallbacks.
  • Getting the player response from page context was the fiddliest part. Everything else builds on that.
  • Command palette UX on a video page needs to feel instant. Preloading the transcript when the video loads matters more than fancy ranking.

Related