Skip to content

Add missing MIME types #129965

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
hugovk opened this issue Feb 10, 2025 · 0 comments
Closed

Add missing MIME types #129965

hugovk opened this issue Feb 10, 2025 · 0 comments
Labels
stdlib Python modules in the Lib dir type-feature A feature request or enhancement

Comments

@hugovk
Copy link
Member

hugovk commented Feb 10, 2025

Feature or enhancement

Proposal:

https://github.com/mikeckennedy/content-types identifies some common MIME types missing from the default mimetypes list.

Running https://github.com/mikeckennedy/content-types/blob/main/samples/compare_to_builtin.py on Python 3.13 to identify some missing ones:

uv run --python 3.13 --with content-types https://raw.githubusercontent.com/mikeckennedy/content-types/refs/heads/main/samples/compare_to_builtin.py
Compare types in mimetypes vs content-types.
There are 5 types where mimetypes and content-types disagree
mimetypes: .exe application/octet-stream, content-types: .exe application/x-msdownload
mimetypes: .xml text/xml, content-types: .xml application/xml
mimetypes: .wav audio/x-wav, content-types: .wav audio/wav
mimetypes: .dll application/octet-stream, content-types: .dll application/x-msdownload
mimetypes: .obj application/octet-stream, content-types: .obj model/obj

There are 0 types in mimetypes that are not in content-types

There are 31 types in content-types that are not in mimetypes
in_ct_only
.xlsx  -> application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.gz    -> application/gzip
.ods   -> application/vnd.oasis.opendocument.spreadsheet
.docx  -> application/vnd.openxmlformats-officedocument.wordprocessingml.document
.gltf  -> model/gltf+json
.rar   -> application/vnd.rar
.php   -> application/x-httpd-php
.7z    -> application/x-7z-compressed
.ogv   -> video/ogg
.odg   -> application/vnd.oasis.opendocument.graphics
.weba  -> audio/webm
.rpm   -> application/x-rpm
.odp   -> application/vnd.oasis.opendocument.presentation
.deb   -> application/x-debian-package
.epub  -> application/epub+zip
.woff2 -> font/woff2
.apk   -> application/vnd.android.package-archive
.glb   -> model/gltf-binary
.map   -> application/json
.tgz   -> application/gzip
.ttf   -> font/ttf
.otf   -> font/otf
.wmv   -> video/x-ms-wmv
.odt   -> application/vnd.oasis.opendocument.text
.ogg   -> audio/ogg
.pptx  -> application/vnd.openxmlformats-officedocument.presentationml.presentation
.m4a   -> audio/mp4
.m4v   -> video/mp4
.flac  -> audio/flac
.woff  -> font/woff
.stl   -> model/stl

With 3.14.0a4:

uv run --python 3.14 --with content-types https://raw.githubusercontent.com/mikeckennedy/content-types/refs/heads/main/samples/compare_to_builtin.py
Compare types in mimetypes vs content-types.
There are 5 types where mimetypes and content-types disagree
mimetypes: .exe application/octet-stream, content-types: .exe application/x-msdownload
mimetypes: .obj application/octet-stream, content-types: .obj model/obj
mimetypes: .xml text/xml, content-types: .xml application/xml
mimetypes: .wav audio/x-wav, content-types: .wav audio/wav
mimetypes: .dll application/octet-stream, content-types: .dll application/x-msdownload

There are 13 types in mimetypes that are not in content-types
.wmf : image/wmf
.mka : audio/matroska
.fits: image/fits
.g3  : image/g3fax
.eot : application/vnd.ms-fontobject
.emf : image/emf
.jp2 : image/jp2
.jpm : image/jpm
.jpx : image/jpx
.t38 : image/t38
.mk3d: video/matroska-3d
.mkv : video/matroska
.tfx : image/tiff-fx

There are 27 types in content-types that are not in mimetypes
in_ct_only
.m4v   -> video/mp4
.wmv   -> video/x-ms-wmv
.odt   -> application/vnd.oasis.opendocument.text
.deb   -> application/x-debian-package
.odp   -> application/vnd.oasis.opendocument.presentation
.gz    -> application/gzip
.xlsx  -> application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.map   -> application/json
.apk   -> application/vnd.android.package-archive
.gltf  -> model/gltf+json
.php   -> application/x-httpd-php
.glb   -> model/gltf-binary
.rpm   -> application/x-rpm
.epub  -> application/epub+zip
.odg   -> application/vnd.oasis.opendocument.graphics
.docx  -> application/vnd.openxmlformats-officedocument.wordprocessingml.document
.ods   -> application/vnd.oasis.opendocument.spreadsheet
.7z    -> application/x-7z-compressed
.stl   -> model/stl
.m4a   -> audio/mp4
.ogv   -> video/ogg
.flac  -> audio/flac
.rar   -> application/vnd.rar
.tgz   -> application/gzip
.pptx  -> application/vnd.openxmlformats-officedocument.presentationml.presentation
.ogg   -> audio/ogg
.weba  -> audio/webm

Let's add some of these, but check with IANA and relevant specs. For example, .wav is in RFC 2361 as audio/vnd.wave not audio/wav. We currently have it as audio/x-wav.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Linked PRs

@hugovk hugovk added stdlib Python modules in the Lib dir type-feature A feature request or enhancement labels Feb 10, 2025
hugovk added a commit that referenced this issue Feb 21, 2025
Co-authored-by: Petr Viktorin <encukou@gmail.com>
@hugovk hugovk closed this as completed Feb 27, 2025
@hugovk hugovk marked this as a duplicate of #85391 Apr 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stdlib Python modules in the Lib dir type-feature A feature request or enhancement
Projects
None yet
Development

No branches or pull requests

1 participant