File: fixup_plugin.rst

package info (click to toggle)
eyed3 0.9.7-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,380 kB
  • sloc: python: 13,282; makefile: 411; sh: 69
file content (113 lines) | stat: -rw-r--r-- 6,675 bytes parent folder | download | duplicates (2)
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}}}