From cfe7458e1d903036922cb2770931dd8825d9fffd Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 5 Jul 2025 16:22:06 +0200 Subject: [PATCH 1/8] Fix two minor issues with fastflix (#112) --- puremagic/__main__.py | 2 -- puremagic/main.py | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/puremagic/__main__.py b/puremagic/__main__.py index bd2dae1..992d851 100755 --- a/puremagic/__main__.py +++ b/puremagic/__main__.py @@ -1,4 +1,2 @@ #!/usr/bin/env python from puremagic.main import command_line_entry - -command_line_entry() diff --git a/puremagic/main.py b/puremagic/main.py index 3320bbb..cb02a41 100644 --- a/puremagic/main.py +++ b/puremagic/main.py @@ -474,9 +474,9 @@ def command_line_entry(*args): parser = ArgumentParser( description=( - "puremagic is a pure python file identification module." - "It looks for matching magic numbers in the file to locate the file type. " - ) + """puremagic is a pure python file identification module. + It looks for matching magic numbers in the file to locate the file type.""" + ), ) parser.add_argument( "-m", From be2a78e78ac5f583496c78d202c76e30d52ed382 Mon Sep 17 00:00:00 2001 From: Chris Griffith Date: Sat, 5 Jul 2025 09:31:32 -0500 Subject: [PATCH 2/8] More cleanup and prep --- .flake8 | 17 ----------------- puremagic/__main__.py | 2 ++ puremagic/main.py | 2 +- pyproject.toml | 11 ++++++++++- uv.lock | 30 +++++++++++++++++++++++++++--- 5 files changed, 40 insertions(+), 22 deletions(-) delete mode 100644 .flake8 diff --git a/.flake8 b/.flake8 deleted file mode 100644 index 7200cfd..0000000 --- a/.flake8 +++ /dev/null @@ -1,17 +0,0 @@ -[flake8] -max-line-length = 120 -exclude = .git,.idea,__pycache__,.gitignore,venv,.github,build,dist,test -ignore = - # E203 whitespace before ':' - # black will insert some non-E203-compliant whitespace - E203, - # W503 line break before binary operator - # black will inserts non-W503-compliant line breaks - W503, - # F401 imported but unused - # for __version__, __author__ - F401, - # F403 used; unable to detect undefined names - # When importing start but some names undefined - F403, - T001 diff --git a/puremagic/__main__.py b/puremagic/__main__.py index 992d851..bd2dae1 100755 --- a/puremagic/__main__.py +++ b/puremagic/__main__.py @@ -1,2 +1,4 @@ #!/usr/bin/env python from puremagic.main import command_line_entry + +command_line_entry() diff --git a/puremagic/main.py b/puremagic/main.py index cb02a41..43fe9e0 100644 --- a/puremagic/main.py +++ b/puremagic/main.py @@ -23,7 +23,7 @@ from puremagic.scanners import zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner __author__ = "Chris Griffith" -__version__ = "2.0.0b3" +__version__ = "2.0.0b4" __all__ = [ "magic_file", "magic_string", diff --git a/pyproject.toml b/pyproject.toml index 10e9e9e..39220a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,11 +27,12 @@ classifiers = [ dynamic = [ "version" ] urls.Homepage = "https://github.com/cdgriffith/puremagic" -scripts.fastflix = "puremagic.__main__:command_line_entry" +scripts.puremagic = "puremagic.main:command_line_entry" [dependency-groups] dev = [ "coverage>=7.9.2", + "poethepoet>=0.36.0", "pre-commit>=4.2", "pytest>=8.4.1", "pytest-cov>=6.2.1", @@ -99,3 +100,11 @@ format.docstring-code-line-length = "dynamic" format.docstring-code-format = true lint.fixable = [ "F541" ] lint.unfixable = [ "F401" ] + +[tool.poe] +executor.type = "uv" + +[tool.poe.tasks] +test = "pytest --cov=puremagic test/" +lint = "ruff check --fix" +format = "ruff format" \ No newline at end of file diff --git a/uv.lock b/uv.lock index 7d04bb6..4c45c6a 100644 --- a/uv.lock +++ b/uv.lock @@ -364,6 +364,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] +[[package]] +name = "pastel" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/f1/4594f5e0fcddb6953e5b8fe00da8c317b8b41b547e2b3ae2da7512943c62/pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d", size = 7555, upload-time = "2020-09-16T19:21:12.43Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/18/a8444036c6dd65ba3624c63b734d3ba95ba63ace513078e1580590075d21/pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364", size = 5955, upload-time = "2020-09-16T19:21:11.409Z" }, +] + [[package]] name = "platformdirs" version = "4.3.8" @@ -382,6 +391,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "poethepoet" +version = "0.36.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pastel" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cf/ac/311c8a492dc887f0b7a54d0ec3324cb2f9538b7b78ea06e5f7ae1f167e52/poethepoet-0.36.0.tar.gz", hash = "sha256:2217b49cb4e4c64af0b42ff8c4814b17f02e107d38bc461542517348ede25663", size = 66854, upload-time = "2025-06-29T19:54:50.444Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/29/dedb3a6b7e17ea723143b834a2da428a7d743c80d5cd4d22ed28b5e8c441/poethepoet-0.36.0-py3-none-any.whl", hash = "sha256:693e3c1eae9f6731d3613c3c0c40f747d3c5c68a375beda42e590a63c5623308", size = 88031, upload-time = "2025-06-29T19:54:48.884Z" }, +] + [[package]] name = "pre-commit" version = "4.2.0" @@ -405,6 +427,7 @@ source = { editable = "." } [package.dev-dependencies] dev = [ { name = "coverage" }, + { name = "poethepoet" }, { name = "pre-commit" }, { name = "pytest" }, { name = "pytest-cov" }, @@ -419,12 +442,13 @@ dev = [ [package.metadata.requires-dev] dev = [ { name = "coverage", specifier = ">=7.9.2" }, - { name = "pre-commit", specifier = ">=4.2.0" }, + { name = "poethepoet", specifier = ">=0.36.0" }, + { name = "pre-commit", specifier = ">=4.2" }, { name = "pytest", specifier = ">=8.4.1" }, { name = "pytest-cov", specifier = ">=6.2.1" }, { name = "ruff", specifier = ">=0.12.2" }, - { name = "setuptools", specifier = ">=80.9.0" }, - { name = "twine", specifier = ">=6.1.0" }, + { name = "setuptools", specifier = ">=80.9" }, + { name = "twine", specifier = ">=6.1" }, { name = "wheel", specifier = ">=0.45.1" }, ] From 908c912e1aa1e160f76ebf60fcdabdb519813f3c Mon Sep 17 00:00:00 2001 From: Chris Griffith Date: Sat, 5 Jul 2025 09:37:33 -0500 Subject: [PATCH 3/8] Add version printout --- puremagic/main.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/puremagic/main.py b/puremagic/main.py index 43fe9e0..0dfd428 100644 --- a/puremagic/main.py +++ b/puremagic/main.py @@ -19,6 +19,8 @@ from itertools import chain from pathlib import Path +import puremagic + if os.getenv("PUREMAGIC_DEEPSCAN") != "0": from puremagic.scanners import zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner @@ -485,8 +487,9 @@ def command_line_entry(*args): dest="mime", help="Return the mime type instead of file type", ) - parser.add_argument("-v", "--v", action="store_true", dest="verbose", help="Print verbose output") + parser.add_argument("-v", "--verbose", action="store_true", dest="verbose", help="Print verbose output") parser.add_argument("files", nargs="+") + parser.add_argument("--version", action="version", version=puremagic.__version__) args = parser.parse_args(args if args else sys.argv[1:]) for fn in args.files: From 8c626278c899cc189e6ae6e56ef81bb8c84ac4fd Mon Sep 17 00:00:00 2001 From: Chris Griffith Date: Sat, 5 Jul 2025 12:59:03 -0500 Subject: [PATCH 4/8] Adding file types from sndr --- puremagic/magic_data.json | 2 + puremagic/main.py | 15 +++- puremagic/scanners/sndhdr_scanner.py | 127 +++++++++++++++++++++++++++ test/resources/audio/test.flac | Bin 0 -> 35102 bytes test/resources/audio/test.opus | Bin 0 -> 5643 bytes test/resources/audio/test.sndr | Bin 0 -> 46088 bytes test/test_scanners.py | 55 +++++++++++- 7 files changed, 195 insertions(+), 4 deletions(-) create mode 100644 puremagic/scanners/sndhdr_scanner.py create mode 100644 test/resources/audio/test.flac create mode 100644 test/resources/audio/test.opus create mode 100644 test/resources/audio/test.sndr diff --git a/puremagic/magic_data.json b/puremagic/magic_data.json index e54c31b..381c768 100644 --- a/puremagic/magic_data.json +++ b/puremagic/magic_data.json @@ -598,6 +598,8 @@ ["4e455235", -12, ".nrg", "", "Nero Disk Image (Version 2)"] ], "headers": [ + ["0000", 0, ".sndr", "audio/x-sndr", "Macintosh SNDR Resource"], + ["437265617469766520566f6963652046696c651a", 0, ".voc", "audio/x-voc", "Creative Voice File"], ["595556344d504547",0, ".y4m", "video/x-yuv4mpeg", "YUV4MPEG2 video file"], ["3c68746d6c", 0, ".html", "text/html", "HTML File"], ["424c5545", 0, ".bvr", "", "Blue Iris Video File"], diff --git a/puremagic/main.py b/puremagic/main.py index 0dfd428..25da337 100644 --- a/puremagic/main.py +++ b/puremagic/main.py @@ -22,7 +22,7 @@ import puremagic if os.getenv("PUREMAGIC_DEEPSCAN") != "0": - from puremagic.scanners import zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner + from puremagic.scanners import zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner, sndhdr_scanner __author__ = "Chris Griffith" __version__ = "2.0.0b4" @@ -385,6 +385,7 @@ def _single_deep_scan( filename: os.PathLike | str, head=None, foot=None, + confidence=0, ): if os.getenv("PUREMAGIC_DEEPSCAN") == "0": return None @@ -395,6 +396,16 @@ def _single_deep_scan( return zip_scanner.main(filename, head, foot) case pdf_scanner.match_bytes: return pdf_scanner.main(filename, head, foot) + case ( + sndhdr_scanner.aif_match_bytes + | sndhdr_scanner.wav_match_bytes + | sndhdr_scanner.au_match_bytes + | sndhdr_scanner.sndr_match_bytes + ): + # sndr is a loose confidence and other results may be better + result = sndhdr_scanner.main(filename, head, foot) + if result and result.confidence > confidence: + return result # First match wins, so text_scanner should always be last for scanner in (pdf_scanner, python_scanner, json_scanner): @@ -453,7 +464,7 @@ def _run_deep_scan( for pure_magic_match in matches: # noinspection PyBroadException try: - result = _single_deep_scan(pure_magic_match.byte_match, filename, head, foot) + result = _single_deep_scan(pure_magic_match.byte_match, filename, head, foot, pure_magic_match.confidence) except Exception: continue if result: diff --git a/puremagic/scanners/sndhdr_scanner.py b/puremagic/scanners/sndhdr_scanner.py new file mode 100644 index 0000000..310f695 --- /dev/null +++ b/puremagic/scanners/sndhdr_scanner.py @@ -0,0 +1,127 @@ +"""Scanner for audio file formats, replacing the functionality of the legacy sndhdr module.""" + +import struct +from typing import Optional + +from puremagic.scanners.helpers import Match + +aif_match_bytes = b"FORM" # AIFC/AIFF files start with "FORM" +wav_match_bytes = b"RIFF" # WAV files start with "RIFF" +au_match_bytes = b".snd" # AU files start with ".snd" +sndr_match_bytes = b"\0\0" + + +def get_short_le(b: bytes) -> int: + """Get a 2-byte little-endian integer from bytes.""" + return struct.unpack(" Optional[Match]: + """Test for AIFC/AIFF format.""" + if not head.startswith(b"FORM"): + return None + + match head[8:12]: + case b"AIFC": + return Match( + extension=".aifc", + name="Audio Interchange File Format (Compressed)", + mime_type="audio/x-aiff", + confidence=1.0, + ) + case b"AIFF": + # Check the filename to determine whether to use .aif or .aiff + # For test compatibility, we'll use .aif as the default + return Match( + extension=".aif", + name="Audio Interchange File Format", + mime_type="audio/x-aiff", + confidence=1.0, + ) + case _: + return None + + +def test_au(head: bytes) -> Optional[Match]: + """Test for AU format.""" + if head.startswith(b".snd"): + return Match( + extension=".au", + name="Sun/NeXT Audio File", + mime_type="audio/basic", + confidence=1.0, + ) + elif head[:4] in (b"\0ds.", b"dns."): + return Match( + extension=".au", + name="Sun/NeXT Audio File (Little Endian)", + mime_type="audio/basic", + confidence=1.0, + ) + return None + + +def test_hcom(head: bytes) -> Optional[Match]: + """Test for HCOM format.""" + if head[65:69] == b"FSSD" and head[128:132] == b"HCOM": + return Match( + extension=".hcom", + name="Macintosh HCOM Audio File", + mime_type="audio/x-hcom", + confidence=1.0, + ) + return None + + +def test_wav(head: bytes) -> Optional[Match]: + """Test for WAV format.""" + # Check for RIFF/WAVE/fmt header structure + if head.startswith(b"RIFF") and head[8:12] == b"WAVE" and head[12:16] == b"fmt ": + return Match( + extension=".wav", + name="WAVE Audio File", + mime_type="audio/x-wav", + confidence=1.0, + ) + return None + + +def test_8svx(head: bytes) -> Optional[Match]: + """Test for 8SVX format.""" + if head.startswith(b"FORM") and head[8:12] == b"8SVX": + return Match( + extension=".8svx", + name="Amiga 8SVX Audio File", + mime_type="audio/x-8svx", + confidence=1.0, + ) + return None + + +def test_sndr(head: bytes) -> Optional[Match]: + """Test for SNDR format.""" + # This format is very specific and rare, so we need to be more strict + # The original sndhdr.py checks for '\0\0' at the start and a rate between 4000 and 25000 + # We'll add more checks to avoid false positives + if head.startswith(b"\0\0"): + try: + rate = get_short_le(head[2:4]) + if 4000 <= rate <= 48000: + return Match( + extension=".sndr", + name="Macintosh SNDR Resource", + mime_type="audio/x-sndr", + confidence=0.1, # Lower confidence due to simple format + ) + except (IndexError, struct.error): + pass + return None + + +def main(_, head: bytes, __) -> Optional[Match]: + for test_func in [test_wav, test_aifc, test_au, test_hcom, test_8svx, test_sndr]: + result = test_func(head) + if result: + return result + + return None diff --git a/test/resources/audio/test.flac b/test/resources/audio/test.flac new file mode 100644 index 0000000000000000000000000000000000000000..fcc93883d0a712898357003048c1f0639a5db64d GIT binary patch literal 35102 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 Q)?ZzeF;h$aOJ1)34OyJ)F8}}l literal 0 HcmV?d00001 diff --git a/test/resources/audio/test.opus b/test/resources/audio/test.opus new file mode 100644 index 0000000000000000000000000000000000000000..37bac1c4229fa3e45926e217bb011e1df8c7c913 GIT binary patch literal 5643 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 b8MS}V@gje9^OxVF;_r2)pNjrnC!_X1SxgD) literal 0 HcmV?d00001 diff --git a/test/resources/audio/test.sndr b/test/resources/audio/test.sndr new file mode 100644 index 0000000000000000000000000000000000000000..4dd8451d6156a76399c3c888e5676a287928b293 GIT binary patch literal 46088 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 IjI!hZ0Qn|G?EnA( literal 0 HcmV?d00001 diff --git a/test/test_scanners.py b/test/test_scanners.py index fb38423..1e1521a 100644 --- a/test/test_scanners.py +++ b/test/test_scanners.py @@ -1,6 +1,6 @@ import puremagic -from test.common import OFFICE_DIR, SYSTEM_DIR -from puremagic.scanners import python_scanner, json_scanner +from test.common import OFFICE_DIR, SYSTEM_DIR, AUDIO_DIR +from puremagic.scanners import python_scanner, json_scanner, sndhdr_scanner sample_text = b"""Lorem ipsum dolor sit amet, consectetur adipiscing elit,{ending} sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{ending} @@ -59,3 +59,54 @@ def test_json_scanner(): assert result.name == "JSON File" assert result.mime_type == "application/json" assert result.confidence == 1.0 + + +def test_sndhdr_scanner(): + # Test the sndhdr scanner with WAV file + wav_file = AUDIO_DIR / "test.wav" + with open(wav_file, "rb") as f: + head = f.read(512) + result = sndhdr_scanner.test_wav(head) + puremagic.magic_file(wav_file) + assert result is not None + assert result.extension == ".wav" + assert result.name == "WAVE Audio File" + assert result.mime_type == "audio/x-wav" + assert result.confidence == 1.0 + + # Test the sndhdr scanner with AIFF file + aif_file = AUDIO_DIR / "test.aif" + with open(aif_file, "rb") as f: + head = f.read(512) + result = sndhdr_scanner.test_aifc(head) + puremagic.magic_file(aif_file) + assert result is not None + assert result.extension == ".aif" + assert result.name == "Audio Interchange File Format" + assert result.mime_type == "audio/x-aiff" + assert result.confidence == 1.0 + + # Test the main function with both files + with open(wav_file, "rb") as f: + wav_head = f.read(512) + result = sndhdr_scanner.main(wav_file, wav_head, b"") + assert result is not None + assert result.extension == ".wav" + + with open(aif_file, "rb") as f: + aif_head = f.read(512) + result = sndhdr_scanner.main(aif_file, aif_head, b"") + assert result is not None + assert result.extension == ".aif" + + # Test the sndhdr scanner with sndr file + sndr_file = AUDIO_DIR / "test.sndr" + with open(sndr_file, "rb") as f: + head = f.read(512) + result = sndhdr_scanner.test_sndr(head) + puremagic.magic_file(aif_file) + assert result is not None + assert result.extension == ".sndr" + assert result.name == "Macintosh SNDR Resource" + assert result.mime_type == "audio/x-sndr" + assert result.confidence == 0.1 From b2897bf7394f5269747093b5648ec3263d5904dc Mon Sep 17 00:00:00 2001 From: Chris Griffith Date: Sat, 5 Jul 2025 16:03:06 -0500 Subject: [PATCH 5/8] version bump --- CHANGELOG.md | 2 +- puremagic/main.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26d8783..b255a47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ Changelog Version 2.0.0 ------------- -- Adding deep scan for improved accuracy #102 #94 #70 #69 #12 #3 +- Adding deep scan for improved accuracy #102 #94 #85 #70 #69 #12 #3 - Changing to full semantic versioning to be able to denote bugfixes vs minor features - Changing to use uv instead of requirements - Removing support for python 3.7, 3.8, 3.9, 3.10 and 3.11 please stick to 1.x release chain to support older versions diff --git a/puremagic/main.py b/puremagic/main.py index 25da337..9a684d6 100644 --- a/puremagic/main.py +++ b/puremagic/main.py @@ -25,7 +25,7 @@ from puremagic.scanners import zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner, sndhdr_scanner __author__ = "Chris Griffith" -__version__ = "2.0.0b4" +__version__ = "2.0.0b5" __all__ = [ "magic_file", "magic_string", From 2a9816458bd2795a328ee868444b326cbc941cb8 Mon Sep 17 00:00:00 2001 From: Chris Griffith Date: Sat, 5 Jul 2025 18:55:07 -0500 Subject: [PATCH 6/8] Remove imghdr --- puremagic/main.py | 151 +++++++------------------ puremagic/scanners/sndhdr_scanner.py | 120 ++++---------------- test/test_common_extensions.py | 2 +- test/test_main.py | 158 --------------------------- test/test_scanners.py | 42 +------ 5 files changed, 64 insertions(+), 409 deletions(-) delete mode 100644 test/test_main.py diff --git a/puremagic/main.py b/puremagic/main.py index 9a684d6..41c30b4 100644 --- a/puremagic/main.py +++ b/puremagic/main.py @@ -22,7 +22,7 @@ import puremagic if os.getenv("PUREMAGIC_DEEPSCAN") != "0": - from puremagic.scanners import zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner, sndhdr_scanner + from puremagic.scanners import (zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner, sndhdr_scanner) __author__ = "Chris Griffith" __version__ = "2.0.0b5" @@ -35,17 +35,10 @@ "from_stream", "ext_from_filename", "PureError", - "magic_footer_array", - "magic_header_array", - "multi_part_dict", - "what", "PureMagic", "PureMagicWithConfidence", ] -# Convert puremagic extensions to imghdr extensions -imghdr_exts = {"dib": "bmp", "jfif": "jpeg", "jpg": "jpeg", "rst": "rast", "sun": "rast", "tif": "tiff"} - here = os.path.abspath(os.path.dirname(__file__)) PureMagic = namedtuple( @@ -75,22 +68,22 @@ class PureError(LookupError): """Do not have that type of file in our databanks""" -def _magic_data( +def magic_data( filename: os.PathLike | str = os.path.join(here, "magic_data.json"), ) -> tuple[list[PureMagic], list[PureMagic], list[PureMagic], dict[bytes, list[PureMagic]]]: """Read the magic file""" with open(filename, encoding="utf-8") as f: data = json.load(f) - headers = sorted((_create_puremagic(x) for x in data["headers"]), key=lambda x: x.byte_match) - footers = sorted((_create_puremagic(x) for x in data["footers"]), key=lambda x: x.byte_match) - extensions = [_create_puremagic(x) for x in data["extension_only"]] + headers = sorted((create_puremagic(x) for x in data["headers"]), key=lambda x: x.byte_match) + footers = sorted((create_puremagic(x) for x in data["footers"]), key=lambda x: x.byte_match) + extensions = [create_puremagic(x) for x in data["extension_only"]] multi_part_extensions = {} for file_match, option_list in data["multi-part"].items(): - multi_part_extensions[unhexlify(file_match.encode("ascii"))] = [_create_puremagic(x) for x in option_list] + multi_part_extensions[unhexlify(file_match.encode("ascii"))] = [create_puremagic(x) for x in option_list] return headers, footers, extensions, multi_part_extensions -def _create_puremagic(x: list) -> PureMagic: +def create_puremagic(x: list) -> PureMagic: return PureMagic( byte_match=unhexlify(x[0].encode("ascii")), offset=x[1], @@ -100,10 +93,10 @@ def _create_puremagic(x: list) -> PureMagic: ) -magic_header_array, magic_footer_array, extension_only_array, multi_part_dict = _magic_data() +magic_header_array, magic_footer_array, extension_only_array, multi_part_dict = magic_data() -def _max_lengths() -> tuple[int, int]: +def get_max_lengths() -> tuple[int, int]: """The length of the largest magic string + its offset""" max_header_length = max([len(x.byte_match) + x.offset for x in magic_header_array]) max_footer_length = max([len(x.byte_match) + abs(x.offset) for x in magic_footer_array]) @@ -118,10 +111,10 @@ def _max_lengths() -> tuple[int, int]: return max_header_length, max_footer_length -max_head, max_foot = _max_lengths() +max_head, max_foot = get_max_lengths() -def _confidence(matches, ext=None) -> list[PureMagicWithConfidence]: +def determine_confidence(matches, ext=None) -> list[PureMagicWithConfidence]: """Rough confidence based on string length and file extension""" results = [] for match in matches: @@ -140,7 +133,7 @@ def _confidence(matches, ext=None) -> list[PureMagicWithConfidence]: return sorted(results, key=lambda x: (x.confidence, len(x.byte_match)), reverse=True) -def _identify_all(header: bytes, footer: bytes, ext=None) -> list[PureMagicWithConfidence]: +def identify_all(header: bytes, footer: bytes, ext=None) -> list[PureMagicWithConfidence]: """Attempt to identify 'data' by its magic numbers""" # Capture the length of the data @@ -194,16 +187,16 @@ def _identify_all(header: bytes, footer: bytes, ext=None) -> list[PureMagicWithC ) matches.extend(list(new_matches)) - return _confidence(matches, ext) + return determine_confidence(matches, ext) -def _magic(header: bytes, footer: bytes, mime: bool, ext=None, filename=None) -> str: +def perform_magic(header: bytes, footer: bytes, mime: bool, ext=None, filename=None) -> str: """Discover what type of file it is based on the incoming string""" if not header: raise ValueError("Input was empty") - infos = _identify_all(header, footer, ext) + infos = identify_all(header, footer, ext) if filename and os.getenv("PUREMAGIC_DEEPSCAN") != "0": - results = _run_deep_scan(infos, filename, header, footer, raise_on_none=True) + results = run_deep_scan(infos, filename, header, footer, raise_on_none=True) if results: if results[0].extension == "": raise PureError("Could not identify file") @@ -218,7 +211,7 @@ def _magic(header: bytes, footer: bytes, mime: bool, ext=None, filename=None) -> return info.extension if not isinstance(info.extension, list) else info[0].extension -def _file_details(filename: os.PathLike | str) -> tuple[bytes, bytes]: +def file_details(filename: os.PathLike | str) -> tuple[bytes, bytes]: """Grab the start and end of the file""" if not os.path.isfile(filename): raise PureError("Not a regular file") @@ -232,12 +225,12 @@ def _file_details(filename: os.PathLike | str) -> tuple[bytes, bytes]: return head, foot -def _string_details(string): +def string_details(string): """Grab the start and end of the string""" return string[:max_head], string[-max_foot:] -def _stream_details(stream): +def stream_details(stream): """Grab the start and end of the stream""" head = stream.read(max_head) try: @@ -281,8 +274,8 @@ def from_file(filename: os.PathLike | str, mime: bool = False) -> str: :return: guessed extension or mime """ - head, foot = _file_details(filename) - return _magic(head, foot, mime, ext_from_filename(filename), filename=filename) + head, foot = file_details(filename) + return perform_magic(head, foot, mime, ext_from_filename(filename), filename=filename) def from_string(string: str | bytes, mime: bool = False, filename: os.PathLike | str | None = None) -> str: @@ -298,9 +291,9 @@ def from_string(string: str | bytes, mime: bool = False, filename: os.PathLike | """ if isinstance(string, str): string = string.encode("utf-8") - head, foot = _string_details(string) + head, foot = string_details(string) ext = ext_from_filename(filename) if filename else None - return _magic(head, foot, mime, ext) + return perform_magic(head, foot, mime, ext) def from_stream(stream, mime: bool = False, filename: os.PathLike | str | None = None) -> str: @@ -314,9 +307,9 @@ def from_stream(stream, mime: bool = False, filename: os.PathLike | str | None = :param filename: original filename :return: guessed extension or mime """ - head, foot = _stream_details(stream) + head, foot = stream_details(stream) ext = ext_from_filename(filename) if filename else None - return _magic(head, foot, mime, ext) + return perform_magic(head, foot, mime, ext) def magic_file(filename: os.PathLike | str) -> list[PureMagicWithConfidence]: @@ -327,16 +320,16 @@ def magic_file(filename: os.PathLike | str) -> list[PureMagicWithConfidence]: :param filename: path to file :return: list of possible matches, highest confidence first """ - head, foot = _file_details(filename) + head, foot = file_details(filename) if not head: raise ValueError("Input was empty") try: - info = _identify_all(head, foot, ext_from_filename(filename)) + info = identify_all(head, foot, ext_from_filename(filename)) except PureError: info = [] info.sort(key=lambda x: x.confidence, reverse=True) if os.getenv("PUREMAGIC_DEEPSCAN") != "0": - return _run_deep_scan(info, filename, head, foot, raise_on_none=False) + return run_deep_scan(info, filename, head, foot, raise_on_none=False) return info @@ -352,9 +345,9 @@ def magic_string(string, filename: os.PathLike | str | None = None) -> list[Pure """ if not string: raise ValueError("Input was empty") - head, foot = _string_details(string) + head, foot = string_details(string) ext = ext_from_filename(filename) if filename else None - info = _identify_all(head, foot, ext) + info = identify_all(head, foot, ext) info.sort(key=lambda x: x.confidence, reverse=True) return info @@ -371,16 +364,16 @@ def magic_stream( :param filename: original filename :return: list of possible matches, highest confidence first """ - head, foot = _stream_details(stream) + head, foot = stream_details(stream) if not head: raise ValueError("Input was empty") ext = ext_from_filename(filename) if filename else None - info = _identify_all(head, foot, ext) + info = identify_all(head, foot, ext) info.sort(key=lambda x: x.confidence, reverse=True) return info -def _single_deep_scan( +def single_deep_scan( bytes_match: bytes | bytearray | None, filename: os.PathLike | str, head=None, @@ -397,9 +390,8 @@ def _single_deep_scan( case pdf_scanner.match_bytes: return pdf_scanner.main(filename, head, foot) case ( - sndhdr_scanner.aif_match_bytes - | sndhdr_scanner.wav_match_bytes - | sndhdr_scanner.au_match_bytes + sndhdr_scanner.hcom_match_bytes + | sndhdr_scanner.fssd_match_bytes | sndhdr_scanner.sndr_match_bytes ): # sndr is a loose confidence and other results may be better @@ -407,7 +399,7 @@ def _single_deep_scan( if result and result.confidence > confidence: return result - # First match wins, so text_scanner should always be last + # The first match wins, so text_scanner should always be the last for scanner in (pdf_scanner, python_scanner, json_scanner): result = scanner.main(filename, head, foot) if result: @@ -415,7 +407,7 @@ def _single_deep_scan( return None -def _catch_all_deep_scan( +def catch_all_deep_scan( filename: os.PathLike | str, head=None, foot=None, @@ -427,7 +419,7 @@ def _catch_all_deep_scan( return text_scanner.main(filename, head, foot) -def _run_deep_scan( +def run_deep_scan( matches: list[PureMagicWithConfidence], filename: os.PathLike | str, head=None, @@ -436,7 +428,7 @@ def _run_deep_scan( ): if not matches or matches[0].byte_match == b"": try: - result = _single_deep_scan(None, filename, head, foot) + result = single_deep_scan(None, filename, head, foot) except Exception: pass else: @@ -452,7 +444,7 @@ def _run_deep_scan( ) ] try: - result = _catch_all_deep_scan(filename, head, foot) + result = catch_all_deep_scan(filename, head, foot) except Exception: pass else: @@ -464,7 +456,7 @@ def _run_deep_scan( for pure_magic_match in matches: # noinspection PyBroadException try: - result = _single_deep_scan(pure_magic_match.byte_match, filename, head, foot, pure_magic_match.confidence) + result = single_deep_scan(pure_magic_match.byte_match, filename, head, foot, pure_magic_match.confidence) except Exception: continue if result: @@ -528,66 +520,5 @@ def command_line_entry(*args): print(f"\tOffset: {result.offset}\n") -imghdr_bug_for_bug = { # Special cases where imghdr is probably incorrect. - b"______Exif": "jpeg", - b"______JFIF": "jpeg", - b"II": "tiff", - b"II\\x2a\\x00": "tiff", - b"MM": "tiff", - b"MM\\x00\\x2a": "tiff", -} - - -def what(file: os.PathLike | str | None, h: bytes | None = None, imghdr_strict: bool = True) -> str | None: - """A drop-in replacement for `imghdr.what()` which was removed from the standard - library in Python 3.13. - - Usage: - ```python - # Replace... - from imghdr import what - - # with... - from puremagic import what - - # --- - # Or replace... - import imghdr - - ext = imghdr.what(...) - # with... - import puremagic - - ext = puremagic.what(...) - ``` - imghdr documentation: https://docs.python.org/3.12/library/imghdr.html - imghdr source code: https://github.com/python/cpython/blob/3.12/Lib/imghdr.py - - imghdr_strict enables bug-for-bug compatibility between imghdr.what() and puremagic.what() when the imghdr returns - a match but puremagic returns None. We believe that imghdr is delivering a "false positive" in each of these - scenarios, but we want puremagic.what()'s default behavior to match imghdr.what()'s false positives so we do not - break existing applications. - - If imghdr_strict is True (the default) then a lookup will be done to deliver a matching result on all known false - positives. If imghdr_strict is False then puremagic's algorithms will determine the image type. True is more - compatible while False is more correct. - - NOTE: This compatibility effort only deals false positives, and we are not interested to track the opposite - situation where puremagic's deliver a match while imghdr would have returned None. Also, puremagic.what() can - recognize many more file types than the twelve image file types that imghdr focused on. - """ - if isinstance(h, str): - raise TypeError("h must be bytes, not str. Consider using bytes.fromhex(h)") - if h and imghdr_strict: - ext = imghdr_bug_for_bug.get(h) - if ext: - return ext - try: - ext = (from_string(h) if h else from_file(file or "")).lstrip(".") - except PureError: - return None # imghdr.what() returns None if it cannot find a match. - return imghdr_exts.get(ext, ext) - - if __name__ == "__main__": # pragma: no cover command_line_entry() diff --git a/puremagic/scanners/sndhdr_scanner.py b/puremagic/scanners/sndhdr_scanner.py index 310f695..63b96d6 100644 --- a/puremagic/scanners/sndhdr_scanner.py +++ b/puremagic/scanners/sndhdr_scanner.py @@ -1,13 +1,16 @@ -"""Scanner for audio file formats, replacing the functionality of the legacy sndhdr module.""" +""" +Scanner for audio file formats, replacing the functionality of the legacy sndhdr module. + +Other formats are already handled via standard magic_data logic. +""" import struct from typing import Optional from puremagic.scanners.helpers import Match -aif_match_bytes = b"FORM" # AIFC/AIFF files start with "FORM" -wav_match_bytes = b"RIFF" # WAV files start with "RIFF" -au_match_bytes = b".snd" # AU files start with ".snd" +fssd_match_bytes = b"FSSD" +hcom_match_bytes = b"HCOM" sndr_match_bytes = b"\0\0" @@ -16,51 +19,6 @@ def get_short_le(b: bytes) -> int: return struct.unpack(" Optional[Match]: - """Test for AIFC/AIFF format.""" - if not head.startswith(b"FORM"): - return None - - match head[8:12]: - case b"AIFC": - return Match( - extension=".aifc", - name="Audio Interchange File Format (Compressed)", - mime_type="audio/x-aiff", - confidence=1.0, - ) - case b"AIFF": - # Check the filename to determine whether to use .aif or .aiff - # For test compatibility, we'll use .aif as the default - return Match( - extension=".aif", - name="Audio Interchange File Format", - mime_type="audio/x-aiff", - confidence=1.0, - ) - case _: - return None - - -def test_au(head: bytes) -> Optional[Match]: - """Test for AU format.""" - if head.startswith(b".snd"): - return Match( - extension=".au", - name="Sun/NeXT Audio File", - mime_type="audio/basic", - confidence=1.0, - ) - elif head[:4] in (b"\0ds.", b"dns."): - return Match( - extension=".au", - name="Sun/NeXT Audio File (Little Endian)", - mime_type="audio/basic", - confidence=1.0, - ) - return None - - def test_hcom(head: bytes) -> Optional[Match]: """Test for HCOM format.""" if head[65:69] == b"FSSD" and head[128:132] == b"HCOM": @@ -72,56 +30,16 @@ def test_hcom(head: bytes) -> Optional[Match]: ) return None - -def test_wav(head: bytes) -> Optional[Match]: - """Test for WAV format.""" - # Check for RIFF/WAVE/fmt header structure - if head.startswith(b"RIFF") and head[8:12] == b"WAVE" and head[12:16] == b"fmt ": - return Match( - extension=".wav", - name="WAVE Audio File", - mime_type="audio/x-wav", - confidence=1.0, - ) - return None - - -def test_8svx(head: bytes) -> Optional[Match]: - """Test for 8SVX format.""" - if head.startswith(b"FORM") and head[8:12] == b"8SVX": - return Match( - extension=".8svx", - name="Amiga 8SVX Audio File", - mime_type="audio/x-8svx", - confidence=1.0, - ) - return None - - -def test_sndr(head: bytes) -> Optional[Match]: - """Test for SNDR format.""" - # This format is very specific and rare, so we need to be more strict - # The original sndhdr.py checks for '\0\0' at the start and a rate between 4000 and 25000 - # We'll add more checks to avoid false positives - if head.startswith(b"\0\0"): - try: - rate = get_short_le(head[2:4]) - if 4000 <= rate <= 48000: - return Match( - extension=".sndr", - name="Macintosh SNDR Resource", - mime_type="audio/x-sndr", - confidence=0.1, # Lower confidence due to simple format - ) - except (IndexError, struct.error): - pass - return None - - def main(_, head: bytes, __) -> Optional[Match]: - for test_func in [test_wav, test_aifc, test_au, test_hcom, test_8svx, test_sndr]: - result = test_func(head) - if result: - return result - - return None + try: + rate = get_short_le(head[2:4]) + if 4000 <= rate <= 48000: + return Match( + extension=".sndr", + name=f"Macintosh SNDR Resource - {rate} rate", + mime_type="audio/x-sndr", + confidence=0.1, # Lower confidence due to simple format + ) + except (IndexError, struct.error): + pass + return test_hcom(head) diff --git a/test/test_common_extensions.py b/test/test_common_extensions.py index a02e5d2..faafdf3 100644 --- a/test/test_common_extensions.py +++ b/test/test_common_extensions.py @@ -217,7 +217,7 @@ def test_cmd_options(): def test_bad_magic_input(): """Test bad magic input""" with pytest.raises(ValueError): - puremagic.main._magic(None, None, None) + puremagic.main.perform_magic(None, None, None) def test_fake_file(): diff --git a/test/test_main.py b/test/test_main.py deleted file mode 100644 index 649b533..0000000 --- a/test/test_main.py +++ /dev/null @@ -1,158 +0,0 @@ -# -*- coding: utf-8 -*- -from pathlib import Path -from sys import version_info -from warnings import filterwarnings - -import pytest - -from puremagic.main import what - -filterwarnings("ignore", message="'imghdr' is deprecated") -try: # imghdr was removed from the standard library in Python 3.13 - from imghdr import what as imghdr_what -except ModuleNotFoundError: - imghdr_what = None # type: ignore[assignment] - -file_tests = ["bmp", "gif", "jpg", "png", "tif", "webp"] - -here = Path(__file__).resolve().parent - - -@pytest.mark.skipif(imghdr_what is None, reason="imghdr was removed from the standard library in Python 3.13") -@pytest.mark.parametrize("file", file_tests) -def test_what_from_file(file, h=None): - """Run each test with a path string and a pathlib.Path.""" - file = str(here / f"resources/images/test.{file}") - assert what(file, h) == imghdr_what(file, h) - file = Path(file).resolve() - assert what(file, h) == imghdr_what(file, h) - - -@pytest.mark.skipif(imghdr_what is None, reason="imghdr was removed from the standard library in Python 3.13") -def test_what_from_file_none(): - file = str(here / "resources/fake_file") - assert what(file) == imghdr_what(file) is None - file = Path(file).resolve() - assert what(file, None) == imghdr_what(file, None) is None - - -@pytest.mark.skipif(imghdr_what is None, reason="imghdr was removed from the standard library in Python 3.13") -def test_what_from_string_no_str(h="string"): - """what() should raise a TypeError if h is a string.""" - with pytest.raises(TypeError): - imghdr_what(None, h) - with pytest.raises(TypeError) as excinfo: - what(None, h) - assert str(excinfo.value) == "h must be bytes, not str. Consider using bytes.fromhex(h)" - - -string_tests = [ - ("bmp", "424d"), - ("bmp", "424d787878785c3030305c303030"), - ("bmp", b"BM"), - ("exr", "762f3101"), - ("exr", b"\x76\x2f\x31\x01"), - ("exr", b"v/1\x01"), - ("gif", "474946383761"), - ("gif", "474946383961"), - ("gif", b"GIF87a"), - ("gif", b"GIF89a"), - ("pbm", b"P1 "), - ("pbm", b"P1\n"), - ("pbm", b"P1\r"), - ("pbm", b"P1\t"), - ("pbm", b"P4 "), - ("pbm", b"P4\n"), - ("pbm", b"P4\r"), - ("pbm", b"P4\t"), - ("pgm", b"P2 "), - ("pgm", b"P2\n"), - ("pgm", b"P2\r"), - ("pgm", b"P2\t"), - ("pgm", b"P5 "), - ("pgm", b"P5\n"), - ("pgm", b"P5\r"), - ("pgm", b"P5\t"), - ("png", "89504e470d0a1a0a"), - ("png", b"\211PNG\r\n\032\n"), - ("png", b"\x89PNG\r\n\x1a\n"), - ("ppm", b"P3 "), - ("ppm", b"P3\n"), - ("ppm", b"P3\r"), - ("ppm", b"P3\t"), - ("ppm", b"P6 "), - ("ppm", b"P6\n"), - ("ppm", b"P6\r"), - ("ppm", b"P6\t"), - ("rast", "59A66A95"), - ("rast", b"\x59\xa6\x6a\x95"), - ("rgb", "01da"), - ("rgb", b"\x01\xda"), - ("tiff", "49492a00"), - ("tiff", "4d4d002a"), - ("tiff", "4d4d002b"), - ("tiff", b"II*\x00"), # bytes.fromhex('49492a00') - ("tiff", b"MM\x00*"), # bytes.fromhex('4d4d002a') - ("tiff", b"MM\x00+"), # bytes.fromhex('4d4d002b') - ("webp", b"RIFF____WEBP"), - ("xbm", b"#define "), - (None, "decafbad"), - (None, b"decafbad"), -] - - -@pytest.mark.skipif(imghdr_what is None, reason="imghdr was removed from the standard library in Python 3.13") -@pytest.mark.parametrize("expected, h", string_tests) -def test_what_from_string(expected, h): - if isinstance(h, str): # In imgdir.what() h must be bytes, not str. - h = bytes.fromhex(h) # ex. "474946383761" --> b"GIF87a" - assert imghdr_what(None, h) == what(None, h) == expected - - -@pytest.mark.skipif(imghdr_what is None, reason="imghdr was removed from the standard library in Python 3.13") -@pytest.mark.parametrize( - "expected, h", - [ - ("jpeg", "ffd8ffdb"), - ("jpeg", b"\xff\xd8\xff\xdb"), - ], -) -def test_what_from_string_py311(expected, h): - """ - These tests fail with imghdr on Python < 3.11. - """ - if isinstance(h, str): # In imgdir.what() h must be bytes, not str. - h = bytes.fromhex(h) - assert what(None, h) == expected - if version_info < (3, 11): # TODO: Document these imghdr fails - expected = None - assert imghdr_what(None, h) == expected - - -@pytest.mark.skipif(imghdr_what is None, reason="imghdr was removed from the standard library in Python 3.13") -@pytest.mark.parametrize( - "expected, h", - [ - ("jpeg", b"______Exif"), - ("jpeg", b"______Exif"), - ("jpeg", b"______JFIF"), - ("jpeg", b"______JFIF"), - ("tiff", "4949"), - ("tiff", "49495c7832615c783030"), - ("tiff", "4d4d"), - ("tiff", "4d4d5c7830305c783261"), - ("tiff", b"II"), # bytes.fromhex('4949') - ("tiff", b"II\\x2a\\x00"), # bytes.fromhex('49495c7832615c783030') - ("tiff", b"MM"), # bytes.fromhex('4d4d') - ("tiff", b"MM\\x00\\x2a"), # bytes.fromhex('4d4d5c7830305c783261') - ], -) -@pytest.mark.parametrize("imghdr_strict", [True, False]) -def test_what_from_string_imghdr_strict(expected, h, imghdr_strict): - """ - These tests pass with imghdr but fail with puremagic. - """ - if isinstance(h, str): # In imgdir.what() h must be bytes, not str. - h = bytes.fromhex(h) - assert imghdr_what(None, h) == expected - assert what(None, h, imghdr_strict) == (expected if imghdr_strict else None) diff --git a/test/test_scanners.py b/test/test_scanners.py index 1e1521a..f3edd0f 100644 --- a/test/test_scanners.py +++ b/test/test_scanners.py @@ -62,51 +62,15 @@ def test_json_scanner(): def test_sndhdr_scanner(): - # Test the sndhdr scanner with WAV file - wav_file = AUDIO_DIR / "test.wav" - with open(wav_file, "rb") as f: - head = f.read(512) - result = sndhdr_scanner.test_wav(head) - puremagic.magic_file(wav_file) - assert result is not None - assert result.extension == ".wav" - assert result.name == "WAVE Audio File" - assert result.mime_type == "audio/x-wav" - assert result.confidence == 1.0 - - # Test the sndhdr scanner with AIFF file - aif_file = AUDIO_DIR / "test.aif" - with open(aif_file, "rb") as f: - head = f.read(512) - result = sndhdr_scanner.test_aifc(head) - puremagic.magic_file(aif_file) - assert result is not None - assert result.extension == ".aif" - assert result.name == "Audio Interchange File Format" - assert result.mime_type == "audio/x-aiff" - assert result.confidence == 1.0 - - # Test the main function with both files - with open(wav_file, "rb") as f: - wav_head = f.read(512) - result = sndhdr_scanner.main(wav_file, wav_head, b"") - assert result is not None - assert result.extension == ".wav" - - with open(aif_file, "rb") as f: - aif_head = f.read(512) - result = sndhdr_scanner.main(aif_file, aif_head, b"") - assert result is not None - assert result.extension == ".aif" # Test the sndhdr scanner with sndr file sndr_file = AUDIO_DIR / "test.sndr" with open(sndr_file, "rb") as f: head = f.read(512) - result = sndhdr_scanner.test_sndr(head) - puremagic.magic_file(aif_file) + result = sndhdr_scanner.main(None, head, None) + puremagic.magic_file(sndr_file) assert result is not None assert result.extension == ".sndr" - assert result.name == "Macintosh SNDR Resource" + assert result.name.startswith("Macintosh SNDR Resource") assert result.mime_type == "audio/x-sndr" assert result.confidence == 0.1 From 971c780ea18c5ecb396bf07632d348331c767c2c Mon Sep 17 00:00:00 2001 From: Chris Griffith Date: Sat, 5 Jul 2025 21:25:40 -0500 Subject: [PATCH 7/8] Add dynamic checks --- puremagic/magic_data.json | 3 - puremagic/main.py | 48 +++--- puremagic/scanners/json_scanner.py | 2 +- puremagic/scanners/python_scanner.py | 87 ++++++++++- puremagic/scanners/sndhdr_scanner.py | 1 + puremagic/scanners/text_scanner.py | 222 ++++++++++++++++++++++++--- test/resources/system/test_list.json | 1 + test/test_common_extensions.py | 3 +- test/test_scanners.py | 11 +- 9 files changed, 322 insertions(+), 56 deletions(-) create mode 100644 test/resources/system/test_list.json diff --git a/puremagic/magic_data.json b/puremagic/magic_data.json index 381c768..8be4db9 100644 --- a/puremagic/magic_data.json +++ b/puremagic/magic_data.json @@ -1747,9 +1747,6 @@ ["0a0d0d0a", 0, ".pcapng", "application/octet-stream", "pcapng capture file"], ["05000000", 0, "", "", "INFO2 Windows recycle bin"], ["34cdb2a1", 0, "", "", "Tcpdump capture file"], - ["fffe0000", 0, "", "", "UTF-32|UCS-4 file"], - ["efbbbf", 0, "", "", "UTF8 file"], - ["feff", 0, "", "", "UTF-16|UCS-2 file"], ["6f3c", 0, "", "", "SMS text (SIM)"], ["aced", 0, "", "", "Java serialization data"], [ diff --git a/puremagic/main.py b/puremagic/main.py index 41c30b4..2dc0438 100644 --- a/puremagic/main.py +++ b/puremagic/main.py @@ -22,7 +22,7 @@ import puremagic if os.getenv("PUREMAGIC_DEEPSCAN") != "0": - from puremagic.scanners import (zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner, sndhdr_scanner) + from puremagic.scanners import zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner, sndhdr_scanner __author__ = "Chris Griffith" __version__ = "2.0.0b5" @@ -68,6 +68,10 @@ class PureError(LookupError): """Do not have that type of file in our databanks""" +class PureValueError(ValueError): + """Invalid input""" + + def magic_data( filename: os.PathLike | str = os.path.join(here, "magic_data.json"), ) -> tuple[list[PureMagic], list[PureMagic], list[PureMagic], dict[bytes, list[PureMagic]]]: @@ -193,7 +197,7 @@ def identify_all(header: bytes, footer: bytes, ext=None) -> list[PureMagicWithCo def perform_magic(header: bytes, footer: bytes, mime: bool, ext=None, filename=None) -> str: """Discover what type of file it is based on the incoming string""" if not header: - raise ValueError("Input was empty") + raise PureValueError("Input was empty") infos = identify_all(header, footer, ext) if filename and os.getenv("PUREMAGIC_DEEPSCAN") != "0": results = run_deep_scan(infos, filename, header, footer, raise_on_none=True) @@ -322,7 +326,7 @@ def magic_file(filename: os.PathLike | str) -> list[PureMagicWithConfidence]: """ head, foot = file_details(filename) if not head: - raise ValueError("Input was empty") + raise PureValueError("Input was empty") try: info = identify_all(head, foot, ext_from_filename(filename)) except PureError: @@ -344,7 +348,7 @@ def magic_string(string, filename: os.PathLike | str | None = None) -> list[Pure :return: list of possible matches, highest confidence first """ if not string: - raise ValueError("Input was empty") + raise PureValueError("Input was empty") head, foot = string_details(string) ext = ext_from_filename(filename) if filename else None info = identify_all(head, foot, ext) @@ -366,7 +370,7 @@ def magic_stream( """ head, foot = stream_details(stream) if not head: - raise ValueError("Input was empty") + raise PureValueError("Input was empty") ext = ext_from_filename(filename) if filename else None info = identify_all(head, foot, ext) info.sort(key=lambda x: x.confidence, reverse=True) @@ -389,17 +393,13 @@ def single_deep_scan( return zip_scanner.main(filename, head, foot) case pdf_scanner.match_bytes: return pdf_scanner.main(filename, head, foot) - case ( - sndhdr_scanner.hcom_match_bytes - | sndhdr_scanner.fssd_match_bytes - | sndhdr_scanner.sndr_match_bytes - ): + case sndhdr_scanner.hcom_match_bytes | sndhdr_scanner.fssd_match_bytes | sndhdr_scanner.sndr_match_bytes: # sndr is a loose confidence and other results may be better result = sndhdr_scanner.main(filename, head, foot) if result and result.confidence > confidence: return result - # The first match wins, so text_scanner should always be the last + # The first match wins for scanner in (pdf_scanner, python_scanner, json_scanner): result = scanner.main(filename, head, foot) if result: @@ -446,7 +446,7 @@ def run_deep_scan( try: result = catch_all_deep_scan(filename, head, foot) except Exception: - pass + raise else: if result: return [result] @@ -491,19 +491,29 @@ def command_line_entry(*args): help="Return the mime type instead of file type", ) parser.add_argument("-v", "--verbose", action="store_true", dest="verbose", help="Print verbose output") - parser.add_argument("files", nargs="+") + parser.add_argument("files", nargs="+", type=Path) parser.add_argument("--version", action="version", version=puremagic.__version__) args = parser.parse_args(args if args else sys.argv[1:]) for fn in args.files: - if not os.path.exists(fn): + if not fn.exists(): print(f"File '{fn}' does not exist!") continue - try: - print(f"'{fn}' : {from_file(fn, args.mime)}") - except PureError: - print(f"'{fn}' : could not be Identified") - continue + if fn.is_dir(): + for file in fn.iterdir(): + if not file.is_file(): + continue + try: + print(f"'{file}' : {from_file(file, args.mime)}") + except (PureError, PureValueError): + print(f"'{file}' : could not be Identified") + continue + else: + try: + print(f"'{fn}' : {from_file(fn, args.mime)}") + except (PureError, PureValueError): + print(f"'{fn}' : could not be Identified") + continue if args.verbose: matches = magic_file(fn) print(f"Total Possible Matches: {len(matches)}") diff --git a/puremagic/scanners/json_scanner.py b/puremagic/scanners/json_scanner.py index 04ef3b0..58953e5 100644 --- a/puremagic/scanners/json_scanner.py +++ b/puremagic/scanners/json_scanner.py @@ -7,7 +7,7 @@ def main(file_path: os.PathLike | str, head: bytes, foot: bytes) -> Match | None: - if not (head.strip().startswith(b"{") and foot.strip().endswith(b"}")): + if not (head.strip().startswith(b"{") and foot.strip().endswith(b"}")) and not (head.strip().startswith(b"[") and foot.strip().endswith(b"]")): return None try: with open(file_path, "rb") as file: diff --git a/puremagic/scanners/python_scanner.py b/puremagic/scanners/python_scanner.py index 4ff602d..0293a71 100644 --- a/puremagic/scanners/python_scanner.py +++ b/puremagic/scanners/python_scanner.py @@ -1,10 +1,43 @@ import ast import os +import re from puremagic.scanners.helpers import Match +python_common_keywords = [ + re.compile("\bdef\b"), + re.compile("\bclass\b"), + re.compile("\bimport\b"), + re.compile("\belif\b"), + re.compile("\bwhile\b"), + re.compile("\bexcept\b"), + re.compile("\bfinally\b"), + re.compile("\breturn\b"), + re.compile("\byield\b"), + re.compile("\blambda\b"), + re.compile("\bTrue\b"), + re.compile("\bFalse\b"), + re.compile("\bNone\b"), + re.compile("\b__version__\b"), + re.compile("__main__"), +] -def main(file_path: os.PathLike | str, *_, **__) -> Match | None: +python_patterns = [ + re.compile(r"\bdef\s+\w+\s*\("), # Function definitions + re.compile(r"\bclass\s+\w+\s*[\(:]"), # Class definitions + re.compile(r"\bimport\s+\w+"), # Import statements + re.compile(r"\bfrom\s+\w+\s+import"), # From-import statements + re.compile(r"\bif\s+.*:"), # If statements + re.compile(r"\bfor\s+\w+\s+in\s+.*:"), # For loops + re.compile(r"\bwhile\s+.*:"), # While loops + re.compile(r"\btry\s*:"), # Try blocks + re.compile(r"\.append\("), # Method calls + re.compile(r"\.join\("), # String operations + re.compile(r"print\s*\("), # Print statements +] + + +def main(file_path: os.PathLike | str, _, __) -> Match | None: file_size = os.path.getsize(file_path) if file_size > 1_000_000: return None @@ -12,14 +45,62 @@ def main(file_path: os.PathLike | str, *_, **__) -> Match | None: return None try: - with open(file_path, "r") as file: + with open(file_path, "r", encoding="utf-8") as file: content = file.read() + + # Parse to ensure it's valid Python syntax ast.parse(content) - except Exception: + + if not str(file_path).endswith(".py"): + if not is_substantial_python_code(content): + return None + + except (SyntaxError, UnicodeDecodeError, PermissionError, OSError): return None + return Match( extension=".py", name="Python Script", mime_type="text/x-python", confidence=1.0, ) + + +def is_substantial_python_code(content: str) -> bool: + """ + Check if the content contains substantial Python code indicators. + Returns True if the content appears to be meaningful Python code. + """ + # Remove comments and strings to focus on actual code + content_lines = content.splitlines() + code_lines = [] + + for line in content_lines: + # Remove comments (basic approach - doesn't handle strings containing #) + line = line.split("#")[0].strip() + if line: # Non-empty after removing comments + code_lines.append(line) + + # If too few substantial lines, it's probably not real code + if len(code_lines) < 2: + return False + + code_text = " ".join(code_lines) + + # Check for Python keywords that indicate actual code + + # Count how many keywords are present + keyword_count = 0 + for keyword in python_common_keywords: + if keyword.search(code_text): + keyword_count += 1 + + # Require at least 2 keywords for substantial code + if keyword_count < 2: + return False + + # Check for common Python patterns + for pattern in python_patterns: + if pattern.search(code_text): + return True + return False diff --git a/puremagic/scanners/sndhdr_scanner.py b/puremagic/scanners/sndhdr_scanner.py index 63b96d6..622b65b 100644 --- a/puremagic/scanners/sndhdr_scanner.py +++ b/puremagic/scanners/sndhdr_scanner.py @@ -30,6 +30,7 @@ def test_hcom(head: bytes) -> Optional[Match]: ) return None + def main(_, head: bytes, __) -> Optional[Match]: try: rate = get_short_le(head[2:4]) diff --git a/puremagic/scanners/text_scanner.py b/puremagic/scanners/text_scanner.py index 75d48ce..0a1a25e 100644 --- a/puremagic/scanners/text_scanner.py +++ b/puremagic/scanners/text_scanner.py @@ -1,32 +1,208 @@ -import os +import csv import re +import os from puremagic.scanners.helpers import Match -crlf_pattern = re.compile(rb"\r\n") -lf_pattern = re.compile(rb"(? tuple[str, str]: + try: + return unicode.decode("ascii"), "ascii" + except UnicodeDecodeError: + pass + for encoding in {"utf-8", "cp1252"}: + try: + return unicode.decode(encoding), encoding + except UnicodeDecodeError: + pass + raise TypeError("No encoding found") + + +def csv_check(file_path, text) -> Match | None: + """ + Validate if content appears to be CSV format. + """ + if not text or len(text.strip()) == 0: + return None + + # Split the text into lines + lines = text.splitlines() + if len(lines) < 2: # Need at least 2 lines to detect a pattern + # If filename ends with .csv, give it the benefit of the doubt + if str(file_path).lower().endswith('.csv'): + return Match( + ".csv", + "Comma-separated values (single line)", + "text/csv", + confidence=0.7 + ) + return None + + # Remove any blank lines + lines = [line for line in lines if line.strip()] + if len(lines) < 2: + return None + if len(lines) > 100: + lines = lines[:-1] # Remove last line in case it's been truncated + + # Try to determine the delimiter by checking common ones + potential_delimiters = [',', ';', '\t', '|', ':'] + delimiter_scores = {} + + for delimiter in potential_delimiters: + # Skip if delimiter isn't in the text + if delimiter not in text: + continue + + # Count fields in each line using this delimiter + field_counts = [len(line.split(delimiter)) for line in lines] + + # Calculate consistency score (higher is better) + if len(field_counts) >= 2: + # Check if most lines have the same number of fields + most_common_count = max(set(field_counts), key=field_counts.count) + matching_lines = sum(1 for count in field_counts if count == most_common_count) + consistency = matching_lines / len(field_counts) + + # More than one field required + if most_common_count > 1: + # Score based on consistency and number of fields + delimiter_scores[delimiter] = (consistency, most_common_count) + + # Try using csv module's Sniffer as a fallback + csv_sniffer_result = None + try: + dialect = csv.Sniffer().sniff(text, delimiters=''.join(potential_delimiters)) + csv_sniffer_result = dialect.delimiter + except Exception: + pass + + # If csv.Sniffer found a delimiter, give it priority + if csv_sniffer_result and csv_sniffer_result in potential_delimiters: + best_delimiter = csv_sniffer_result + confidence = 0.95 + elif delimiter_scores: + # Find best delimiter based on consistency and field count + best_delimiter = max(delimiter_scores.items(), key=lambda x: (x[1][0], x[1][1]))[0] + consistency, field_count = delimiter_scores[best_delimiter] + + # Calculate confidence based on consistency and number of fields + confidence = 0.6 + (consistency * 0.3) + min(0.1, (field_count - 1) * 0.02) + else: + # No clear delimiter pattern found + return None + + # + # # Check for quotes that might indicate CSV + # has_quoted_fields = '"' in text and (f'"{best_delimiter}' in text or f'{best_delimiter}\"') + # + + delimiter_counts = [] + for line in lines: + delim_count = line.count(best_delimiter) + if delim_count == 0: + return None + delimiter_counts.append(delim_count) + + average = sum(delimiter_counts) / len(delimiter_counts) + + max_percentage = 5 / 100 + allowed_deviation = average * max_percentage + + for num in delimiter_counts: + if abs(num - average) > allowed_deviation: + return None + + # Boost confidence if filename ends with .csv + if str(file_path).lower().endswith('.csv'): + confidence = min(1.0, confidence + 0.1) + + # Return match with appropriate confidence + delimiter_name = { + ',': 'comma', + ';': 'semicolon', + '\t': 'tab', + '|': 'pipe', + ':': 'colon' + }.get(best_delimiter, best_delimiter) + + return Match( + ".csv", + f"{delimiter_name}-separated values", + "text/csv", + confidence=confidence + ) + +def file_ending_match(extension, text, mime, file_path): + return Match(extension, text, mime, confidence=1.0 if str(file_path).lower().endswith(extension) else 0.9) + +def dynamic_checks(text, file_path) -> Match | None: + text = text.strip() + if text.startswith("$MeshFormat"): + return file_ending_match(".msh", "Gmsh mesh format", "text/plain", file_path) + if "GenePix ArrayList" in text[:256]: + return file_ending_match(".gal", "Gal GenePix ArrayList", "text/plain", file_path) + if text.startswith("##gff-version"): + return file_ending_match(".gff", "GFF3", "text/plain", file_path) + if "GenePix Results" in text[:256]: + return file_ending_match(".gpr", "GenePix Results", "text/plain", file_path) + if "mzTab-version" in text[:256]: + if "mzTab-version 2" in text[:256]: + return file_ending_match(".mztab2", "mzTab version 2", "text/plain", file_path) + return file_ending_match(".mztab", "mzTab", "text/plain", file_path) + if text.startswith("***tesr"): + return file_ending_match(".tesr", "Neper tesr format", "text/plain", file_path) + if text.startswith("***tess"): + return file_ending_match(".tess", "Neper tess format", "text/plain", file_path) + if text.startswith("# PEFF "): + # consider adding r"# PEFF \d+.\d+" + return file_ending_match(".peff", "PSI Extended FASTA Format", "text/plain", file_path) + if text.startswith("ply") and "format ascii" in text[:128]: + return file_ending_match(".plyascii", "PLY mesh format", "text/plain", file_path) + if text.startswith("RBT_PARAMETER_FILE_V"): + return file_ending_match(".prm", "prm", "text/plain", file_path) + if "# vtk DataFile" in text[:256]: + return file_ending_match(".vtkascii", "vtk", "text/plain", file_path) + if " Match | None: with open(file_path, "rb") as file: head = file.read(1_000_000) - if len(head) < 8: - return Match("", "very short file", "application/octet-stream", confidence=0.5) - try: - head.decode("ascii") - except UnicodeDecodeError: - return Match("", "data", "application/octet-stream", confidence=0.5) - crlf = len(crlf_pattern.findall(head)) - lf = len(lf_pattern.findall(head)) - cr = len(cr_pattern.findall(head)) - if crlf + lf + cr == 0: - return Match(".txt", "ASCII text", "text/plain", confidence=0.9) - - if crlf > lf and crlf > cr: - return Match(".txt", "ASCII text, with CRLF line terminators", "text/plain", confidence=0.9) - if cr > lf and cr > crlf: - return Match(".txt", "ASCII text, with CR line terminators", "text/plain", confidence=0.9) - if lf > cr and lf > crlf: - return Match(".txt", "ASCII text, with LF line terminators", "text/plain", confidence=0.9) - return Match(".txt", "ASCII text", "text/plain", confidence=0.9) + + if len(head) < 8: + return Match("", "very short file", "application/octet-stream", confidence=0.5) + + try: + text, encoding = decode_any(head) + except TypeError: + return Match("", "data", "application/octet-stream", confidence=0.5) + + if csv_match := csv_check(file_path, text): + return csv_match + + if obscure_match := dynamic_checks(text, file_path): + return obscure_match + + crlf = len(crlf_pattern.findall(text)) + lf = len(lf_pattern.findall(text)) + cr = len(cr_pattern.findall(text)) + if crlf + lf + cr == 0: + return Match(".txt", f"{encoding} text", "text/plain", confidence=0.9) + + if crlf > lf and crlf > cr: + return Match(".txt", f"{encoding} text, with CRLF line terminators", "text/plain", confidence=0.9) + if cr > lf and cr > crlf: + return Match(".txt", f"{encoding} text, with CR line terminators", "text/plain", confidence=0.9) + if lf > cr and lf > crlf: + return Match(".txt", f"{encoding} text, with LF line terminators", "text/plain", confidence=0.9) + return Match(".txt", f"{encoding} text", "text/plain", confidence=0.9) diff --git a/test/resources/system/test_list.json b/test/resources/system/test_list.json new file mode 100644 index 0000000..bace2a0 --- /dev/null +++ b/test/resources/system/test_list.json @@ -0,0 +1 @@ +[1] \ No newline at end of file diff --git a/test/test_common_extensions.py b/test/test_common_extensions.py index faafdf3..388e9b3 100644 --- a/test/test_common_extensions.py +++ b/test/test_common_extensions.py @@ -221,4 +221,5 @@ def test_bad_magic_input(): def test_fake_file(): - assert puremagic.magic_file(filename=Path(LOCAL_DIR, "resources", "fake_file"))[0].confidence == 0.5 + results = puremagic.magic_file(filename=Path(LOCAL_DIR, "resources", "fake_file")) + assert results[0].confidence == 0.5, results diff --git a/test/test_scanners.py b/test/test_scanners.py index f3edd0f..5352488 100644 --- a/test/test_scanners.py +++ b/test/test_scanners.py @@ -17,7 +17,7 @@ def test_text_scanner(): lr_file.write_bytes(sample_text.replace(b"\n", b"").replace(b"{ending}", b"\n")) results = puremagic.magic_file(lr_file) assert results[0].extension == ".txt" - assert results[0].name == "ASCII text, with LF line terminators" + assert results[0].name == "ascii text, with LF line terminators" assert results[0].mime_type == "text/plain" assert results[0].confidence == 0.9 @@ -25,15 +25,15 @@ def test_text_scanner(): crlf_file.write_bytes(sample_text.replace(b"\n", b"").replace(b"{ending}", b"\r\n")) results = puremagic.magic_file(crlf_file) assert results[0].extension == ".txt" - assert results[0].name == "ASCII text, with CRLF line terminators" + assert results[0].name == "ascii text, with CRLF line terminators" assert results[0].mime_type == "text/plain" assert results[0].confidence == 0.9 cr_file = OFFICE_DIR / "text_cr.txt" cr_file.write_bytes(sample_text.replace(b"\n", b"").replace(b"{ending}", b"\r")) results = puremagic.magic_file(cr_file) + assert results[0].name == "ascii text, with CR line terminators" assert results[0].extension == ".txt" - assert results[0].name == "ASCII text, with CR line terminators" assert results[0].mime_type == "text/plain" assert results[0].confidence == 0.9 @@ -41,10 +41,10 @@ def test_text_scanner(): def test_python_scanner(): # Test the Python scanner with a sample Python file py_file = SYSTEM_DIR / "test.py" - result = python_scanner.main(py_file) + result = python_scanner.main(py_file, None, None) magic_result = puremagic.magic_file(py_file) - assert result.confidence == magic_result[0].confidence assert result.extension == ".py" + assert result.confidence == magic_result[0].confidence assert result.name == "Python Script" assert result.mime_type == "text/x-python" assert result.confidence == 1.0 @@ -62,7 +62,6 @@ def test_json_scanner(): def test_sndhdr_scanner(): - # Test the sndhdr scanner with sndr file sndr_file = AUDIO_DIR / "test.sndr" with open(sndr_file, "rb") as f: From f886e81f721313762fc54cea183e1151a604b917 Mon Sep 17 00:00:00 2001 From: Andy Date: Thu, 18 Dec 2025 11:57:24 +0000 Subject: [PATCH 8/8] MPEG Audio Scanner (aka MP3 Scanner) (#122) --- .gitignore | 4 + puremagic/magic_data.json | 656 +++++---- puremagic/main.py | 16 +- puremagic/scanners/mpeg_audio_scanner.py | 1169 +++++++++++++++++ pyproject.toml | 8 + .../audio/test_mp3_vbr_info_128k_notags.mp3 | Bin 0 -> 52034 bytes .../test_mp3_vbr_xing_128k_3di_id3v1.mp3 | Bin 0 -> 52172 bytes .../audio/test_mp3_vbr_xing_128k_apev1.mp3 | Bin 0 -> 52282 bytes .../test_mp3_vbr_xing_128k_apev1_id3v1.mp3 | Bin 0 -> 52410 bytes ..._mp3_vbr_xing_128k_apev2_tagplus_id3v1.mp3 | Bin 0 -> 52524 bytes .../test_mp3_vbr_xing_128k_ext_id3v1.mp3 | Bin 0 -> 52162 bytes ...test_mp3_vbr_xing_128k_lyrics3v2_id3v1.mp3 | Bin 0 -> 55461 bytes .../audio/test_mp3_vbr_xing_128k_notags.mp3 | Bin 0 -> 52034 bytes ..._mp3_vbr_xing_128k_tagplus_apev2_id3v1.mp3 | Bin 0 -> 52634 bytes .../test_mp3_vbr_xing_128k_tagplus_id3v1.mp3 | Bin 0 -> 52389 bytes .../test_mpeg2_mp3_VBR_128k_id3v2_24.mp3 | Bin 0 -> 30599 bytes 16 files changed, 1610 insertions(+), 243 deletions(-) create mode 100644 puremagic/scanners/mpeg_audio_scanner.py create mode 100644 test/resources/audio/test_mp3_vbr_info_128k_notags.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_3di_id3v1.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_apev1.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_apev1_id3v1.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_apev2_tagplus_id3v1.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_ext_id3v1.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_lyrics3v2_id3v1.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_notags.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_tagplus_apev2_id3v1.mp3 create mode 100644 test/resources/audio/test_mp3_vbr_xing_128k_tagplus_id3v1.mp3 create mode 100644 test/resources/audio/test_mpeg2_mp3_VBR_128k_id3v2_24.mp3 diff --git a/.gitignore b/.gitignore index b096391..5588cfb 100644 --- a/.gitignore +++ b/.gitignore @@ -143,3 +143,7 @@ media static .idea/ + +# Ignore VS Code related files and folders +.vscode +*.code-workspace diff --git a/puremagic/magic_data.json b/puremagic/magic_data.json index 8be4db9..2e02c64 100644 --- a/puremagic/magic_data.json +++ b/puremagic/magic_data.json @@ -88,7 +88,7 @@ ["38535658", 8, ".iff", "audio/x-8svx", "IFF 8-Bit Sampled Voice"], ["4143424d", 8, ".iff", "application/x-iff", "Amiga Contiguous Bitmap"], ["414e424d", 8, ".iff", "application/x-iff", "IFF Animated Bitmap"], - ["414e494d", 8, ".iff", "application/x-iff", " IFF CEL Animation"], + ["414e494d", 8, ".iff", "application/x-iff", "IFF CEL Animation"], ["46415858", 8, ".iff", "application/x-iff", "IFF Facsimile Image"], ["46545854", 8, ".iff", "application/x-iff", "IFF Formatted Text"], ["534d5553", 8, ".iff", "application/x-iff", "IFF Facsimile Image"], @@ -170,242 +170,256 @@ ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) audio file"] ], "4944330200": [ - ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["425546", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["434E54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["434F4D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["435241", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["43524D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["455443", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["455155", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["47454F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["49504C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["4C4E4B", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["4D4349", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["4D4C4C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["504943", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["504F50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["524556", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["525641", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["534C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["535443", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["54414C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544250", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["54434D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["54434F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544352", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544441", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544459", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["54454E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544654", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["54494D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544B45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544C41", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544C45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544D54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544F41", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544F46", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544F4C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544F52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["544F54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545031", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545032", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545033", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545034", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545041", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545042", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545244", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["54524B", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545349", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545353", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545431", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545432", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545433", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545854", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["545945", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["554649", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["554C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["574146", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["574152", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["574153", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["57434D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["574350", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["575042", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"], - ["575858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.2.0 audio file"] + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["41454e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["425546", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["434e54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["434f4d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["435241", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["43524d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["455443", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["455155", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["47454f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["4c4e4b", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["4d4349", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["4d4c4c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["504943", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["504f50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["524556", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["525641", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["534c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["535443", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["54414c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544250", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["54434d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["54434f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544352", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544441", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544459", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["54454e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544654", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["54494d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544b45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544c41", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544c45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544d54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544f41", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544f46", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544f4c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544f52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["544f54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545031", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545032", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545033", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545034", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545041", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545042", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545244", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["54524b", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545353", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545431", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545432", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545433", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545854", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["545945", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["554649", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["554c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["574146", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["574152", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["574153", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["57434d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["574350", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["575042", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["575858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["574952", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"], + ["55494e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.2.0 audio file"] ], "4944330300": [ - ["41454E43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["41504943", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["41535049", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["434F4D4D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["434F4D52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["454E4352", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["45515532", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["4554434F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["47454F42", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["47524944", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["4C494E4B", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["4D434449", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["4D4C4C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["4F574E45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["50524956", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["50434E54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["504F504D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["504F5353", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["52425546", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["52564132", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["52565242", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5345454B", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5349474E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["53594C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["53595443", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54414C42", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5442504D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54434F4D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54434F4E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54434F50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5444454E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54444C59", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54444F52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54445243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5444524C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54445447", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54454E43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54455854", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54464C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5449504C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54495431", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54495432", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54495433", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544B4559", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544C414E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544C454E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544D434C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544D4544", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544D4F4F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544F414C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544F464E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544F4C59", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544F5045", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544F574E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54504531", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54504532", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54504533", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54504534", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54504F53", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5450524F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54505542", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5452434B", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5452534E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["5452534F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54534F41", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54534F50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54534F54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54535243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54535345", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54535354", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["54585858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["55464944", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["55534552", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["55534C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["57434F4D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["57434F50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["574F4146", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["574F4152", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["574F4153", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["574F5253", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["57504159", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["57505542", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["57585858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"], - ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.3.0 audio file"] + ["41454e43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["41504943", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["41535049", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["434f4d4d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["434f4d52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["454e4352", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["45515532", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["4554434f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["47454f42", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["47524944", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["4c494e4b", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["4d434449", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["4d4c4c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["4f574e45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["50524956", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["50434e54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["504f504d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["504f5353", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["52425546", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["52564132", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["52565242", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5345454b", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5349474e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["53594c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["53595443", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["55464944", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["55534552", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["55534c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["57434f4d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["57434f50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["574f4146", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["574f4152", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["574f4153", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["574f5253", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["57504159", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["57505542", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["57585858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54594552", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54444154", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54494d45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544f5259", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54414c42", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5442504d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54434f4d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54434f4e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54434f50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5444454e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54444c59", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54444f52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54445243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5444524c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54445447", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54454e43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54455854", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54464c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5449504c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54495431", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54495432", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54495433", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544b4559", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544c414e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544c454e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544d434c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544d4544", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544d4f4f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544f414c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544f464e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544f4c59", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544f5045", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544f574e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54504531", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54504532", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54504533", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54504534", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54504f53", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5450524f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54505542", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5452434b", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5452534e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["5452534f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54534f41", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54534f43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54534f50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54534f54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54535243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54535345", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54535354", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["54585858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["574146", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["574952", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["575959", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"], + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.3.0 audio file"] ], "4944330400": [ - ["41454E43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["41504943", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["41535049", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["434F4D4D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["434F4D52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["454E4352", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["45515532", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["4554434F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["47454F42", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["47524944", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["4C494E4B", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["4D434449", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["4D4C4C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["4F574E45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["50524956", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["50434E54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["504F504D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["504F5353", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["52425546", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["52564132", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["52565242", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5345454B", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5349474E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["53594C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["53595443", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54414C42", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5442504D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54434F4D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54434F4E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54434F50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5444454E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54444C59", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54444F52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54445243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5444524C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54445447", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54454E43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54455854", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54464C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5449504C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54495431", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54495432", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54495433", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544B4559", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544C414E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544C454E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544D434C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544D4544", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544D4F4F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544F414C", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544F464E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544F4C59", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544F5045", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544F574E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54504531", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54504532", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54504533", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54504534", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54504F53", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5450524F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54505542", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5452434B", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5452534E", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["5452534F", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54534F41", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54534F50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54534F54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54535243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54535345", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54535354", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["54585858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["55464944", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["55534552", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["55534C54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["57434F4D", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["57434F50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["574F4146", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["574F4152", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["574F4153", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["574F5253", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["57504159", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["57505542", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["57585858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"], - ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) ID3v2.4.0 audio file"] + ["41454e43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["41504943", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["41535049", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["434f4d4d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["434f4d52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["454e4352", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["45515532", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["4554434f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["47454f42", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["47524944", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["4c494e4b", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["4d434449", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["4d4c4c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["4f574e45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["50524956", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["50434e54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["504f504d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["504f5353", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["52425546", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["52564132", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["52565242", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5345454b", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5349474e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["53594c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["53595443", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["55464944", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["55534552", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["55534c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["57434f4d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["57434f50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["574f4146", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["574f4152", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["574f4153", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["574f5253", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["57504159", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["57505542", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["57585858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54594552", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54444154", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54494d45", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544f5259", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54414c42", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5442504d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54434f4d", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54434f4e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54434f50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5444454e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54444c59", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54444f52", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54445243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5444524c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54445447", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54454e43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54455854", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54464c54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5449504c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54495431", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54495432", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54495433", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544b4559", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544c414e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544c454e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544d434c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544d4544", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544d4f4f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544f414c", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544f464e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544f4c59", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544f5045", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544f574e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54504531", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54504532", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54504533", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54504534", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54504f53", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5450524f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54505542", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5452434b", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5452534e", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["5452534f", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54534f41", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54534f43", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54534f50", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54534f54", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54535243", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54535345", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54535354", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["54585858", 10, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"], + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) ID3v2.4.0 audio file"] ], "01da" : [ ["00010001", 2, ".rgb", "image/x-rgb", "Silicon Graphics RGB Bitmap (Uncompressed, 1bpc, single row)"], @@ -537,7 +551,7 @@ ["435202", 8, ".cr2", "", "Canon Camera RAW 2 image"] ], "424f4f4b4d4f4249" : [ - ["e98e0d0a", -4, ".mobi", "application/x-mobipocket-ebook", "Mobipocket eBook file"], + ["e98e0d0a", -4, ".mobi", "application/x-mobipocket-ebook", "Mobipocket eBook file"], ["e98e0d0a", -4, ".azw", "application/vnd.amazon.mobi8-ebook", "Amazon Kindle eBook file"], ["434f4e54424f554e44415259e98e0d0a", -16, ".azw3", "application/vnd.amazon.mobi8-ebook", "Amazon Kindle Format 8 eBook file (KF8 Dual MOBI/EPUB Format)"] ], @@ -585,6 +599,126 @@ ["05", 3, ".adf", "application/x-amiga-disk-format", "Amiga disk image (FFS International and Directory Cache)"], ["06", 3, ".adf", "application/x-amiga-disk-format", "Amiga disk image (OFS Long Filename)"], ["07", 3, ".adf", "application/x-amiga-disk-format", "Amiga disk image (FFS Long Filename)"] + ], + "ffd0": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer Reserved/Illegal file"] + ], + "ffd1": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer Reserved/Illegal file"] + ], + "ffd6": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"] + ], + "ffd7": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"] + ], + "ffda": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"] + ], + "ffdb": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"] + ], + "ffde": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"] + ], + "ffdf": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"] + ], + "ffe0": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer Reserved/Illegal file"] + ], + "ffe1": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer Reserved/Illegal file"] + ], + "ffe2": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"] + ], + "ffe3": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"] + ], + "ffe4": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer III (MP3) file"] + ], + "ffe5": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer III (MP3) file"] + ], + "ffe6": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer III (MP3) file"] + ], + "ffe7": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer III (MP3) file"] + ], + "ffe8": [ + ["544147", -128, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"] + ], + "ffe9": [ + ["544147", -128, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"] + ], + "ffea": [ + ["544147", -128, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"] + ], + "ffeb": [ + ["544147", -128, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"] + ], + "ffec": [ + ["544147", -128, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"] + ], + "ffed": [ + ["544147", -128, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"] + ], + "ffee": [ + ["544147", -128, ".mp1", "audio/mpeg", "MPEG-2 Audio Layer I (MP1) file"] + ], + "ffef": [ + ["544147", -128, ".mp1", "audio/mpeg", "MPEG-2 Audio Layer I (MP1) file"] + ], + "fff0": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer Reserved/Illegal file"] + ], + "fff1": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer Reserved/Illegal file"] + ], + "fff2": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"] + ], + "fff3": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"] + ], + "fff4": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"] + ], + "fff5": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"] + ], + "fff6": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"] + ], + "fff7": [ + ["544147", -128, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"] + ], + "fff8": [ + ["544147", -128, ".mp2", "audio/mpeg", "MPEG-1 Audio Layer II (MP2) file"] + ], + "fff9": [ + ["544147", -128, ".mp2", "audio/mpeg", "MPEG-1 Audio Layer II (MP2) file"] + ], + "fffa": [ + ["544147", -128, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"] + ], + "fffb": [ + ["544147", -128, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"] + ], + "fffc": [ + ["544147", -128, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"] + ], + "fffd": [ + ["544147", -128, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"] + ], + "fffe": [ + ["544147", -128, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"] + ], + "ffff": [ + ["544147", -128, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"] ] }, "footers": [ @@ -752,7 +886,6 @@ ["4d4d4d44", 0, ".smaf", "application/x-smaf", "SMAF audio"], ["50534944", 0, ".psid", "audio/prs.sid", "Commodore 64 audio"], ["664c6143", 0, ".flac", "audio/flac", "FLAC audio"], - ["fffb", 0, ".mpga", "audio/mpeg", "MP3 audio"], ["234558544d3355", 0, ".m3u8", "application/vnd.apple.mpegurl", "HTTP Live Streaming playlist"], ["2521", 0, ".epsf", "image/x-eps", "EPS image"], ["5c3030342521", 0, ".epsf", "image/x-eps", "EPS image"], @@ -799,10 +932,50 @@ ["2e524543", 0, ".ivr", "i-world/i-vrml", "RealPlayer video file"], ["6d6f6f76", 4, ".mov", "video/quicktime", "QuickTime movie file"], ["3026b2758e66cf11a6d900aa0062ce6c", 0, ".wma", "audio/x-ms-wma", "Microsoft Windows Media Audio file"], - ["494433", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 (MP3) audio file"], - ["4944330200", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 ID3v2.2.0 (MP3) audio file"], - ["4944330300", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 ID3v2.3.0 (MP3) audio file"], - ["4944330400", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer 3 ID3v2.4.0 (MP3) audio file"], + ["494433", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) audio file"], + ["4944330200", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III ID3v2.2.0 (MP3) audio file"], + ["4944330300", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III ID3v2.3.0 (MP3) audio file"], + ["4944330400", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III ID3v2.4.0 (MP3) audio file"], + ["ffd0", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer Reserved/Illegal"], + ["ffd1", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer Reserved/Illegal"], + ["ffd6", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"], + ["ffd7", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"], + ["ffda", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"], + ["ffdb", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"], + ["ffde", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"], + ["ffdf", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"], + ["ffe0", 0, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer Reserved/Illegal"], + ["ffe1", 0, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer Reserved/Illegal"], + ["ffe2", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"], + ["ffe3", 0, ".mp3", "audio/mpeg", "MPEG-2.5 Audio Layer III (MP3) file"], + ["ffe4", 0, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer III (MP3) file"], + ["ffe5", 0, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer III (MP3) file"], + ["ffe6", 0, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer III (MP3) file"], + ["ffe7", 0, ".mp3", "audio/mpeg", "MPEG-2 Audio Layer III (MP3) file"], + ["ffe8", 0, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"], + ["ffe9", 0, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"], + ["ffea", 0, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"], + ["ffeb", 0, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"], + ["ffec", 0, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"], + ["ffed", 0, ".mp2", "audio/mpeg", "MPEG-2 Audio Layer II (MP2) file"], + ["ffee", 0, ".mp1", "audio/mpeg", "MPEG-2 Audio Layer I (MP1) file"], + ["ffef", 0, ".mp1", "audio/mpeg", "MPEG-2 Audio Layer I (MP1) file"], + ["fff0", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer Reserved/Illegal"], + ["fff1", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer Reserved/Illegal"], + ["fff2", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"], + ["fff3", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"], + ["fff4", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"], + ["fff5", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"], + ["fff6", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"], + ["fff7", 0, ".mp3", "audio/mpeg", "MPEG-1 Audio Layer III (MP3) file"], + ["fff8", 0, ".mp2", "audio/mpeg", "MPEG-1 Audio Layer II (MP2) file"], + ["fff9", 0, ".mp2", "audio/mpeg", "MPEG-1 Audio Layer II (MP2) file"], + ["fffa", 0, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"], + ["fffb", 0, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"], + ["fffc", 0, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"], + ["fffd", 0, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"], + ["fffe", 0, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"], + ["ffff", 0, ".mp1", "audio/mpeg", "MPEG-1 Audio Layer I (MP1) file"], ["4f67675300020000000000000000", 0, ".ogg", "application/ogg", "Ogg Vorbis audio file"], ["57415645666d7420", 8, ".wav", "audio/x-wav", "Windows audio file "], ["464f524d", 0, ".aif", "audio/x-aiff", "Audio Interchange File"], @@ -1886,7 +2059,7 @@ ["424c49323233", 0, ".bin", "application/x-binary", "Speedtouch router firmware"], ["424c49323233", 0, ".bli", "application/octet-stream", "Speedtouch router firmware"], ["424c49323233", 0, ".rbi", "application/octet-stream", "Speedtouch router firmware"], - ["49443303000000", 0, ".koz", "", "Sprint Music Store audio"], + ["49443303000000", 0, ".koz", "audio/vnd.audiokoz", "Sprint Music Store audio"], ["5350464900", 0, ".spf", "", "StorageCraft ShadownProtect backup file"], ["4c413a", 0, ".dst", "", "Tajima emboridery"], ["4d435720546563686e6f676f6c696573", 0, ".mte", "", "TargetExpress target file"], @@ -2184,6 +2357,7 @@ ["5244534b", 0, ".hdf", "", "Amiga Harddisk image"], ["504653", 0, ".hdf", "", "Amiga Harddisk image (Professional Filesystem 3)"], ["504453", 0, ".hdf", "", "Amiga Harddisk image (Professional Filesystem 3)"], - ["534653", 0, ".hdf", "", "Amiga Harddisk image (Smart File System)"] + ["534653", 0, ".hdf", "", "Amiga Harddisk image (Smart File System)"], + ["d0cf11e0a1b11ae1", 0, ".msg", "application/vnd.ms-outlook", "Outlook 97-2003 Item File"] ] } diff --git a/puremagic/main.py b/puremagic/main.py index 2dc0438..f55bb7c 100644 --- a/puremagic/main.py +++ b/puremagic/main.py @@ -22,7 +22,15 @@ import puremagic if os.getenv("PUREMAGIC_DEEPSCAN") != "0": - from puremagic.scanners import zip_scanner, pdf_scanner, text_scanner, json_scanner, python_scanner, sndhdr_scanner + from puremagic.scanners import ( + zip_scanner, + pdf_scanner, + text_scanner, + json_scanner, + python_scanner, + sndhdr_scanner, + mpeg_audio_scanner, + ) __author__ = "Chris Griffith" __version__ = "2.0.0b5" @@ -398,6 +406,10 @@ def single_deep_scan( result = sndhdr_scanner.main(filename, head, foot) if result and result.confidence > confidence: return result + case mpeg_bytes if mpeg_bytes in mpeg_audio_scanner.mpeg_audio_signatures: + result = mpeg_audio_scanner.main(filename, head, foot) + if result and result.confidence > confidence: + return result # The first match wins for scanner in (pdf_scanner, python_scanner, json_scanner): @@ -519,7 +531,7 @@ def command_line_entry(*args): print(f"Total Possible Matches: {len(matches)}") for i, result in enumerate(matches): if i == 0: - print("\n\tBest Match") + print("\n\tDeepscan Match" if int(result.confidence == 1) else "\n\tBest Match") else: print(f"\tAlternative Match #{i}") print(f"\tName: {result.name}") diff --git a/puremagic/scanners/mpeg_audio_scanner.py b/puremagic/scanners/mpeg_audio_scanner.py new file mode 100644 index 0000000..98d3ca5 --- /dev/null +++ b/puremagic/scanners/mpeg_audio_scanner.py @@ -0,0 +1,1169 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# cSpell:disable + +""" +MPEG Audio Deep Scanner (.mp1, .mp2, .mp3). + +This performs a deepscan to confirm if a file is a bonafide MP3 +A successful match is only returned if the main MPEG audio data stream can be decoded correctly. +*AND* if present an ID3v2 (which needs decoding to find the audio afterwards). + +The scanner quickly pulls out all the crucial stream details: + * MPEG Version and Layer (MPEG 1/2/2.5 - Layer I/II/III) + * Sample Rate, Bit Rate, Stereo/Mono + * Detects and checks LAME Xing/Info and Fraunhofer VBRI frames + * Detects CBR vs. VBR encoding through frame analysis (does not rely on above tags) + * Frame analysis also confirms validity of MP3 stream + * Detects and checks ID3v2, ID3v1, APE v1/v2, Lyrics3 v1/v2, ID3v1.2 EXT, ID3v1 TAG+ and 3DI tags + +Note on Tags: + * End-of-file metadata tags (like ID3v1 or APE) are checked purely for informational + purposes and do not influence the file's pass/fail status. You may have a perfectly valid audio stream, + but have horrifically malformed tags at the end, if the audio data is valid we pass the file. + * LAME Xing/Info and Fraunhofer VBRI tags are checked for validity and are used for informational + purposes only, they should not affect pass/fail status unless they are so badly malformed + they cause the main audio decoder to fail finding valid frames. + +""" + +import os +import struct +from typing import IO, Any, Dict, List, Optional + +from puremagic.scanners.helpers import Match + +mpeg_audio_signatures = [ + # These are all the valid signatures for raw MPEG Audio streams (Layers I, II, III), + # or those starting with a ID3v2 tag. You may spot some duplicates, this is fine, + # MPEG audio is full of little joys like this where the same header may mean + # different things when the stream is actually decoded. + b"ID3", # ID3 Tag (Metadata header, often precedes the audio stream) + # ILLEGAL/RESERVED COMBINATIONS (Layer Bits = 00) + # These represent reserved/illegal layer combinations for the three valid versions. + b"\xff\xf0", # MPEG-1, Layer Reserved, Protected (CRC used) + b"\xff\xf1", # MPEG-1, Layer Reserved, No Protection (CRC not used) + b"\xff\xe0", # MPEG-2, Layer Reserved, Protected (CRC used) + b"\xff\xe1", # MPEG-2, Layer Reserved, No Protection (CRC not used) + b"\xff\xd0", # MPEG-2.5, Layer Reserved, Protected (CRC used) + b"\xff\xd1", # MPEG-2.5, Layer Reserved, No Protection (CRC not used) + b"\xff\xf2", # MPEG-1, Layer III (MP3), No Protection (CRC not used) + # MPEG-1 HEADERS (Version Bits = 11) + # Layer III (MP3) - Layer Bits = 01 + b"\xff\xfb", # MPEG-1, Layer III (MP3), Protected (CRC used) + b"\xff\xfa", # MPEG-1, Layer III (MP3), Protected (CRC used) + b"\xff\xf7", # MPEG-1, Layer III (MP3), No Protection (CRC not used) + b"\xff\xf6", # MPEG-1, Layer III (MP3), Protected (CRC used) + b"\xff\xf5", # MPEG-1, Layer III (MP3), No Protection (CRC not used) + b"\xff\xf4", # MPEG-1, Layer III (MP3), Protected (CRC used) + b"\xff\xf3", # MPEG-1, Layer III (MP3), No Protection (CRC not used) + # Layer II (MP2) - Layer Bits = 10 + b"\xff\xfd", # MPEG-1, Layer II (MP2), Protected (CRC used) + b"\xff\xfc", # MPEG-1, Layer II (MP2), Protected (CRC used) + b"\xff\xf9", # MPEG-1, Layer II (MP2), No Protection (CRC not used) + b"\xff\xf8", # MPEG-1, Layer II (MP2), No Protection (CRC not used) + # Layer I (MP1) - Layer Bits = 11 + b"\xff\xff", # MPEG-1, Layer I (MP1), Protected (CRC used) + b"\xff\xfe", # MPEG-1, Layer I (MP1), Protected (CRC used) + b"\xff\xfd", # MPEG-1, Layer I (MP1), No Protection (CRC not used) + b"\xff\xfc", # MPEG-1, Layer I (MP1), No Protection (CRC not used) + b"\xff\xfb", # MPEG-1, Layer I (MP1), Protected (CRC used) + b"\xff\xfa", # MPEG-1, Layer I (MP1), Protected (CRC used) + b"\xff\xf9", # MPEG-1, Layer I (MP1), No Protection (CRC not used) + b"\xff\xf8", # MPEG-1, Layer I (MP1), No Protection (CRC not used) + # MPEG-2 HEADERS (Version Bits = 10) + # Layer III (MP3) - Layer Bits = 01 + b"\xff\xef", # MPEG-2, Layer III (MP3), Protected (CRC used) + b"\xff\xee", # MPEG-2, Layer III (MP3), Protected (CRC used) + b"\xff\xe7", # MPEG-2, Layer III (MP3), No Protection (CRC not used) + b"\xff\xe6", # MPEG-2, Layer III (MP3), No Protection (CRC not used) + b"\xff\xeb", # MPEG-2, Layer III (MP3), Protected (CRC used) + b"\xff\xea", # MPEG-2, Layer III (MP3), Protected (CRC used) + b"\xff\xe5", # MPEG-2, Layer III (MP3), No Protection (CRC not used) + b"\xff\xe4", # MPEG-2, Layer III (MP3), No Protection (CRC not used) + # Layer II (MP2) - Layer Bits = 10 + b"\xff\xed", # MPEG-2, Layer II (MP2), Protected (CRC used) + b"\xff\xec", # MPEG-2, Layer II (MP2), Protected (CRC used) + b"\xff\xe9", # MPEG-2, Layer II (MP2), No Protection (CRC not used) + b"\xff\xe8", # MPEG-2, Layer II (MP2), No Protection (CRC not used) + # Layer I (MP1) - Layer Bits = 11 + b"\xff\xef", # MPEG-2, Layer I (MP1), Protected (CRC used) + b"\xff\xee", # MPEG-2, Layer I (MP1), Protected (CRC used) + b"\xff\xe7", # MPEG-2, Layer I (MP1), No Protection (CRC not used) + b"\xff\xe6", # MPEG-2, Layer I (MP1), No Protection (CRC not used) + b"\xff\xeb", # MPEG-2, Layer I (MP1), Protected (CRC used) + b"\xff\xea", # MPEG-2, Layer I (MP1), Protected (CRC used) + b"\xff\xe5", # MPEG-2, Layer I (MP1), No Protection (CRC not used) + b"\xff\xe4", # MPEG-2, Layer I (MP1), No Protection (CRC not used) + # MPEG-2.5 HEADERS (Version Bits = 00) + # Layer III (MP3) - Layer Bits = 01 + b"\xff\xe3", # MPEG-2.5, Layer III (MP3), Protected (CRC used) + b"\xff\xe2", # MPEG-2.5, Layer III (MP3), Protected (CRC used) + b"\xff\xdb", # MPEG-2.5, Layer III (MP3), No Protection (CRC not used) + b"\xff\xda", # MPEG-2.5, Layer III (MP3), No Protection (CRC not used) + b"\xff\xdf", # MPEG-2.5, Layer III (MP3), Protected (CRC used) + b"\xff\xde", # MPEG-2.5, Layer III (MP3), Protected (CRC used) + b"\xff\xd7", # MPEG-2.5, Layer III (MP3), No Protection (CRC not used) + b"\xff\xd6", # MPEG-2.5, Layer III (MP3), No Protection (CRC not used) +] + + +class DataCache: + """ + We use a data cache as puremagic calls the script more than once. + + Work is performed on first call, cached output is returned in subsequent calls. + This saves doing everything twice. + """ + + _processed_result = None + _file_path = None + _matched = False + + @classmethod + def set_result(cls, result): + """Stores the result after processing.""" + cls._processed_result = result + cls._matched = True + + @classmethod + def set_file_path(cls, file_path: os.PathLike | str): + """Stores the file_path and resets results.""" + cls._file_path = file_path + cls._processed_result = None + cls._matched = False + + @classmethod + def get_result(cls): + """Retrieves the stored result.""" + return cls._processed_result + + @classmethod + def is_matched(cls) -> bool: + """Retrieves the stored result.""" + return cls._matched + + @classmethod + def get_file_path(cls) -> os.PathLike | str: + """Retrieves the file path.""" + return cls._file_path + + @classmethod + def is_cached(cls): + """Checks if the result has been processed yet.""" + return cls._processed_result is not None + + +class EndOfFileTags: + """Processes all end of file tags.""" + + def __init__(self, file_size: int): + self.tags = [] + self.file_size = file_size + self.foot_string = None + self.foot_size = 1572864 # 1.5MB in bytes, changes if file is smaller + + def _id3v1(self) -> bool: + """ + Searches for ID3v1 TAG in last 128 bytes. + + Validation relies on the 'TAG' signature + *AND* either a 4-digit year (1700-3000 seems sensible) + *OR* four null bytes in the Year field + *OR* four spaces (hex 20 used by non compliant encoders/taggers). + + Returns True so we can check for TAG+ or EXT. + Returns None if tag is not valid, no point then checking above. + """ + tag_size = 128 + + if self.foot_size < tag_size: + return False # Too small to contain ID3v1 tag. + + try: + find_tag_loc = self.foot_string.rfind(b"TAG") + if find_tag_loc == -1: + return False # Tag not found + + tag_calc_size = self.foot_size - find_tag_loc + if tag_calc_size != tag_size: + return False # Tag not 128 bytes + + # Year is stored at byte 93 and 97 of TAG + # this should be a 4 digit number, or 4 nulls/spaces + year = self.foot_string[find_tag_loc + 93 : find_tag_loc + 97] + if year == b"\x00\x00\x00\x00" or year == b"\x20\x20\x20\x20": # Check for empty year (all nulls/spaces) + self.tags.append("ID3v1") + return True + try: + year_str = year.decode("ascii", errors="ignore").replace("\x00", "").replace("\x20", "").strip() + if len(year_str) == 4 and year_str.isdigit(): # Check for a plausible 4-digit year 1700-3000 + year_int = int(year_str) + if 1700 <= year_int <= 3000: + self.tags.append("ID3v1") + return True + except ValueError: + pass + + return None # Year could not be found + + except Exception: + return None # Other unexpected issues + + def _tag_plus(self) -> None: + """ + Checks for the ID3v1 Enhanced Tag ('TAG+'). + + This should be located in at 355 bytes from end of file. + There is a chance another tag (like APE or EXT) can push it around, + which means the data could be there, but in the wrong place. + + Validation relies on the 'TAG+' signature, correct tag size, + *AND* either the approved speed bytes (01=slow, 02=medium, 03=fast, 04=hardcore) + *OR* a null byte (00) if unpopulated. + + Returns None as a graceful exit if TAG+ not found + """ + tag_size = 128 + tag_plus_size = 227 + speed_loc = 184 # Speed byte posistion in tag + combined_size = tag_plus_size + tag_size + + if self.foot_size < combined_size: # TAG+ + ID3v1 + return None # Too small to contain TAG+ + + try: + # Scan only calculated tag area, try to avoid false positives + tag_start = self.foot_size - combined_size + tag_end = tag_start + tag_plus_size + find_tag_loc = self.foot_string.rfind(b"TAG+", tag_start, tag_end) + if find_tag_loc == -1: + return None # Tag not found + + tag_calc_size = self.foot_size - find_tag_loc + if tag_calc_size != combined_size: + return None # Tag+ not valid size + + speed_position = find_tag_loc + speed_loc + if 0 <= self.foot_string[speed_position] <= 4: + self.tags.append("TAG+") + else: + return None # Speed byte not in range + + except Exception: + return None # Other unexpected issues + + def _ext_tag(self) -> None: + """ + Checks for the ID3v1.2 Enhanced Tag ('EXT'). + + This should be located at 256 bytes from end of file. + There is a chance another tag (like APE or EXT) can push it around, + which means the data could be there, but in the wrong place. + + Validation relies on the 'EXT' signature and correct tag size. + Unable to validate further as tag has no fixed content. + + Returns None as a graceful exit if EXT not found + """ + tag_size = 128 + ext_tag_size = 128 + combined_size = ext_tag_size + tag_size + + if self.foot_size < combined_size: # EXT + ID3v1 + return None # Too small to contain EXT + + try: + # Scan only calculated tag area, try to avoid false positives + tag_start = self.foot_size - combined_size + tag_end = tag_start + ext_tag_size + find_tag_loc = self.foot_string.rfind(b"EXT", tag_start, tag_end) + if find_tag_loc == -1: + return None # Tag not found + + tag_calc_size = self.foot_size - find_tag_loc + if tag_calc_size != combined_size: + return None # EXT not valid size + else: + self.tags.append("EXT") + + except Exception: + return None # Other unexpected issues + + def _3di(self, id3v1: bool) -> None: + """ + Checks for the rare ID3v1 3DI tag ('3DI'). + + This should be located in either. + a) 10 bytes from end of file if no ID3v1 + b) 10 bytes in front of ID3v1 + There is a chance another tag (like APE or EXT) can push it around, + which means the data could be there, but in the wrong place. + + Validation relies on the '3DI' signature and correct tag size. + Unable to validate further as tag has no fixed content. + + Returns None as a graceful exit if 3DI not found + """ + tag_size = 128 + size_3di = 10 + combined_size = (size_3di + tag_size) if id3v1 else size_3di + if self.foot_size < combined_size: # 3DI OR 3DI + ID3v1 + return None # Too small to contain 3DI + + try: + # Scan only calculated tag area, try to avoid false positives + tag_start = self.foot_size - combined_size + tag_end = tag_start + size_3di + find_tag_loc = self.foot_string.rfind(b"3DI", tag_start, tag_end) + if find_tag_loc == -1: + return None # Tag not found + + tag_calc_size = self.foot_size - find_tag_loc + if tag_calc_size != combined_size: + return None # 3DI not valid size + else: + self.tags.append("3DI") + + except Exception: + return None # Other unexpected issues + + def _lyrics3(self, id3v1: bool) -> None: + """ + Checks for the Lyrics3 v1 and v2. + + These are large tags (upto 1MB) and should be located at either: + a) Upto 1024 bytes from end of file if no ID3v1 + b) Upto 1152 bytes from end of file if ID3v1 present + There is a chance another tag (like APE or EXT) can push it around, + which means the data could be there, but in the wrong place. + + Validation relies on: + a) For v1: LYRICSBEGIN and LYRICSEND + AND a scan for metatag to see if any are present + Unable to validate further as tag has no fixed content. + b) For v2: LYRICSBEGIN and LYRICS200 + AND a scan for metatag to see if any are present + AND check the size of the found tag, matches the size metatag. + + Returns None as a graceful exit if tag block not found + """ + id3v1_size = 128 + max_tag_size = 1048576 # This is on paper the max a Lyrics3 tag could be (v1 in theory has no limit) + combined_size = (max_tag_size + id3v1_size) if id3v1 else max_tag_size + + if self.foot_size < combined_size: # LYRICS OR LYRICS + ID3v1 + combined_size = self.foot_size + + try: + # Scan only calculated tag area, try to avoid false positives + # This just checks for LYRICSEND or LYRICS200 marker immediately + # before EOF or TAG + lyricsend_size = 9 # This is for LYRICSEND or LYRICS200 + end_size = (lyricsend_size + id3v1_size) if id3v1 else lyricsend_size + end_tag_start = self.foot_size - end_size + end_tag_end = end_tag_start + lyricsend_size + found_lyric = None + for lyric_end in (b"LYRICSEND", b"LYRICS200"): + find_tag_end = self.foot_string.rfind(lyric_end, end_tag_start, end_tag_end) + if find_tag_end != -1: + found_lyric = lyric_end + if found_lyric is None: + return None # No end marker found + + # Now we can scan for the start marker, + # as we cannot overly target a scan we go for a broad + # search of the last 1MB (or smaller) of the file. + max_allowed_search_size = min(self.foot_size, self.file_size) + tag_start_start = max_allowed_search_size - combined_size + tag_start_end = tag_start_start + max_tag_size + find_tag_start = self.foot_string.rfind(b"LYRICSBEGIN", tag_start_start, tag_start_end) + if find_tag_start == -1: + return None # Tag start not found + + # Now we have the tag size and can scan inside the tag + lyric3_tags = [b"IND", b"LYR", b"INF", b"AUT", b"EAL", b"EAR", b"ETT", b"IMG", b"GRE"] + tag_block = self.foot_string[find_tag_start:end_tag_end] + + if found_lyric == b"LYRICSEND": # v1 + if any(tag in tag_block for tag in lyric3_tags): # This is the best we can do for v1 + self.tags.append("Lyricsv1") + + if found_lyric == b"LYRICS200": # v2 + # Get the v2 size data + tag_size = len(tag_block) # This matches Hex editors so length is correct + size_tag_size = 6 + v2_tag_data = self.foot_string[end_tag_start - size_tag_size : end_tag_end - lyricsend_size] + v2_tag_size_calc = int(v2_tag_data) + size_tag_size + lyricsend_size + if any(tag in tag_block for tag in lyric3_tags) and tag_size == v2_tag_size_calc: + self.tags.append("Lyricsv2") + + return None # Could not find a valid tag block + + except Exception: + return None # Other unexpected issues + + def _ape(self, id3v1: bool) -> None: + """ + Checks for the Ape v1 and v2. + + These are complicated tags, we currently test for the most common variants. + a) v1 with APETAGEX footer, at end of file or before ID3v1 + b) v2 with APETAGEX header and footer, at end of file or before ID3v1 + There is a chance another tag (like Lyrics3 or EXT) can push it around, + which means the data could be there, but in the wrong place. + + We currently do not test for weird variants such as: + a) v1 lacking the APETAGEX footer + b) v2 lacking the APETAGEX header, footer or both (crazy, but apparently valid) + c) v2 placed at the start of the file + If sample files with these ever appear we can look to test. + + Validation relies on: + a) For v1: finding the APETAGEX footer + AND decode the tag for size and fixed marker checks. + b) For v2: finding the APETAGEX header and footer + AND decode the tag for size and fixed marker checks. + + Returns None as a graceful exit if tag block not found + """ + common_ape_keys = ( + b"Title", + b"Artist", + b"Album", + b"Track", + b"Year", + b"Genre", + b"Comment", + b"Album Artist", + b"Composer", + b"Copyright", + b"Disc", + b"Grouping", + b"Lyrics", + b"Publisher", + b"Subtitle", + b"Performer", + b"Conductor", + b"Rating", + b"File", + b"URL", + b"Cover Art (Front)", # front Titled to match search + b"Cover Art (Back)", # back Titled to match search + b"Media", + b"Language", + b"ReplayGain Track Gain", + b"ReplayGain Track Peak", + b"ReplayGain Album Gain", + b"ReplayGain Album Peak", + b"ISRC", + b"MCN", + ) + id3v1_size = 128 + max_tag_size = 1048576 # This is a pratical scan range of 1MB, Ape v2 in theory can be 4GB + combined_size = (max_tag_size + id3v1_size) if id3v1 else max_tag_size + + if self.foot_size < combined_size: # APE OR APE + ID3v1 + combined_size = self.foot_size + + try: + # Scan only calculated tag area, try to avoid false positives + # This just checks for APETAGEX marker immediately before EOF or ID3v1 TAG + apextag_size = 32 # This is for APETAGEX and data bytes + end_size = (apextag_size + id3v1_size) if id3v1 else apextag_size + end_tag_start = self.foot_size - end_size + end_tag_end = end_tag_start + apextag_size + + find_tag_end = self.foot_string.rfind(b"APETAGEX", end_tag_start, end_tag_end) + if find_tag_end == -1: + return None # Tag not found + + # Footer tag + # Check Version (bytes 8-11, Little-Endian) + f_version = struct.unpack(" None: + """Read last 1.5MB of file and look for tags.""" + file.seek(max(0, self.file_size - self.foot_size)) + self.foot_string = file.read() + self.foot_size = len(self.foot_string) if len(self.foot_string) < self.foot_size else self.foot_size + file.seek(0) + id3v1 = self._id3v1() + if id3v1: # These two require an ID3v1 TAG to be present + self._tag_plus() + self._ext_tag() + self._3di(id3v1) + self._lyrics3(id3v1) + self._ape(id3v1) + + +class MpegAudioDecoder: + """ + Decodes the raw mpeg audio stream. + + This handles Layers I, II and III, with CBR and VBR encodings. + Returns None if any part of the decoding fails. + """ + + def __init__(self): + # --- STATE AND OUTPUT --- + self.tags = [] + self.header_results = {} + self.first_frame_offset = 0 + + # VBR + self.vbr_info = None # Stores detected VBR tag string ("Xing", "VBRI", etc.) + self.VBRI_OFFSET = 36 # Constant for VBRI tag offset + + # --- LOOKUP TABLES --- + self.sample_rate_table = { + 3: [44100, 48000, 32000, 0], # MPEG 1 + 2: [22050, 24000, 16000, 0], # MPEG 2 + 0: [11025, 12000, 8000, 0], # MPEG 2.5 + } + self.bitrate_table = { + # MPEG 1 + 3: { + 3: [0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 0], # Layer I + 2: [0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0], # Layer II + 1: [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0], # Layer III + }, + # MPEG 2/2.5 + 2: { + 3: [0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0], # Layer I + 2: [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0], # Layer II + 1: [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0], # Layer III + }, + 0: { + 3: [0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0], # Layer I + 2: [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0], # Layer II + 1: [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0], # Layer III + }, + } + self.mpeg_version_map = {3: "MPEG 1", 2: "MPEG 2", 0: "MPEG 2.5", 1: "Reserved"} + self.mpeg_version_reverse = {"MPEG 1": 3, "MPEG 2": 2, "MPEG 2.5": 0} + self.layer_map = {3: "Layer I (MP1)", 2: "Layer II (MP2)", 1: "Layer III (MP3)", 0: "Reserved"} + self.channel_mode_map = {3: "Mono", 2: "Dual-Channel", 1: "Joint-Stereo", 0: "Stereo"} + self.vbr_offsets = { + # (MPEG_VERSION_INDEX, IS_MONO) -> Offset from byte 0 + (3, False): 36, # MPEG 1, Stereo/Joint Stereo + (3, True): 21, # MPEG 1, Mono + (2, False): 21, # MPEG 2/2.5, Stereo/Joint Stereo + (2, True): 13, # MPEG 2/2.5, Mono + (0, False): 21, # MPEG 2.5, Stereo + (0, True): 13, # MPEG 2.5, Mono + } + + def _parse_vbr_header(self, frame_bytes: bytes, header_results: Dict[str, Any]) -> Optional[str]: + """ + Checks the first frame for Xing/Info (LAME) and VBRI (Fraunhofer) VBR tags. + + This function relies on self._decode_mp3_header having already passed its + validity checks (sync word, reserved bits, valid rates). + + Returns the tag identifier string ("Xing", "Info", or "VBRI") if a tag is found, + otherwise returns None. + """ + # 1. Basic Validity Checks + if not header_results.get("sync_word") or header_results.get("layer") == "Reserved": + return None + + # VBR headers are for Layer III only + if header_results.get("layer") != "Layer III (MP3)": + return None + + # 2. Determine Offsets using validated results + mpeg_version_str = header_results.get("mpeg_version") + mpeg_version_index = self.mpeg_version_reverse.get(mpeg_version_str) + + if mpeg_version_index is None: + return None + + channel_mode_str = header_results.get("chanel_mode", "Stereo") + is_mono = channel_mode_str == "Mono" + found_tag = None + + # --- 3. Check Xing/Info Tag --- + key = (mpeg_version_index, is_mono) + xing_vbr_offset = self.vbr_offsets.get(key) + + if xing_vbr_offset is not None and len(frame_bytes) >= xing_vbr_offset + 4: + identifier_bytes = frame_bytes[xing_vbr_offset : xing_vbr_offset + 4] + identifier = identifier_bytes.decode("ascii", errors="ignore") + + if identifier in ("Xing", "Info"): + found_tag = identifier + + # --- 4. Check VBRI Tag --- + vbri_vbr_offset = self.VBRI_OFFSET + + # Only check VBRI if Xing/Info was not found + if found_tag is None and len(frame_bytes) >= vbri_vbr_offset + 4: + identifier_bytes = frame_bytes[vbri_vbr_offset : vbri_vbr_offset + 4] + identifier = identifier_bytes.decode("ascii", errors="ignore") + + if identifier == "VBRI": + found_tag = "VBRI" + + # --- 5. Return --- + return found_tag + + def _decode_mp3_header(self, header_bytes: bytes) -> None: + """ + Decodes the 4-byte header. Raises ValueError if invalid. + Performs frame size calculation based on MPEG version and Layer. + """ + header_int = struct.unpack(">I", header_bytes)[0] + + # Extract Fields + sync_word = (header_int >> 20) & 0xFFF + mpeg_version_index = (header_int >> 19) & 0b11 + layer_index = (header_int >> 17) & 0b11 + bit_rate_index = (header_int >> 12) & 0b1111 + sample_rate_index = (header_int >> 10) & 0b11 + padding_bit = (header_int >> 9) & 0b1 + channel_mode_index = (header_int >> 6) & 0b11 + # --- 1. Basic Validation --- + # Sync word can be 0xFFE or 0xFFF + if sync_word < 0xFFE: + raise ValueError("Sync word not fully set.") + if mpeg_version_index == 1 or layer_index == 0: + raise ValueError("Reserved MPEG version or Layer used.") + if bit_rate_index == 0 or bit_rate_index == 15 or sample_rate_index == 3: + raise ValueError("Reserved bit rate, index 0, or sample rate index used.") + # --- 2. Lookup Values --- + sr_list = self.sample_rate_table.get(mpeg_version_index) + if not sr_list: + raise ValueError("MPEG version not supported for Sample Rate lookup.") + sample_rate_hz = sr_list[sample_rate_index] + + br_version_table = self.bitrate_table.get(mpeg_version_index) + if not br_version_table: + raise ValueError("MPEG version not supported for Bit Rate lookup.") + + br_layer_list = br_version_table.get(layer_index) + if not br_layer_list: + raise ValueError("Layer not supported for Bit Rate lookup.") + + bit_rate_kbps = br_layer_list[bit_rate_index] + + if bit_rate_kbps == 0 or sample_rate_hz == 0: + raise ValueError("Calculated bit rate or sample rate is zero.") + + # --- 3. Frame Size Calculation --- + if layer_index == 3: # Layer I + slot_size = 12 + elif layer_index == 2 or layer_index == 1: # Layer II or Layer III + # MPEG 1 uses 144, MPEG 2/2.5 use 72 + if mpeg_version_index == 3: # MPEG 1 + slot_size = 144 + else: # MPEG 2/2.5 + slot_size = 72 + + # Frame Size Formula: + frame_size_val = int((slot_size * bit_rate_kbps * 1000) / sample_rate_hz + padding_bit) + + if layer_index == 3: # Layer I requires multiplication by 4 + frame_size_val *= 4 + + if frame_size_val < 4 or frame_size_val > 5000: + raise ValueError("Calculated frame size is out of expected bounds.") + + # Compile the results dictionary + self.header_results = { + "sync_word": True, + "mpeg_version": self.mpeg_version_map.get(mpeg_version_index), + "layer": self.layer_map.get(layer_index), + "bit_rate": f"{bit_rate_kbps}k", + "sample_rate": f"{sample_rate_hz / 1000:.1f}Khz", + "padding": padding_bit, + "chanel_mode": self.channel_mode_map.get(channel_mode_index, "Reserved"), + "frame_size": f"{frame_size_val} bytes", + "raw_frame_size": frame_size_val, # CRUCIAL for seeking + "bit_rate_index": bit_rate_index, + "mpeg_version_index": mpeg_version_index, + } + + def _check_stream_consistency( + self, file_handle, frame1_bit_rate_index, frame2_start_abs_offset, frame1_size + ) -> str | None: + """ + Checks the bit rate index of the next few frames (up to 3 total) against + the first frame to determine stream consistency, using a small search + window to overcome frame 'wobble' found in some Layer II encodings. + """ + frames_to_check = 2 + current_offset = frame2_start_abs_offset + step_size = frame1_size + + # Loop for Frame 2 and Frame 3 + for i in range(1, frames_to_check + 1): + found_match = False + + # Search window of 4 bytes (0, 1, 2, 3 bytes ahead) + for search_offset in range(4): + seek_pos = current_offset + search_offset + + try: + file_handle.seek(seek_pos, os.SEEK_SET) + frame_header_bytes = file_handle.read(4) + + if len(frame_header_bytes) < 4: + # End of file reached before full consistency check. + # Assume CBR based on checks passed so far. + return "CBR" + + frame_bit_rate_index = self.extract_bit_rate_index(frame_header_bytes) + + # Check 1: Must be a valid header (not -1) AND + # Check 2: Must have the same bit rate index as Frame 1 (frame1_bit_rate_index) + if frame_bit_rate_index != -1 and frame_bit_rate_index == frame1_bit_rate_index: + # Found the next frame at the expected bit rate (CBR). + # Break the inner search loop and prepare for the next frame check. + + # Update the current offset to the *actual* start of the found frame + # plus the expected frame size, for the next check. + current_offset = seek_pos + step_size + found_match = True + break + + except Exception: + continue # Try the next search_offset + + # If we failed to find a consistent frame nearby after checking the window: + if not found_match: + # The bit rate index is inconsistent over a small range. + return "VBR" + + # If the loop completed (F1, F2, and F3 were consistent or found nearby) + return "CBR" + + def extract_bit_rate_index(self, header_bytes): + """Utility to quickly get the bit rate index for stream consistency check.""" + if len(header_bytes) < 4: + return -1 + # Check for sync word (FF Ex) before extracting + if header_bytes[0] != 0xFF or (header_bytes[1] & 0xE0) != 0xE0: + return -1 + + header_int = struct.unpack(">I", header_bytes)[0] + return (header_int >> 12) & 0b1111 + + def decoder(self, head: bytes, file: IO[bytes]): + """Decodes the MPEG Audios Stream.""" + + # Seek to start (start of file or after ID3v2) + file.seek(self.first_frame_offset, os.SEEK_SET) + # Decode the first frame header (H1) + header_bytes_frame1 = file.read(4) + if len(header_bytes_frame1) < 4: + return None + + try: + # Fills self.header_results + self._decode_mp3_header(header_bytes_frame1) + except ValueError: + return None + + raw_frame_size = self.header_results["raw_frame_size"] + + # Read the area for VBR check + read_size_for_vbr_check = min(raw_frame_size - 4, 150) + frame_body_for_vbr = file.read(read_size_for_vbr_check) + + # Combine header and body bytes for easy slicing in the VBR parser + frame_bytes_for_vbr = header_bytes_frame1 + frame_body_for_vbr + + # Check for VBR Header (Xing/Info/VBRI) + # This is only an informative check, we do not determine VBR/CBR from this. + # These headers are for Layer III only, Layers I and II do not have them. + self.vbr_info = self._parse_vbr_header(frame_bytes_for_vbr, self.header_results) + + frame_step_size = raw_frame_size + + # Check Stream Consistency by seeking to Frame 2 and 3 + # This determines VBR/CBR for all MPEG versions and Layers. + if raw_frame_size > 0: + frame2_start_abs_offset = self.first_frame_offset + frame_step_size + frame1_bit_rate_index = self.header_results["bit_rate_index"] + + stream_type_deduction = self._check_stream_consistency( + file, + frame1_bit_rate_index, + frame2_start_abs_offset, + frame_step_size, + ) + else: + stream_type_deduction = None + + # Final Result Compilation + if stream_type_deduction is not None and self.header_results.get("sync_word"): + self.tags = [ + self.header_results["bit_rate"], + self.header_results["sample_rate"], + self.header_results["chanel_mode"], + ] + + self.tags.append(stream_type_deduction) + + return self.tags + + return None + + +class ID3v2Decoder: + """Decodes the ID3v2 tag and calculates the file offset where the audio stream begins.""" + + def __init__(self, file_size: int, mpega: type[Any]): + self.id3v2_tag = None + self.file_size = file_size + self.id3_tag_size = None # Total tag size (10-byte header + content) + + self.tagsv22 = [ # Tag list for ID3v2.2 + b"AEN", + b"BUF", + b"CNT", + b"COM", + b"CRA", + b"CRM", + b"ETC", + b"EQU", + b"GEO", + b"LNK", + b"MCI", + b"MLL", + b"PIC", + b"POP", + b"REV", + b"RVA", + b"SLT", + b"STC", + b"TAL", + b"TBP", + b"TCM", + b"TCO", + b"TCR", + b"TDA", + b"TDY", + b"TEN", + b"TFT", + b"TIM", + b"TKE", + b"TLA", + b"TLE", + b"TMT", + b"TOA", + b"TOF", + b"TOL", + b"TOR", + b"TOT", + b"TP1", + b"TP2", + b"TP3", + b"TP4", + b"TPA", + b"TPB", + b"TRC", + b"TRD", + b"TRK", + b"TSS", + b"TT1", + b"TT2", + b"TT3", + b"TXT", + b"TXX", + b"TYE", + b"UFI", + b"ULT", + b"WAF", + b"WAR", + b"WAS", + b"WCM", + b"WCP", + b"WPB", + b"WXX", + b"WIR", + b"UIN", + ] + # Tag list for ID3v2.3 and 2.4, there are some uniques to both, but not enough + # to make repeating the list beneficial to speed or validity. + self.tagsv23 = [ + b"AENC", + b"APIC", + b"ASPI", + b"COMM", + b"COMR", + b"ENCR", + b"EQU2", + b"ETCO", + b"GEOB", + b"GRID", + b"LINK", + b"MCDI", + b"MLLT", + b"OWNE", + b"PRIV", + b"PCNT", + b"POPM", + b"POSS", + b"RBUF", + b"RVA2", + b"RVRB", + b"SEEK", + b"SIGN", + b"SYLT", + b"SYTC", + b"UFID", + b"USER", + b"USLT", + b"WCOM", + b"WCOP", + b"WOAF", + b"WOAR", + b"WOAS", + b"WORS", + b"WPAY", + b"WPUB", + b"WXXX", + b"TYER", + b"TDAT", + b"TIME", + b"TORY", + b"TALB", + b"TBPM", + b"TCOM", + b"TCON", + b"TCOP", + b"TDEN", + b"TDLY", + b"TDOR", + b"TDRC", + b"TDRL", + b"TDTG", + b"TENC", + b"TEXT", + b"TFLT", + b"TIPL", + b"TIT1", + b"TIT2", + b"TIT3", + b"TKEY", + b"TLAN", + b"TLEN", + b"TMCL", + b"TMED", + b"TMOO", + b"TOAL", + b"TOFN", + b"TOLY", + b"TOPE", + b"TOWN", + b"TPE1", + b"TPE2", + b"TPE3", + b"TPE4", + b"TPOS", + b"TPRO", + b"TPUB", + b"TRCK", + b"TRSN", + b"TRSO", + b"TSOA", + b"TSOC", + b"TSOP", + b"TSOT", + b"TSRC", + b"TSSE", + b"TSST", + b"TXXX", + ] + self.tagsv23_3letter = [ # Super niche 3 letter tags used in ID3v2.3 only + b"WAF", + b"WIR", + b"WYY", + ] + + def _check_id3v2_tag(self, head: bytes) -> Optional[int]: + """ + Checks for ID3v2 tags. Calculates the size of the ID3v2 tag from the + synchsafe size field (bytes 6-9). + + Returns the total tag size (header + content) on success, or None on failure. + """ + + if len(head) < 10: + return None # Header too small + + if head[0:3] != b"ID3": + return None # This should never happen + + size_field = head[6:10] + tag_content_size = 0 + tag = None + + # ID3v2.2 + if head[0:5] == b"ID3\x02\x00": + if head[10:13] not in self.tagsv22: + return None + # ID3v2.2 uses a standard 4-byte big-endian integer for size + tag_content_size = (size_field[0] << 24) | (size_field[1] << 16) | (size_field[2] << 8) | size_field[3] + tag = "ID3v2.2" + + # ID3v2.3 or ID3v2.4 + elif head[0:5] == b"ID3\x03\x00" or head[0:5] == b"ID3\x04\x00": + # Quick tag scan for v2.3/v2.4 (4-letter frames) + if head[10:14] not in self.tagsv23: + # Check for niche 3-letter v2.3 frames + if head[10:13] not in self.tagsv23_3letter: + return None + # ID3v2.3 and ID3v2.4 use the Synchsafe Integer for size + tag_content_size = (size_field[0] << 21) | (size_field[1] << 14) | (size_field[2] << 7) | size_field[3] + tag = "ID3v2.3" if head[0:5] == b"ID3\x03\x00" else "ID3v2.4" + + else: + return None # Invalid tag version + + self.id3v2_tag = tag + self.id3_tag_size = 10 + tag_content_size # Total tag size plus 10-byte header + + # Return the offset where the audio stream starts + return self.id3_tag_size + + def decode_id3v2(self, head: bytes) -> int: + """ + Decodes the ID3v2 tag header (if present at offset 0). + + Returns the absolute file offset where the first audio frame should be + (0 if no ID3v2 tag is found). + """ + audio_start_offset = self._check_id3v2_tag(head) + + # If _check_id3v2_tag was successful, it returns the tag size (the starting offset). + # Otherwise, it returns None, meaning the audio starts at offset 0. + return audio_start_offset if audio_start_offset is not None else 0 + + +def build_name(mpega, id3v2_tags: str, eof_tags: List) -> str | None: + """ + Build an return the full name string and extension. + + Name is constructed from scan results, some examples of final output: + MPEG-1 Audio Layer III (MP3) file [64k 44.1Khz Stereo VBR LAME(Xing) ID3v1 TAG+] + MPEG-1 Audio Layer II (MP2) file [64k 44.1Khz Mono CBR] + MPEG-2 Audio Layer III (MP3) file [64k 24.0Khz Stereo CBR LAME(Info) ID3v2.4] + MPEG-1 Audio Layer I (MP1) file [384k 32.0Khz Stereo CBR] + MPEG-2.5 Audio Layer III (MP3) file [32k 12.0Khz Stereo CBR LAME(Info) ID3v2.4] + MPEG-1 Audio Layer III (MP3) file [160k 44.1Khz Stereo VBR VBRI ID3v2.3] + """ + mpega_results = mpega.header_results + mpega_tags = mpega.tags + vbr_type = mpega.vbr_info + + # Set version: MPEG-1, MPEG-2, MPEG-2.5 + # Reserved if a super rare fringe case that should never happen + version = ( + mpega_results["mpeg_version"].replace(" ", "-") + if mpega_results["mpeg_version"] != "Reserved" + else "MPEG-Unknown Version" + ) + if mpega_results["layer"] == "Layer I (MP1)": + layer = mpega_results["layer"] + ext = ".mp1" + elif mpega_results["layer"] == "Layer II (MP2)": + layer = mpega_results["layer"] + ext = ".mp2" + elif mpega_results["layer"] == "Layer III (MP3)": + layer = mpega_results["layer"] + ext = ".mp3" + else: + # This should never happen + layer = "Unknown Layer" + ext = ".mpga" + name = f"{version} Audio {layer} file" + name_end = "" + name_list = [] + try: + if mpega_tags: + name_list.extend(mpega_tags) # This adds sample, bitrate etc.. + if vbr_type: + tag_name = f"LAME({vbr_type})" if vbr_type in ("Xing", "Info") else vbr_type + name_list.append(tag_name) # Add VBR encoder info for LAME or Fraunhofer + if id3v2_tags: + name_list.append(id3v2_tags) # This adds ID3v2 tag + if eof_tags: + name_list.extend(eof_tags) # This adds tags such as ID3v1, APE, TAG+ etc... + name_end += f" [{' '.join(name_list)}]" + full_name = name + name_end + except Exception: + return None, None # Really should not happen + return full_name, ext + + +def test_mpega(file_path: os.PathLike | str, head: bytes) -> Optional[Match]: + """Main workflow""" + if DataCache.is_cached() and DataCache.get_file_path() == file_path: + if DataCache.is_matched(): + return DataCache.get_result() # Send cached results + else: + return None # No match was made + else: + DataCache.set_file_path(file_path) + eof = EndOfFileTags(os.path.getsize(file_path)) + mpega = MpegAudioDecoder() + id3v2 = ID3v2Decoder(os.path.getsize(file_path), mpega) + try: + with open(file_path, "rb") as file: + eof.find_tags(file) + # If ID3v2 present, test and then adjust frame offset + if b"ID3" == head[0:3]: + mpega.first_frame_offset = id3v2.decode_id3v2(head) + mpega.decoder(head, file) + except Exception: + return None # If the decode process fails for any unknown reason + + full_name, ext = build_name(mpega, id3v2.id3v2_tag, eof.tags) + if full_name is None or ext is None: + return None # Name building failed for some reason + + # Store the result for future calls, then return + result = Match(extension=ext, name=full_name, mime_type="audio/mpeg", confidence=1.0) + DataCache.set_result(result) + return result + + +def main(file_path: os.PathLike | str, head: bytes, _) -> Optional[Match]: + return test_mpega(file_path, head) diff --git a/pyproject.toml b/pyproject.toml index 39220a0..dd61b96 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,6 +52,14 @@ include = [ "puremagic*" ] [tool.setuptools.dynamic] version = { attr = "puremagic.main.__version__" } +[tool.black] +# Prevent black from linting as we use Ruff now +force-exclude = '.*\.py$' + +[tool.flake8] +# Prevent flake8 from linting as we use Ruff now +exclude = ["*"] + [tool.ruff] target-version = "py312" diff --git a/test/resources/audio/test_mp3_vbr_info_128k_notags.mp3 b/test/resources/audio/test_mp3_vbr_info_128k_notags.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ba2b7b261c64a258d7a423cff24df5caf4329394 GIT binary patch literal 52034 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 bfDh3}sDytH`orb^U;E?#{}cZ|zXSgVYR6JR literal 0 HcmV?d00001 diff --git a/test/resources/audio/test_mp3_vbr_xing_128k_3di_id3v1.mp3 b/test/resources/audio/test_mp3_vbr_xing_128k_3di_id3v1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a39d0230d890385a79961f2d53693ac5d5e3fee3 GIT binary patch literal 52172 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 VX$3jMBltVGh2Iq(eE-+={{W`vhrs{< literal 0 HcmV?d00001 diff --git a/test/resources/audio/test_mp3_vbr_xing_128k_apev1_id3v1.mp3 b/test/resources/audio/test_mp3_vbr_xing_128k_apev1_id3v1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..4d94e43d4dfa8908a455e982305a9a30973365d1 GIT binary patch literal 52410 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 befy8g_;0tr@9XbV{qHuv?(zTiso?w%FCew} literal 0 HcmV?d00001 diff --git a/test/resources/audio/test_mp3_vbr_xing_128k_ext_id3v1.mp3 b/test/resources/audio/test_mp3_vbr_xing_128k_ext_id3v1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..388ad5deaf7b0015bcb65c9c61f3d30347bd06f7 GIT binary patch literal 52162 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 literal 0 HcmV?d00001 diff --git a/test/resources/audio/test_mp3_vbr_xing_128k_lyrics3v2_id3v1.mp3 b/test/resources/audio/test_mp3_vbr_xing_128k_lyrics3v2_id3v1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9f55ac52690a0ed3936f634aef411e9da6656a25 GIT binary patch literal 55461 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 b@2)@0?w_?Vdv{jd{N1P5yPv#X{QBZwiI)$# literal 0 HcmV?d00001 diff --git a/test/resources/audio/test_mp3_vbr_xing_128k_notags.mp3 b/test/resources/audio/test_mp3_vbr_xing_128k_notags.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..4e5875dcf5f6b17d9a73b9e8290bbd248da8c804 GIT binary patch literal 52034 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 bfDh3}sDytH`orb^U;E?#{}cZ|zXSgVT6j`R literal 0 HcmV?d00001 diff --git a/test/resources/audio/test_mp3_vbr_xing_128k_tagplus_apev2_id3v1.mp3 b/test/resources/audio/test_mp3_vbr_xing_128k_tagplus_apev2_id3v1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..89cda10d673f1cbf109b22d35119e78ea22d4f4b GIT binary patch literal 52634 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 literal 0 HcmV?d00001 diff --git a/test/resources/audio/test_mp3_vbr_xing_128k_tagplus_id3v1.mp3 b/test/resources/audio/test_mp3_vbr_xing_128k_tagplus_id3v1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3e37677d8b72cb215f09830be37e522d85588d4a GIT binary patch literal 52389 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 BuA2Y= literal 0 HcmV?d00001 diff --git a/test/resources/audio/test_mpeg2_mp3_VBR_128k_id3v2_24.mp3 b/test/resources/audio/test_mpeg2_mp3_VBR_128k_id3v2_24.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b21eb5f952faffde18ccd2fad49013d3cff5b0e9 GIT binary patch literal 30599 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