1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
fixup - Music directory fixer
=============================
.. {{{cog
.. cog.out(cog_pluginHelp("fixup"))
.. }}}
*Performs various checks and fixes to directories of audio files.*
Names
-----
fixup
Description
-----------
Operates on directories at a time, fixing each as a unit (album,
compilation, live set, etc.). All of these should have common dates,
for example but other characteristics may vary. The ``--type`` should be used
whenever possible, ``lp`` is the default.
The following test and fixes always apply:
1. Every file will be given an ID3 tag if one is missing.
2. Set ID3 v2.4.
3. Set a consistent album name for all files in the directory.
4. Set a consistent artist name for all files, unless the type is
``various`` in which case the artist may vary (but must exist).
5. Ensure each file has a title.
6. Ensure each file has a track # and track total.
7. Ensure all files have a release and original release date, unless the
type is ``live`` in which case the recording date is set.
8. All ID3 frames of the following types are removed: USER, PRIV
9. All ID3 files have TLEN (track length in ms) set (or updated).
10. The album/dir type is set in the tag. Types of ``lp`` and ``various``
do not have this field set since the latter is the default and the
former can be determined during sync. In ID3 terms the value is in
TXXX (description: ``eyeD3#album_type``).
11. Files are renamed as follows:
- Type ``various``: ${track:num} - ${artist} - ${title}
- Type ``single``: ${artist} - ${title}
- All other types: ${artist} - ${track:num} - ${title}
- A rename template can be supplied in --file-rename-pattern
12. Directories are renamed as follows:
- Type ``live``: ${best_date:prefer_recording} - ${album}
- All other types: ${best_date:prefer_release} - ${album}
- A rename template can be supplied in --dir-rename-pattern
Album types:
- ``lp``: A traditinal "album" of songs from a single artist.
No extra info is written to the tag since this is the default.
- ``ep``: A short collection of songs from a single artist. The string 'ep'
is written to the tag's ``eyeD3#album_type`` field.
- ``various``: A collection of songs from different artists. The string
'various' is written to the tag's ``eyeD3#album_type`` field.
- ``live``: A collection of live recordings from a single artist. The string
'live' is written to the tag's ``eyeD3#album_type`` field.
- ``compilation``: A collection of songs from various recordings by a single
artist. The string 'compilation' is written to the tag's
``eyeD3#album_type`` field. Compilation dates, unlike other types, may
differ.
- ``demo``: A demo recording by a single artist. The string 'demo' is
written to the tag's ``eyeD3#album_type`` field.
- ``single``: A track that should no be associated with an album (even if
it has album metadata). The string 'single' is written to the tag's
``eyeD3#album_type`` field.
Options
-------
.. code-block:: text
- Type ``various``: ${track:num} - ${artist} - ${title} - Type ``single``: ${artist} - ${title} - All other types:
${artist} - ${track:num} - ${title} - A rename template can be supplied in --file-rename-pattern 12. Directories are
renamed as follows: - Type ``live``: ${best_date:prefer_recording} - ${album} - All other types:
${best_date:prefer_release} - ${album} - A rename template can be supplied in --dir-rename-pattern Album types: -
``lp``: A traditinal "album" of songs from a single artist. No extra info is written to the tag since this is the
default. - ``ep``: A short collection of songs from a single artist. The string 'ep' is written to the tag's
``eyeD3#album_type`` field. - ``various``: A collection of songs from different artists. The string 'various' is
written to the tag's ``eyeD3#album_type`` field. - ``live``: A collection of live recordings from a single artist. The
string 'live' is written to the tag's ``eyeD3#album_type`` field. - ``compilation``: A collection of songs from
various recordings by a single artist. The string 'compilation' is written to the tag's ``eyeD3#album_type`` field.
Compilation dates, unlike other types, may differ. - ``demo``: A demo recording by a single artist. The string 'demo'
is written to the tag's ``eyeD3#album_type`` field. - ``single``: A track that should no be associated with an album
(even if it has album metadata). The string 'single' is written to the tag's ``eyeD3#album_type`` field.
--type {lp,ep,compilation,live,various,demo,single}
How to treat each directory. The default is 'lp', although you may be prompted for an alternate
choice if the files look like another type.
--fix-case Fix casing on each string field by capitalizing each word.
-n, --dry-run Only print the operations that would take place, but do not execute them.
--no-prompt Exit if prompted.
--dotted-dates Separate date with '.' instead of '-' when naming directories.
--file-rename-pattern FILE_RENAME_PATTERN
Rename file (the extension is not affected) based on data in the tag using substitution variables:
$album, $album_artist, $artist, $best_date, $best_date:prefer_recording,
$best_date:prefer_recording:year, $best_date:prefer_release, $best_date:prefer_release:year,
$best_date:year, $disc:num, $disc:total, $file, $file:ext, $original_release_date,
$original_release_date:year, $recording_date, $recording_date:year, $release_date,
$release_date:year, $title, $track:num, $track:total
--dir-rename-pattern DIR_RENAME_PATTERN
Rename directory based on data in the tag using substitution variables: $album, $album_artist,
$artist, $best_date, $best_date:prefer_recording, $best_date:prefer_recording:year,
$best_date:prefer_release, $best_date:prefer_release:year, $best_date:year, $disc:num,
$disc:total, $file, $file:ext, $original_release_date, $original_release_date:year,
$recording_date, $recording_date:year, $release_date, $release_date:year, $title, $track:num,
$track:total
--no-dir-rename Do not rename the directory.
.. {{{end}}}
|