Skip to main content

Music file hasher

Project description

['mp3hash\n', '=======\n', '\n', 'Hashes music files ignoring meta-data.\n', '\n', 'Useful to detect the same song in different tagged files.\n', '\n', 'Use\n', '===\n', '\n', 'Similarly to ``sha1sum`` or ``md5sum``, it takes one or more files and\n', 'returns the hashes, in this way:\n', '\n', '::\n', '\n', ' $ ./mp3hash *.mp3\n', ' 6611bc5b01a2fc6a6386a871e8c51f86e1f12b33 13_Hotel-California-(Gipsy-Kings).mp3\n', ' 6611bc5b01a2fc6a6386a871e8c51f86e1f12b33 14_Hotel-California-(Gipsy-Kings).mp3\n', '\n', 'It returns the same hash number, even though the tags are different, and\n', 'so their regular hashes:\n', '\n', '::\n', '\n', ' $ sha1sum *.mp3\n', ' 6a1d5f8317add10e205ae30174630b47645fb5b4 13_Hotel-California-(Gipsy-Kings).mp3\n', ' c28d6976114d31df3366d9935eb0bedd36cf1f0b 14_Hotel-California-(Gipsy-Kings).mp3\n', '\n', "The hash it's made strictly using the music data in the file, by\n", 'calculating the tags sizes and omitting them.\n', '\n', 'The default hashing algorithm is ``sha-1``, but any algorithm can be\n', "used as long it's supported by the Python's ``hashlib`` module. A\n", 'complete list of all available hashing algorithms can be obtained by\n', 'calling the program with the ``--list-algorithms``.\n', '\n', '::\n', '\n', ' $ ./mp3hash --list-algorithms\n', ' md5\n', ' sha1\n', ' sha224\n', ' sha256\n', ' sha384\n', ' sha512\n', '\n', ' ./mp3hash --algorithm md5\n', ' ac0fdd89454528d3fbdb19942a2e6653 13_Hotel-California-(Gipsy-Kings).mp3\n', ' ac0fdd89454528d3fbdb19942a2e6653 14_Hotel-California-(Gipsy-Kings).mp3\n', '\n', 'Install\n', '=======\n', '\n', "It doesn't have any dependences besides ``python2.6+`` so you should be\n", 'able to run the script straight.\n', '\n', 'Technical details\n', '=================\n', '\n', 'Supported and ignored meta-data tags are: id3v1, id3v2 both in their\n', 'simple and indexed forms\n', '\n', 'About id3v1\n', '-----------\n', '\n', "- id3v1 is 128 bytes at the end of the file starting with 'TAG'\n", '- id3v1 extended is 227 bytes before regular id3v1 tag starting with\n', " 'TAG+'\n", '\n', 'total size: 128 + (227 if extended)\n', '\n', 'About id3v2\n', '-----------\n', '\n', '- id3v2 header have the following fields alog the 10 first bytes in the\n', ' file - byte 5 holds flags. 6th bit indicates extended tag - bytes\n', ' 6-10 are the tag size (not counting header)\n', '\n', '- id3v2 extended has a 10 bytes header after the regular id3v2 - bytes\n', ' 1-4 are the tag size (not counting header nor padding) - bytes 5-6\n', ' holds some flags. Leftmost bit indicates CRC presence - bytes 6-10\n', ' are the tag padding size (extra blank size within tag)\n', '\n', 'total size: 10 + tagsize + (10 + etagsize + padding if extended)\n', '\n', 'Based on id3v1 wikipedia docs: http://en.wikipedia.org/wiki/ID3 Based on\n', 'id3v2 docs: http://www.id3.org/id3v2.3.0\n']

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mp3hash-0.0.3.tar.gz (4.5 kB view details)

Uploaded Source

File details

Details for the file mp3hash-0.0.3.tar.gz.

File metadata

  • Download URL: mp3hash-0.0.3.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mp3hash-0.0.3.tar.gz
Algorithm Hash digest
SHA256 56a0079df4161fb62b4809e7a49ad273b88d0a4cd4aa50766ad2b76447adff2b
MD5 6ed18ee37ab24f99f1704d3e7f7a043b
BLAKE2b-256 f0c9a874e216450f807bf4f2c84c93b817ef37535c276074815d54c2a45450a0

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page