Skip to main content

Small and dependency free Python package to infer file type and MIME type checking the magic numbers signature of a file or buffer.

This is a Python port from filetype Go package.

Features

  • 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

Installation

pip install filetype

API

See annotated API reference.

Examples

Simple file type checking

import filetype

def main():
    kind = filetype.guess('tests/fixtures/sample.jpg')
    if kind is None:
        print('Cannot guess file type!')
        return

    print('File extension: %s' % kind.extension)
    print('File MIME type: %s' % kind.mime)

if __name__ == '__main__':
    main()

Supported types

Image

  • dwg - image/vnd.dwg

  • xcf - image/x-xcf

  • jpg - image/jpeg

  • jpx - image/jpx

  • png - image/png

  • apng - image/apng

  • gif - image/gif

  • webp - image/webp

  • cr2 - image/x-canon-cr2

  • tif - image/tiff

  • bmp - image/bmp

  • jxr - image/vnd.ms-photo

  • psd - image/vnd.adobe.photoshop

  • ico - image/x-icon

  • heic - image/heic

  • avif - image/avif

Video

  • 3gp - video/3gpp

  • mp4 - video/mp4

  • m4v - video/x-m4v

  • mkv - video/x-matroska

  • webm - video/webm

  • mov - video/quicktime

  • avi - video/x-msvideo

  • wmv - video/x-ms-wmv

  • mpg - video/mpeg

  • flv - video/x-flv

Audio

  • aac - audio/aac

  • mid - audio/midi

  • mp3 - audio/mpeg

  • m4a - audio/mp4

  • ogg - audio/ogg

  • flac - audio/x-flac

  • wav - audio/x-wav

  • amr - audio/amr

  • aiff - audio/x-aiff

Archive

  • br - application/x-brotli

  • rpm - application/x-rpm

  • dcm - application/dicom

  • epub - application/epub+zip

  • zip - application/zip

  • tar - application/x-tar

  • rar - application/x-rar-compressed

  • gz - application/gzip

  • bz2 - application/x-bzip2

  • 7z - application/x-7z-compressed

  • xz - application/x-xz

  • pdf - application/pdf

  • exe - application/x-msdownload

  • swf - application/x-shockwave-flash

  • rtf - application/rtf

  • eot - application/octet-stream

  • ps - application/postscript

  • sqlite - application/x-sqlite3

  • nes - application/x-nintendo-nes-rom

  • crx - application/x-google-chrome-extension

  • cab - application/vnd.ms-cab-compressed

  • deb - application/x-deb

  • ar - application/x-unix-archive

  • Z - application/x-compress

  • lzo - application/x-lzop

  • lz - application/x-lzip

  • lz4 - application/x-lz4

  • zstd - application/zstd

Document

  • doc - application/msword

  • docx - application/vnd.openxmlformats-officedocument.wordprocessingml.document

  • odt - application/vnd.oasis.opendocument.text

  • xls - application/vnd.ms-excel

  • xlsx - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

  • ods - application/vnd.oasis.opendocument.spreadsheet

  • ppt - application/vnd.ms-powerpoint

  • pptx - application/vnd.openxmlformats-officedocument.presentationml.presentation

  • odp - application/vnd.oasis.opendocument.presentation

Font

  • woff - application/font-woff

  • woff2 - application/font-woff

  • ttf - application/font-sfnt

  • otf - application/font-sfnt

Application

  • wasm - application/wasm

Metadata

Release files for filetype 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for filetype 1.2.0
File Size Uploaded
filetype-1.2.0.tar.gz 998.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for filetype 1.2.0
File Interpreter ABI Platform
filetype-1.2.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 1.0 MB

Release files / filetype-1.2.0.tar.gz

Download URL filetype-1.2.0.tar.gz
Size 998.0 kB
Tags Source
SHA-256 checksum
How to use checksums
66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb
BLAKE2b-256 checksum
How to use checksums
bb29745f7d30d47fe0f251d3ad3dc2978a23141917661998763bebb6da007eb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.2

Release files / filetype-1.2.0-py2.py3-none-any.whl

Download URL filetype-1.2.0-py2.py3-none-any.whl
Size 20.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25
BLAKE2b-256 checksum
How to use checksums
18791b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.2

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page