mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-09-01 20:16:38 +02:00
* [compat] Improve `imghdr.what` detection * [pp/embedthumbnail] Improve imghdr fail message * [pp/embedthumbnail] Fix AtomicParsley error handling Authored by: Grub4K
23 lines
582 B
Python
23 lines
582 B
Python
def what(file=None, h=None):
|
|
"""Detect format of image (Currently supports jpeg, png, webp, gif only)
|
|
Ref: https://github.com/python/cpython/blob/3.11/Lib/imghdr.py
|
|
Ref: https://www.w3.org/Graphics/JPEG/itu-t81.pdf
|
|
"""
|
|
if h is None:
|
|
with open(file, 'rb') as f:
|
|
h = f.read(12)
|
|
|
|
if h.startswith(b'RIFF') and h.startswith(b'WEBP', 8):
|
|
return 'webp'
|
|
|
|
if h.startswith(b'\x89PNG'):
|
|
return 'png'
|
|
|
|
if h.startswith(b'\xFF\xD8\xFF'):
|
|
return 'jpeg'
|
|
|
|
if h.startswith(b'GIF'):
|
|
return 'gif'
|
|
|
|
return None
|