๐Ÿงฐ UtlKit

MIME Types Lookup: How a 125-Row Table Maps 124 Extensions Across 5 Categories, with the Duplicate .ts Entry, 43 Vendor x- Types and the CSV Export Rules Explained

Look up any extension in a 125-row table of MIME types across five categories: search is a substring match on extension and type, .ts returns two types, 43 rows carry the x- vendor prefix, and the filtered view exports to CSV.

A browser decides how to handle a file by the Content-Type header: the wrong type makes it download the page instead of rendering it, or block a font it should load. A lookup table keeps the answer in reach without leaving the browser. The MIME Types Lookup ships a 125-row static table mapping extensions to MIME types and categories, with search, category filter and CSV export, all client-side, nothing uploaded.

125 rows, five categories

The table holds 125 entries in five categories: 26 Text, 16 Image, 11 Audio, 12 Video and 60 Application, covering 124 distinct extensions because .ts appears twice. Add up the length of every type string and the table weighs 2,098 characters. Each row renders the extension in monospace, the type, and a color-coded category badge. The search box is a case-insensitive substring match against the extension and the MIME string at once, and it combines with the category chips.

Five assets on one page

A typical page ships app.js, data.csv, logo.png, film.mp4 and font.woff2. Five lookups give text/javascript under Text, text/csv under Text, image/png under Image, video/mp4 under Video, and font/woff2 under Application. The badge and the MIME family do not always agree: .mjs and .cjs carry text/javascript yet sit in Application, while .svg is image/svg+xml but lives in Text.

Search matches substrings in both fields

Typing image returns 19 rows, not the 16 rows of the Image category, because .svg is filed under Text and .dmg plus .iso are filed under Application while their type strings contain the word image. Typing mp returns 9 rows, including .bmp because bmp contains mp, .ts through video/mp2t, and .rar plus .7z through the word compressed in x-rar-compressed. Typing ts returns 8 rows, and .docx, .xlsx and .pptx show up because their long office types end in formats.

The .ts collision and 16 shared types

The .ts collision is the only one in the table: it returns video/mp2t, the MPEG transport stream under Video, and text/typescript under Application, which is why 125 rows cover just 124 extensions. Sixteen types are shared by several extensions: text/plain covers 5 (.txt, .ini, .cfg, .log, .env), text/javascript covers 4 (.js, .jsx, .mjs, .cjs), image/jpeg covers 2. The longest type runs 73 characters (.pptx), the shortest 8 (text/css, text/xml, text/csv). For image files the question is often the dimensions and the format, which the Image Info Viewer reports, and a re-encode through the Image Compressor from png to webp changes the type you must declare.

43 unregistered x- vendor types

Forty-three of the 125 rows use the x- vendor prefix: video/x-matroska, application/x-rar-compressed, image/x-icon, text/x-sql. These are de-facto standards that were never registered with the IANA, yet every browser and server honours them, while the registered core (image/png, video/mp4, application/json) stays stable. When a file extension lies, the honest answer is in the bytes: the Hex UTF-8 Base64 Converter shows the magic bytes that reveal the true container.

Where the type string goes

Once you have the string it goes into a server config, an API header or a data URI. The Base64 Encoder/Decoder builds data:image/png;base64 URIs whose type prefix comes straight from this table. The CSV to JSON Converter turns the exported mime-types.csv into a JSON map for code. The JSON Formatter validates the payload that travels with Content-Type application/json. For the text/html side of a default web page, see the HTML Format guide.

Related Tools

Frequently Asked Questions

Why does .ts return two different MIME types?

Because .ts names two file families: the MPEG transport stream (video/mp2t, Video) used by broadcast players and the TypeScript source (text/typescript, Application). The table lists both rows and the search returns both, so you pick by project context. This is the only duplicated extension, which is why 125 rows cover 124 distinct extensions.

Why does searching image return 19 rows when the Image category has 16?

Because search matches a substring of the extension or the MIME string, not the category. Beyond the 16 Image rows, .svg (image/svg+xml) is filed under Text, and .dmg (application/x-apple-diskimage) plus .iso (application/x-iso9660-image) are filed under Application, yet all three extra type strings contain the word image. The 19 rows are the honest count of what the strings contain.

What does the CSV export actually do?

It downloads the current filtered view as mime-types.csv with a 3-column header (Extension, MIME Type, Category) and one row per visible entry. With All selected and an empty search that is 125 rows. The export builds a text/csv Blob entirely in the browser, nothing is uploaded, so it is safe for an intranet or a compliance review.

What does the x- prefix in a MIME type mean?

It marks a vendor-specific or unregistered type. 43 of the 125 rows use it: video/x-matroska, application/x-rar-compressed, image/x-icon. These types never went through IANA registration, yet every browser and server honours them, so they are safe to ship. Where you can choose, prefer a registered type such as image/png or video/mp4.

Does the table contain every extension?

No. It holds 125 rows for 124 extensions and covers the common web assets. .mpg (the MPEG-1 program stream) is absent while .m3u8 is present, and .svg sits in Text rather than Image. For an extension the table lacks, check the IANA registry or your framework file map before guessing.

Related Articles