TagDog gets genre information from the EchoNest API and updates ID3 tag data on MP3 files. The MP3 files must already have valid artist ID3 tag data.
TagDog can be made to do other things (i.e. add artist/title information based on audio fingerprints) fairly easily due to its architecture but I have no need for that at the moment.
Python 2.7 is required.
./tagdog.py [--dry-run] --echonest-key XXXXXXXXX /path/to/music/
- Directories are scanned for files.
- An empty "song info" object is created for each file.
- A list of registered "populator" functions are run and passed a copy of the song info object. Each populator may add additional info to the song info object.
- A list of registered writer functions are run and passed a copy of the song info object. A writer may write the data back to the file.
- ID3Reader: Reads ID3 tags and updates the song info object.
- EchoNestTerms: Adds genre information if it does not yet exist using the "artist" field on the song info object.
- ID3Writer: Writes ID3 tags from the song info object.
See LICENSE.txt.