Skip to main content
Toollyz

Search tools

Search for a command to run...

File Metadata Viewer

Pick a file (or drag it in) to extract every piece of client-visible metadata. Browser-reported + magic-byte-sniffed MIME, last-modified date, image dimensions, audio/video duration + bitrate, SHA-256 hash (files up to 50 MB), and a hex+ASCII dump of the first 32 bytes. Flags renamed-file mismatches. 100% offline.

What is the File Metadata Viewer?

File Metadata Viewer is a Swiss-army inspector for any file you pick from disk. Uses the File API to read attributes (`name`, `size`, browser-reported `type` from extension, `lastModified` timestamp). Reads the first 64 bytes to sniff the true MIME via a compact magic-byte table — 25 common formats covering images (JPEG, PNG, GIF, WebP, BMP, ICO, HEIC), documents (PDF, ZIP, RAR, 7z, GZIP), audio (MP3, WAV, OGG, FLAC), video (MP4, WebM, QuickTime) and fonts (WOFF, WOFF2, TTF, OTF). For images, creates a hidden `Image` element to read natural dimensions. For audio/video, creates a hidden media element with `preload=metadata` to read duration + (video) dimensions. Computes SHA-256 with Web Crypto for files up to 50 MB (larger files inspect headers only). Renders a hex+ASCII dump of the first 32 bytes for manual inspection. Flags mismatches: when the browser-reported MIME disagrees with the sniffed MIME, that's a strong signal of a renamed file (or worse, content-spoofing).

How to use it

  1. Click 'Pick a file' or drop a file onto the box.
  2. Read the metadata grid: name, size, browser MIME, sniffed MIME, last-modified, dimensions, duration, SHA-256.
  3. Check the mismatch banner — if the browser says one MIME and the sniff says another, the file may be renamed.
  4. Read the hex+ASCII dump of the first 32 bytes for manual format checks.

Benefits

  • Reads native File API attributes: name, size, type, lastModified.
  • Magic-byte sniffs the true MIME from the first 64 bytes — covers 25 common formats.
  • Image dimensions via hidden `<img>` element (uses naturalWidth/Height).
  • Audio/video duration + (video) dimensions via media element with preload=metadata.
  • SHA-256 hash via Web Crypto for files up to 50 MB.
  • Hex + ASCII dump of the first 32 bytes for manual inspection.
  • Quick-facts panel: aspect ratio + simplified ratio, megapixels, bytes per pixel.
  • Stream stats panel for media: average bitrate.
  • Extension-vs-MIME mismatch warning catches renamed files.
  • Drag-and-drop or file picker — works on any platform.
  • Runs 100% in your browser — file never leaves your machine.

Frequently asked questions

Is this the same as the MIME Type Checker?

Related — the MIME Checker focuses purely on the magic-byte sniff with 50+ signatures. This tool inspects a broader set of client-visible metadata (dimensions, duration, hash) and uses a slimmer 25-format sniffer focused on the formats that carry useful in-content metadata.

Does it read EXIF data?

No — for EXIF use the EXIF Data Remover (which reads the segment chain) or specialised EXIF-only viewers. We surface the technical envelope (dimensions, duration, bytes) rather than parsing format-specific metadata blocks.

Why is SHA-256 capped at 50 MB?

Web Crypto's `subtle.digest` requires the entire buffer in memory. For a 50 MB file that's ~50 MB browser RAM; larger files risk crashing memory-constrained tabs. Override by passing `hashCapBytes` to `inspect()` if you embed the engine yourself.

How does it read video duration without playing the file?

Creates a hidden `<video preload=metadata>` element and listens for `loadedmetadata` — the browser parses just the container headers (mp4 moov atom, webm EBML header) without decoding any frames. Fast even on huge files.

What's 'bytes per pixel'?

Total file size divided by total pixel count. Useful sanity check: a high-quality JPEG sits around 0.5-2 bpp, a PNG can hit 4-8 bpp, raw uncompressed RGBA is exactly 4 bpp. Wildly higher values suggest the file is overcompressed or wraps something else.

Why is the browser MIME different from the sniffed MIME sometimes?

The browser derives MIME from the filename extension via the OS lookup table — easily spoofed by renaming. The sniffer reads the actual bytes. A mismatch usually means a renamed file (e.g. `report.exe` saved as `report.jpg`).

Does it handle very large files?

Yes — the inspector only reads the first 64 bytes for sniffing and the metadata-only headers for media. Image dimensions force a full decode by the browser (Chrome streams; Safari sometimes hangs on multi-GB images).

Can I batch-inspect multiple files?

Not currently — one file at a time. Drag a folder if your browser supports it (some do via webkitdirectory) but only the first file is processed.

Does the hex dump show all the file or just the header?

First 32 bytes only — enough to read most magic numbers and basic format info. For a full hex dump use a dedicated hex editor; the goal here is a quick eyeball check.

Why no file save / download?

The tool inspects, it doesn't transform. For renaming based on detected MIME, that workflow belongs to a separate utility.

Is anything uploaded?

No. The File API reads bytes from your local disk into browser memory. Toollyz has no server.