Skip to main content

Video Color Palette Extractor

Open a video to extract its dominant colors across frames; it stays on your device

Choose a videoor drag and drop it here

MP4 (H.264) or WebM; MOV and OGG if your browser plays them (max. 500MB)

Sample: 10 seconds from Big Buck Bunny (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org, licensed under CC BY 3.0; four scenes cut together.

How It Works

Our video color palette extractor analyzes multiple frames from your video and groups similar colors: it splits them where they differ most, refines the groups with k-means and takes each group's average. Open a video (it stays on your device), choose how many colors and frames (up to 60) you want to analyze, optionally limit it to a From–To range, and export the palette in your preferred format. Each color shows its share of the picture area, and the color barcode puts the largest color of every analyzed frame side by side, downloadable as a PNG. To get the colors of one specific moment, pause the preview there and use Palette of the current frame.

Supported Formats

Files up to 500 MB. MP4 with H.264 video and WebM open in all major browsers; other files open only if your browser can decode them.

  • MP4 (.mp4, .m4v) - H.264 works everywhere; HEVC depends on the device
  • WebM - VP8 or VP9 video; AV1 too, but Safari decodes AV1 only on devices with an AV1 hardware decoder
  • OGG - Only if your browser still decodes its codec; Chrome, Edge and Safari do not play Theora
  • MOV - Plays mainly in Safari; ProRes and DNxHR usually will not open

Export Options

  • CSS Variables - Ready to use in your stylesheets
  • JSON - The HEX values as a JSON object
  • Tailwind v4 - An @theme block for Tailwind CSS v4
  • Tailwind v3 - A colors object for tailwind.config.js
  • SCSS Variables - For Sass/SCSS projects
  • Array - Simple JavaScript array format
  • .ase swatches - Adobe Swatch Exchange file, swatches named by HEX
  • Barcode PNG - One column per analyzed frame

Use Cases

  • Extract color schemes from video footage
  • Analyze cinematography and color grading
  • Create brand colors from video content
  • Generate theme palettes from movies or clips
  • Study color progression throughout a video

Privacy & Performance

All video processing happens directly in your browser. Your video files are never uploaded to any server. Every frame is decoded and analyzed on your device, so 40 or 60 frames of a long or 4K video take much longer than a short clip, and the tab stays busy until the run ends.

Frequently Asked Questions

How do I extract a color palette from a video?
Drop a video file on the page or click to choose one, choose 5, 8, 10 or 15 colors and 5, 10, 20, 40 or 60 frames to sample, optionally set a From–To range, and press Extract Colors. You get one palette for the clip or the range with each color's share of the picture, the colors of each sampled frame, a color barcode, export code for CSS, SCSS, Tailwind or JSON, and an .ase swatch file. The palette can come back with fewer colors than you chose if the footage has fewer distinct colors.
Can I analyze only part of a video?
Yes. Enter From and To as seconds (83), minutes:seconds (1:23) or hours:minutes:seconds (1:02:03), or press Current time next to either field to take the position of the preview. Leave a field empty for the start or the end of the clip. Frames are then sampled only inside that range.
What does the percentage next to each color mean?
It is the color's share of the picture area across the analyzed frames. An even sample of pixels from every analyzed frame is counted toward the nearest palette color (by distance in the OKLab color space), and each palette color is the average of exactly the pixels it counts. Each frame contributes the same number of pixels, so each weighs the same. The palette is listed from the largest share to the smallest.
What is the color barcode?
A strip with one column per analyzed frame, from the start of the clip or range on the left to its end on the right. Each column is the color that covers the largest share of that frame. You can download it as a PNG at least 1200 pixels wide, with every column the same width.
Can I use the palette in Photoshop or Illustrator?
Download .ase swatches gives an Adobe Swatch Exchange file with the palette as RGB swatches, each named by its HEX code. Adobe apps such as Photoshop, Illustrator and InDesign can load .ase files into their Swatches panel.
Can I get the colors of one specific frame?
Yes. Pause the preview on the moment you want and press Palette of the current frame. The palette is taken from exactly the frame the player is showing.
Is my video uploaded anywhere?
No. The video is read and analyzed by your browser on your device; it is never sent to a server.
Which video formats and sizes are supported?
MP4 with H.264 video and WebM with VP8 or VP9 open in all major browsers. Other files open only if your browser can decode them: AV1 plays in Safari only on devices with an AV1 hardware decoder (M3 Macs, iPhone 15 Pro and later), HEVC MP4 depends on the device, MOV plays mainly in Safari, and Ogg (Theora) video is not decoded by current Chrome, Edge or Safari. Files can be up to 500 MB; a file that will not play here will not give a palette either, and the page then says which codec the file uses, when it can tell, and what to do. ProRes or DNxHR exports from an editor usually will not open: export an H.264 MP4 copy first.
How are the frames chosen?
Frames are sampled at evenly spaced moments across the clip, or across the range you set, skipping its very first and last moment. Up to 60 frames can be read per run; each one is decoded and analyzed in your browser, so more frames take longer. Each frame's colors are grouped into a palette (split where they differ most, then refined with k-means), and the overall palette is computed from all sampled frames together, each with equal weight. Black bars along the top and bottom or the sides of a frame (letterboxing) are left out, so they do not show up as a large black share. A moment the browser cannot decode within 10 seconds is skipped, and the page says how many were left out; Cancel stops a run at any time.