If you've ever wanted to extract frames from a YouTube video, you've probably downloaded the video first and used FFmpeg. It works—but it's not always the fastest or simplest solution.
I wanted a tool that works entirely in the browser, with no downloads, no CLI, and no servers.
So I built YTFR: YT Fr4m3 R1pp3r, a Tampermonkey userscript that captures frames directly from the YouTube player in real time.
How it works
Instead of downloading the video again, the script captures frames that the browser is already rendering.
YouTube Video
↓
Capture Frames
↓
Store as Blobs
↓
Generate ZIP
↓
Download
Everything runs locally on your machine.
Features
- Automatic frame capture at custom intervals
- Manual frame capture
- ZIP export with:
- Extracted frames
- Contact sheets
- JSON reports
- CSV frame metadata
- Draggable UI
- Automatic fallback for browsers without requestVideoFrameCallback()
- Configurable memory limit to prevent crashes
Challenges
The biggest challenges were:
- Handling YouTube's Single Page Application (SPA) navigation.
- Supporting browsers without requestVideoFrameCallback().
- Managing memory while capturing hundreds of images.
- Building a movable interface that remembers its position.
What's next?
I'm planning to add:
- Timestamp-based extraction
- Frame comparison
- Playlist batch processing
If you have ideas or feedback, feel free to open an issue or contribute.
Top comments (0)