mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00: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
 |