; Populate these with an API keyset retrieved from http://www.last.fm/api
verbose = true
;mediaDir = d:/media/music
logFile = lastfmtagupdater.log
cacheFile = librarycache.xml ; The name of the XML cache file
niceness = 250 ; How nice to be to the LastFM servers (delay, in ms, between requests)
ignoreCase = true ; Should we treat 'XYZ' the same as 'xyz', when querying artists, albums, and tracks?
refetchCachedTags = false ; Should we re-fetch LastFM tags, if we already have them in the cache?
getArtistTags = 10 ; The number of artist tags to retrieve (0 to disable)
getTrackTags = 5 ; The number of track tags to retrieve (0 to disable)
minArtistTagWeight = 25 ; The minimum LastFM tag weight to consider (0 to 100)
minTrackTagWeight = 50 ; The minimum LastFM tag weight to consider (0 to 100)
maxTagLength = 25 ; Throw away any tags longer than this
minLibraryCount = 5 ; The minimum number of times a tag must appear in your library before being used
minLastFMCount = 0 ; The minimum LastFM tag count to use (WARNING: only their 'top tags' have a count > 0)
tagSynonymsFile = tagsyn.txt ; The synonyms file (if any) to use for tag substitution
artistSkipListFile = artistskiplist.txt ; Skip fetching/updating any artist listed in this file
capTagWords = true ; Capitalize each word in a tag? (or preserve original case)
skipExtensions = jpg,ini,m3u,db,nfo,plist,itc2,itdb,itl,xml,ipa,png,par2 ; File extensions to ignore
; This option dictates whether we'll write a special 'untagged' metatag, if we
; don't receive any tag information from LastFM. This may make it easier for you to
; identify misnamed artists or tracks. This tag will be treated as any other tag, if
; enabled, meaning that it can overwrite existing tags (if overwrite is enabled).
; Valid choices:
; artist - add 'Untagged Artist' if the artist is missing tag info
; track - add 'Untagged Track' if the track is missing tag info (quite common)
; both - add either/both
; Comment out to disable
writeUntaggedTag = artist
; Which artist field should we preferentially use: artist, albumartist, both
; We'll fall back to the other type, if the first choice is empty
artistField = both
; This option defines our updating policy for id3v1 tags.
; 0 = remove them
; 1 = update existing fields, but don't add new ones
; 2 = create and/or update id3v1 fields
id3v1Handling = 1
; There's an odd bug somewhere in the interaction between some set of Mutagen, iTunes, and/or WMP that causes
; duplicate ID3v2 headers. This tends to break playback at least in iTunes. If you experience this problem,
; try setting this option to 'true' - this will cause all of the existing id3v2 headers to be deleted and
; recreated, when the file gets updated. This may result in some superfluous blank padding between the frames
; and content, however.
id3v2DupeHeaderFix = false
; Which field(s) should the updated tags be persisted to, in the original media file? Multiple fields
; may be specified by comma separating the values. Any field referenced by both tag sources will
; be populated by an integrated list (merged by weight, with lower-scoring duplicates removed and artist
; tags given initial preference).
; Allowable destination values are: genre, comment, grouping
; Make sure to look at your music, before picking a field to overwrite. Although genre and comment are
; likely fine, some types of music (e.g. classical) use grouping in a meaningful way and you may not
; wish to blow it away.
; Also, one obvious caveat about track tags: different tracks may have different tags. If you use them in
; a field, you may end up with the same artist broken into multiple buckets. This may become annoying, if
; you're just using the top tag value (such as for some media player that doesn't support multiple tags).
artistTagFields = genre, grouping, comment
trackTagFields = genre, comment
overwriteFields = genre, comment, grouping ; The list of fields we can overwrite, if non-empty
;forceOverwriteFields = genre, comment, grouping ; The list of fields to overwrite, no matter what
; The maximum number of tags (integrated or otherwise) to persist in a given
; field, if that field is used. Some media players can't properly parse multiple-values (e.g. itunes),
; so you may need to set to only keep the first tag or use smart playlists to do string searches within
; the bucket.
genreMaxTags = 8 ; WMP supports multi-genre, so load 'er up
groupingMaxTags = 1 ; iTunes doesn't, so keep one field 'clean'. Switch genre->grouping in view columns.
commentMaxTags = 15
; When writing back the tag list, these options allow you to skip some number of initial tags on each
; field. Given a raw tag list of [Rock, Pop, 80s] and a skipCount of 1, for example, the written tag list
; would contain [Pop, 80s].
genreTagSkipCount = 0
groupingTagSkipCount = 0
commentTagSkipCount = 0
; We currently support three tag sorting options, which may be configured independently for each target
; record - based on the tag's weight for the actual album or track, e.g. 'accuracy'
; popularity - based on the lastFM public tag count (but only 'top tags' have non-zero counts)
; library - based on the frequency within your library (as either an artist or track tag)
; Multiple sort options may be specified (e.g. record, popularity, library), which uses each
; subsequent sort criteria as a tie-breaker for the previous.
genreSort = record, library, popularity
groupingSort = record, library, popularity
commentSort = record, library, popularity
; These options allow you to specify how tags should be persisted. The optional delimiters wrap each tag and
; the separator, well, separates each tag. With start/end delims of [ and ], you will get tags like [Rock].
; Each value here is a string. Most values may be entered 'as-is', but some need to be specially encoded to
; bypass config file special chars. You'll need to use the following substitutions, for the following chrs:
; semi = ;
; space = ' ' (single whitespace)
; hash = #
; percent = %
; tab = \t
;tagStartDelim = [ ; An optional char to place before a tag, e.g. [Rock] has start/end delims of [ and ]
;tagEndDelim = ] ; An optional char to place after a tag, e.g. [Rock] has start/end delims of [ and ]
tagSep = semi ; The tag separation char. Enter 'semi' for a ; and 'space' for a space (no quotes).