Infer file type and MIME type of any file/buffer


Small and dependency free Python module to infer file type and MIME type checking the magic numbers signature of a file or buffer (aka file pattern).

This is a Python port from filetype Go package.

  - Simple and friendly API.
  - Supports a wide range of file types.
  - Provides file extension and MIME type inference.
  - File discovery by extension or MIME type.
  - File discovery by kind (image, video, audio...).
  - Pluggable: add new custom type matchers.
  - Fast, even processing large files.
  - Only first 261 bytes representing the max file header is required, so you
    can just pass a list of bytes.
  - Dependency free (just Python code, no C extensions, no libmagic bindings).
  - Cross-platform file recognition.

Currently, the following patterns are recognised:
  - Image: bmp, cr2, dwg, gif, heic, ico, jpg, jpx, jxr, png, psd, tif, xcf,
  - Video: avi, flv, m4v, mkv, mov, mp4, mpg, webm, wmv, 3gpp.
  - Audio: aac, aiff, amr, flac, m4a, mid, mp3, ogg, wav.
  - Archive: ar, br, bz2, cab, crx, dcm, deb, eot, epub, exe, gz, lz, lzo, lz4,
             nes, pdf, ps, rar, rpm, rtf, sqlite, swf, tar, xz, zip, Z, 7z.
  - Font: otf, ttf, woff, woff2.
  - Application: wasm.

This package contains the filetype module for Python 3 and an executable.

Upload more screenshots

Please help extend the collection of screenshots. Just make a screenshot and upload it here. You don't need to register or anything.

Upload a screenshot

Hint: upload an image here from your clipboard with Ctrl-V


Install this software package

If the package is available for the distribution you are currently using on your computer then install the software by clicking on…

Install python3-filetype