1KID3(1)                        The Kid3 Handbook                       KID3(1)
2
3
4

NAME

6       kid3, kid3-qt, kid3-cli - Kid3 ID3 Tagger
7

SYNOPSIS

9       kid3 [--help | --author | --version | --license | --desktopfile FILE]
10            [FILE...]
11
12       kid3-qt [--portable] [Qt-options] [FILE...]
13
14       kid3-cli [--portable] [--dbus] [-h | --help] [-c COMMAND1]
15                [-c COMMAND2...] [FILE...]
16

OPTIONS

18       --portable
19           Store configuration in file kid3.ini inside application directory.
20
21       FILE
22           If FILE is the path to a directory, it will be opened. If one or
23           more file paths are given, their common directory is opened and the
24           files are selected.
25
26   kid3
27       --help
28           Show help about options.
29
30       --author
31           Show author information.
32
33       --version
34           Show version information.
35
36       --license
37           Show license information.
38
39       --desktopfile FILE
40           The base file name of the desktop entry for this application.
41
42   kid3-qt
43       Qt-options
44           See qt5options(7).
45
46   kid3-cli
47       --dbus
48           Activate the D-Bus interface.
49
50       -c
51           Execute a command. Multiple -c options are possible, they are
52           executed in sequence. See the section about kid3-cli for a
53           description of the available commands.
54
55       -h|--help
56           Show help about options and commands.
57

INTRODUCTION

59       Kid3 is an application to edit the ID3v1 and ID3v2 tags in MP3 files in
60       an efficient way. These tags can be edited by most MP3 players, but not
61       in a very comfortable and efficient way. Moreover the tags in
62       Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio,
63       WavPack, WMA, WAV, AIFF files and tracker modules (MOD, S3M, IT, XM)
64       are supported too.
65
66       Kid3 does not grab nor encode MP3 files, but it is targeted to edit the
67       ID3 tags of all files of an album in an efficient way, i.e. with as few
68       mouse clicks and key strokes as possible. Where most other programs can
69       edit either ID3v1 or ID3v2 tags, Kid3 has full control over both
70       versions, can convert tags between the two formats and has access to
71       all ID3v2 tags. Tags of multiple files can be set to the same value,
72       e.g. the artist, album, year and genre of all files of an album
73       typically have the same values and can be set together. If the
74       information for the tags is contained in the file name, the tags can be
75       automatically set from the file name. It is also possible to set the
76       file name according to the tags found in the file in arbitrary formats.
77
78       The editing task is further supported by automatic replacement of
79       characters or substrings, for instance to remove illegal characters
80       from filenames. Automatic control of upper and lower case characters
81       makes it easy to use a consistent naming scheme in all tags.
82
83       The tag information for full albums can be taken from gnudb.org[1],
84       TrackType.org[2], MusicBrainz[3], Discogs[4], Amazon[5] or other
85       sources of track lists. The import format is freely configurable by
86       regular expressions.
87
88       Please report any problems or feature requests to the author.
89

USING KID3

91   Kid3 features
92       ·   Edit ID3v1.1 tags
93
94       ·   Edit all ID3v2.3 and ID3v2.4 frames
95
96       ·   Edit tags of multiple files
97
98       ·   Convert between ID3v1 and ID3v2 tags
99
100       ·   Edit MP3, Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2,
101           Speex, TrueAudio, WavPack, WMA, WAV and AIFF tags
102
103       ·   Generate tags from filename
104
105       ·   Generate tags from the contents of tag fields
106
107       ·   Generate filename from tags
108
109       ·   Generate and change directory names from tags
110
111       ·   Generate playlist file
112
113       ·   Automatic case conversion and string translation
114
115       ·   Import from gnudb.org[1], TrackType.org[2], MusicBrainz[3],
116           Discogs[4], Amazon[5] and other data sources
117
118       ·   Export as CSV, HTML, playlist, Kover XML and other formats.
119           Exported CSV files can be imported again.
120
121   Example Usage
122       This section describes a typical session with Kid3. Let's assume we
123       have a directory containing MP3 files with the tracks from the album
124       "Let's Tag" from the band "One Hit Wonder". The directory is named in
125       the "artist - album" format, in our case One Hit Wonder - Let's Tag.
126       The directory contains the tracks in the "track title.mp3" format,
127       which I think is useful because the filenames are short (important when
128       using mobile MP3 players with small displays) and in the correct order
129       when sorted alphabetically (important when using hardware MP3 players
130       which play the tracks in alphabetical order or in the order in which
131       they are burnt on CD and that order is alphabetical when using
132       mkisofs). Besides this, the artist and album information is already in
133       the directory name and does not have to be repeated in the filename.
134       But back to our example, the directory listing looks like this:
135
136       01 Intro.mp3
137
138       02 We Only Got This One.mp3
139
140       03 Outro.mp3
141
142       These files have no tags yet and we want to generate them using Kid3.
143       We use Open (File menu or toolbar) and select one of the files in this
144       directory. All files will be displayed in the file listbox. Lazy as we
145       are, we want to use the information in the directory and file names to
146       generate tags. Therefore we select all files, then click the To: Tag 1
147       button in the File section. This will set the title, artist, album and
148       track values in all files. To set the year and genre values of all
149       files, we keep all files selected and type in "2002" for the Date and
150       select "Pop" from the Genre combobox. To set only these two values,
151       their checkboxes are automatically checked and all other checkboxes are
152       left unchecked. Now we change the selection by only selecting the first
153       file and we see that all tags contain the correct values. The tags of
154       the other files can be verified too by selecting them one by one. When
155       we are satisfied with the tags, we use Save (File menu or toolbar).
156       Selecting Create Playlist from the File menu will generate a file One
157       Hit Wonder - Let's Tag.m3u in the directory.
158

COMMAND REFERENCE

160   The GUI Elements
161       The Kid3 GUI is separated in six sections: At the left are the file and
162       directory listboxes, the right side contains the File, Tag 1, Tag 2 and
163       Tag 3 sections.
164
165       File List
166           The file list contains the names of all the files in the opened
167           directory which match the selected file name filter (typically
168           *.mp3 *.ogg *.opus *.dsf *.flac *.mpc *.aac *.m4a *.m4b *.m4p *.mp4
169           *.mp2 *.spx *.tta *.wv *.wma *.wav *.aiff *.ape). A single or
170           multiple files can be selected. To select no file, click into the
171           empty area after the listbox entries. The selection determines the
172           files which are affected by the operations which are available by
173           using the buttons described below.
174
175           Besides Name, also other columns Size, Type, Date Modified with
176           file details can be displayed. Columns can be hidden by unchecking
177           their name in the context menu of the list header. The order of the
178           columns can be changed by drag and drop. The sort order can be
179           toggled by clicking on the column header.
180
181           At the left of the names an icon can be displayed: a disc to show
182           that the file has been modified or information about which tags are
183           present (V1, V2, V1V2 or NO TAG, no icon is displayed if the file
184           has not been read in yet).
185
186           Directories are displayed with a folder icon. If a directory is
187           opened, its files are displayed in a hierarchical tree. By
188           selecting files from subdirectories, operations can be executed on
189           files in different directories, which is useful if the music
190           collection is organized with a folder for each artist containing
191           folders for albums of this artist.
192
193           Clicking the right mouse button inside the file list opens a
194           context menu with the following commands:
195
196           ·   Expand all: Expands all folder trees (only the current tree if
197               the shift key is pressed)
198
199           ·   Collapse all: Collapses all folder trees
200
201           ·   Rename: Changes the name of a file
202
203           ·   Move to Trash: Moves a file to the trash
204
205           ·   Play: Plays a file, see Play. If the selected file is a
206               playlist, the files of the playlist will be played.
207
208           ·   Edit: Edit a playlist, see Edit Playlist.
209
210           ·   The subsequent entries are user commands, which can be defined
211               in the User Actions tab of Configure Kid3. The playback on
212               double click can also be activated there.
213
214
215       Edit Playlist
216           A playlist can be created empty or containing the tracks of a
217           folder, see Create Playlist. The playlist file created in such a
218           way can be edited by double click or using Edit from the file list
219           context menu. A dialog with the entries of the playlist is shown.
220           It is possible to open multiple playlists simultaneously.
221
222           New entries can be added by drag and drop from the file list, a
223           file manager or another playlist. If an entry is dragged from
224           another playlist, it will be moved or copied depending on the
225           system. To invoke the other operation, respectively, the Shift,
226           Ctrl or Alt (to copy instead of move on macOS) key has to be
227           pressed. Reordering entries within the playlist is also possible
228           via drag and drop. Alternatively, entries can be moved using the
229           keyboard shortcuts Ctrl+Shift+Up and Ctrl+Shift+Down (on macOS
230           Command has to be pressed instead of Ctrl). An entry can be removed
231           using the Delete key.
232
233           Please note the following: To drag entries from the file list, they
234           have to be held at the left side (near the icons), the same gesture
235           at the right side will perform a multi selection, such an action is
236           hereby still easily possible.
237
238           When a playlist has been modified, the changes can be stored using
239           Save or discarded using Cancel. When the window is closed, a
240           confirmation prompt is shown if there are unsaved changes.
241
242           Tracks selected in a playlist will be automatically selected in the
243           file list, thereby making it possible to edit their tags.
244
245           To execute actions on a playlist, its file must be selected in the
246           file list.  Edit from the context menu will lead to the dialog
247           described in this section, and Play will start the media player
248           with the tracks from the playlist. User actions can act on
249           playlists, for example Export Playlist Folder, which copies the
250           files from a playlist into a folder.
251
252       Directory List
253           The directory list contains the names of the directories in the
254           opened directory, as well as the current (.) and the parent (..)
255           directory. It allows one to quickly change the directory without
256           using the Open...  command or drag and drop.
257
258           Column visibility, order and sorting can be configured as described
259           in the section about the file list.
260
261       File
262           Shows information about the encoding (MP3, Ogg, Opus, DSF, FLAC,
263           MPC, APE, MP2, MP4, AAC, Speex, TrueAudio, WavPack, WMA, WAV,
264           AIFF), bit rate, sample rate, channels and the length of the file.
265
266           The Name line edit contains the name of the file (if only a single
267           file is selected). If this name is changed, the file will be
268           renamed when the Save command is used.
269
270           The Format combo box and line edit contains the format to be used
271           when the filename is generated from the first or the second tag.
272           The filename can contain arbitrary characters, even a directory
273           part separated by a slash from the file name, but that directory
274           must already exist for the renaming to succeed. The following
275           special codes are used to insert tag values into the filename:
276
277           ·   %s %{title} Title (Song)
278
279           ·   %a %{artist} Artist
280
281           ·   %l %{album} Album
282
283           ·   %c %{comment} Comment
284
285           ·   %y %{year} Year
286
287           ·   %t %{track} Track (e.g. 01)
288
289           ·   %t %{track.n} Track with field width n (e.g. 001 for
290               %{track.3})
291
292           ·   %T %{tracknumber} Track (without leading zeros, e.g. 1)
293
294           ·   %g %{genre} Genre
295
296           ·   %{ignore} Ignored when generating tags from the file name
297
298           The format codes are not restricted to the examples given above.
299           Any frame name can be used, for instance unified frame names like
300           %{albumartist}, %{discnumber.1}, %{bpm} or format specific names
301           like %{popm}.
302
303           It is possible to prepend and append strings to the replacement for
304           a format code by adding them in double quotes inside the curly
305           braces of a format code. These strings will only be put into the
306           resulting string if the format code yields a nonempty value. For
307           example, if the file name shall both contain the title and the
308           subtitle, one could use %{title} [%{subtitle}] in the format
309           string. But this would result in a string ending with [] if no
310           subtitle frame exists for a file. In order to omit the brackets if
311           no subtitle is present, %{title}%{" ["subtitle"]"} shall be used
312           instead. This will omit the brackets, the leading space and the
313           subtitle if not subtitle exists.
314
315           The list of available formats can be edited in the dialog which
316           appears when clicking the Filename from tag button in the File tab
317           of the settings.
318
319           A second Format combo box (with arrow down) is used to generate the
320           tags from the filename. If the format of the filename does not
321           match this pattern, a few other commonly used formats are tried.
322
323           Some commonly used filename formats are already available in the
324           combo box, but it is also possible to type in some special format
325           into the line edit.
326
327           The list of available formats can be edited in the dialog which
328           appears when clicking the Tag from filename button in the File tab
329           of the settings.
330
331           Internally, a regular expression is built from the format codes. If
332           advanced regular expressions are required, the format to generate
333           the tags from the filenames can be given as a complete regular
334           expression with captures which are preceded by the format codes,
335           e.g. to extract the track numbers without removal of leading zeros,
336           a format like "/%{track}(\d+) %{title}(.*)" could be used.
337
338           From: Tag 1, Tag 2: Sets the filename using the selected format and
339           the first tag or the second tag, respectively.
340
341           To: Tag 1, Tag 2: The tags are set from the filename. First, the
342           format specified in Format is used. If the existing filename does
343           not match this format, the following formats are tried:
344
345           ·   Artist - Album/Track Song
346
347           ·   Album/Track - Artist - Song
348
349           ·   /Artist - Album - Track - Song
350
351           ·   Album/Artist - Track - Song
352
353           ·   Album/Artist - Song
354
355           ·   Artist/Album/Track Song
356
357           If a single file is selected, the GUI controls are filled with the
358           values extracted from the filename. If multiple files are selected,
359           the tags of the files are directly set according to the filenames.
360
361       Tag 1
362           The line edit widgets for Title, Artist, Album, Comment, Date,
363           Track Number and Genre are used to edit the corresponding value in
364           the first tag of the selected files. The value will be changed when
365           the file selection is altered or before operations like Save and
366           Quit and when the corresponding check box at the left of the field
367           name is checked. This is useful to change only some values and
368           leave the other values unchanged.
369
370           If a single file is selected, all check boxes are checked and the
371           line edit widgets contain the values found in the tags of this
372           file. If a tag is not found in the file, the corresponding empty
373           value is displayed, which is an empty string for the Title, Artist,
374           Album and Comment line edits, 0 for the numerical Date and Track
375           Number edits and an empty selected value for the Genre combo box.
376           The values can be changed and if the corresponding check box is
377           checked, they will be set for the selected file after the selection
378           is changed. The file is then marked as modified by a disk symbol in
379           the file listbox but remains unchanged until the Save command is
380           used.
381
382           If multiple files are selected, only the values which are identical
383           in all selected files are displayed. In all other controls, the
384           empty values as described above are displayed. All check boxes are
385           unchecked to avoid unwanted changes. If a value has to be set for
386           all selected files, it can be edited and the checkbox has to be
387           set. The values will be set for all selected files when the
388           selection is changed and can be saved using the Save command.
389
390           The check boxes also control the operation of most commands
391           affecting the tags, such as copy, paste and transfer between tags 1
392           and 2. To make it easier to use with multiple files where all check
393           boxes are unchecked, these commands behave in the same way when all
394           check boxes are checked and when all check boxes are unchecked.
395
396           From Tag 2: The tag 1 fields are set from the corresponding values
397           in tag 2. If a single file is selected, the GUI controls are filled
398           with the values from tag 2. If multiple files are selected, the
399           tags of the files are directly set.
400
401           Copy: The copy buffer is filled with the Tag 1 values. Only values
402           with checked checkbox will be used in subsequent Paste commands.
403
404           Paste: Pastes the values from the copy buffer into the GUI
405           controls.
406
407           Remove: This will set all GUI controls to their empty values which
408           results in removing all values. The saved file will then contain no
409           tag 1.
410
411       Tag 2
412           The GUI controls function in the same way as described for the Tag
413           1 section, but the size of the strings is not limited.
414
415           For the tag 2 Genre you can also use your own names besides the
416           genres listed in the combo box, just type the name into the line
417           edit.
418
419           The tag 2 can not only contain the same values as the tag 1, the
420           format is built in a flexible way from several frames which are
421           themselves composed of several fields. The tag 2 table shows all
422           the frames which are available in the selected file.
423
424           Edit: This will open a window which allows one to edit all fields
425           of the selected frame. If multiple files are selected, the edited
426           fields are applied to all selected files which contain such a
427           frame.
428
429           Add: A requester to select the frame type will appear and a frame
430           of the selected type can be edited and added to the file. This
431           works also to add a frame to multiple selected files.
432
433           Delete: Deletes the selected frame in the selected files.
434
435           Drag album artwork here is shown if the file does not contain
436           embedded cover art. A picture can be added using drag and drop from
437           a browser or file manager and will be displayed here. Picture
438           frames can be edited or added by double clicking on this control.
439
440       Tag 3
441           Some files can have more than two tags, and a third tag section is
442           visible. The following file types can have such a Tag 3 section:
443
444           ·   MP3 files can have an ID3v1.1 tag, an ID3v2 (2.3.0 or 2.4.0)
445               tag and in the third section an APE tag. Such APE tags are used
446               for replay gain information. In the Tag 3 section, this
447               information is visible, and the APE tag can be removed with the
448               Remove button.
449
450           ·   The RIFF INFO chunk of WAV files is available in the Tag 3
451               section because the Tag 1 section is dedicated to ID3v1.1 tags
452               and handles their restrictions. The Tag 2 is still used for
453               ID3v2.4.0 tags, which are also supported for WAV files, but
454               RIFF INFO chunks seem to be supported better.
455
456           ·   FLAC files normally use a Vorbis comment for their meta data.
457               However, there are FLAC files which have IDv1 and ID3v2 tags,
458               which can be found in the Tag 1 and Tag 3 sections. ID3 tags in
459               FLAC files are only supported by TagLib, therefore the
460               OggFlacMetadata plugin has to be disabled in the Plugins tab of
461               the settings.
462
463           The GUI controls work in the same way as in the Tag 2 section.
464
465       Synchronized Lyrics and Event Timing Codes
466           For information synchronized with the audio data, a specific editor
467           is available. These frames are supported for ID3v2.3.0 and
468           ID3v2.4.0 tags. To add such a frame, the specific frame name has to
469           be selected in the list which appears when the Add button is
470           clicked - Synchronized Lyrics or Event Timing Codes, respectively.
471           The editor is the same for both types, for the event timing codes,
472           only a predefined set of events is available whereas for the
473           synchronized lyrics, text has to be entered. In the following,
474           editing synchronized lyrics is explained.
475
476           A file having an ID3v2 tag is selected, the lyrics editor is
477           entered using Add and selecting Synchronized Lyrics. For an
478           existing Synchronized Lyrics frame, it is selected and Edit is
479           clicked. The player is automatically opened with the current file
480           so that the file can be played and paused to synchronize lyrics.
481
482           The settings at the top of the SYLT editor normally do not have to
483           be changed. If the lyrics contains characters which are not present
484           in the Latin 1 character set, changing the text encoding to UTF16
485           (or UTF8 for ID3v2.4.0) is advisable. For English lyrics and
486           maximum compatibility, ISO-8859-1 should be used.
487
488           The Lyrics section has five buttons at the top.  Add will add a new
489           time event in the table. The time is taken from the position of the
490           player, thus adding an entry while playing the track will add a
491           line for the currently played position. The events in the table
492           have to be chronologically ordered, therefore the row will be
493           inserted accordingly. Entries with an invalid time are treated
494           specially: If the currently selected row has an invalid time, its
495           time stamp will be replaced by the current time instead of adding a
496           new row. If the current time is not invalid, the first row with an
497           invalid time will be used if present. This behavior should
498           facilitate adding time stamps if the lyrics text is already in the
499           table but the time stamps are missing (which is the case when
500           importing unsynchronized lyrics). Note that the invalid time is
501           represented as 00:00.00, i.e. the same as the time at the absolute
502           beginning of the track, which is not invalid. To make a time
503           invalid, press the Delete key, or use Clear from the context menu.
504           New rows inserted using Insert row from the context menu or created
505           when importing unsynchronized lyrics with From Clipboard or Import
506           also contain invalid time stamps. Rows in the table can be deleted
507           by clicking the Delete button or using Delete rows from the context
508           menu.
509
510           Synchronized lyrics can be imported from a file using Import. The
511           expected format is simple or enhanced LRC. If the selected file
512           does not contain a square bracket in the first line, it is supposed
513           to be a simple text file with unsynchronized lyrics. The lines from
514           such a file are then imported having invalid time stamps. The time
515           information can be added using the Add button or by manual entry.
516           It is also possible to import lyrics via copy-paste using From
517           Clipboard. Synchronized lyrics can be written to LRC files using
518           Export. Note that only entries with valid time stamps will be
519           exported and that the entries will be sorted by time. Entries with
520           invalid time won't be stored in the SYLT frame either, so make sure
521           to include all timing information before leaving the dialog.
522
523           The ID3 specification[6] suggests a time stamp for each syllable.
524           However most players only support the granularity of a line or
525           sentence. To support both use cases, Kid3 follows the same
526           conventions as SYLT Editor[7]. Text which is entered into the table
527           is assumed to start a new line unless it starts with a space or a
528           hyphen. Exceptions to this rule are possible by starting a line
529           with an underscore ('_') to force continuation or a hash mark ('#')
530           to force a new line. These escape characters are not stored inside
531           the SYLT frame. Inside the SYLT frame, new lines start with a line
532           feed character (hex 0A) whereas continuations do not. When reading
533           SYLT frames, Kid3 checks if the first entry starts with a line
534           feed. If this is not the case, it is assumed that all entries are
535           new lines and that no syllable continuations are used.
536
537           While the track is played, the row associated with the current
538           playing position is highlighted, so that the correctness of the
539           synchronization information can be verified. If an offset has to be
540           added to one or more time stamps, this can be accomplished with the
541           Add offset context menu. Negative values can be used to reduce the
542           time. Using Seek to position in the context menu, it is possible to
543           set the playing position to the time of the selected row.
544
545           Recommended procedure to add new synchronized lyrics
546
547           ·   Get the unsynchronized lyrics, e.g. using Lyrics → Embed Lyrics
548               from the file list context menu.
549
550           ·   Copy the unsynchronized lyrics to the clipboard, just go to the
551               Lyrics row in the frame table and press Ctrl+C.
552
553           ·   Add a synchronized lyrics frame (Add..., Synchronized Lyrics,
554               OK), click From Clipboard.
555
556           ·   Now all lines from the unsynchronized lyrics are in the table,
557               all time stamps are invalid (0:0:0.00). You can delete empty
558               entries beforehand.
559
560           ·   Start playing the song by clicking the play button ► in the
561               play toolbar at the bottom of the main window.
562
563           ·   When the next lyrics line with invalid timestamp comes, click
564               Add or press Alt+A, the timestamp will be updated.
565
566           ·   Continue like this until all timestamps are set. If you missed
567               something, stop playback and clear the timestamps using the
568               Delete key or by selecting them and using Clear from the
569               context menu. To restart playback from a given timestamp, use
570               Seek to position from the context menu.
571
572
573   The File Menu
574       File → Open... (Ctrl+O)
575           Opens a directory.  All files matching the selected file name
576           filter will be displayed in the file listbox and the chosen file is
577           selected.
578
579       File → Open Recent
580           Opens a recently opened directory.
581
582       File → Open Directory... (Ctrl+D)
583           Opens a directory.  All files matching the selected file name
584           filter will be displayed in the file listbox.
585
586       File → Reload (F5)
587           Reload directory.  Modified files have to be saved before. Expanded
588           subfolders will be collapsed.
589
590       File → Save (Ctrl+S)
591           Saves all changed files in the directory.  The changed files are
592           marked with a disk symbol in the file listbox. If any file names
593           have been changed, those files will be renamed.
594
595       File → Revert
596           Reverts the changes of one or multiple files.  If no files are
597           selected in the file listbox, the changes of all files will be
598           reverted, else only the changes of the selected files are reverted.
599
600       File → Import...
601           The Import dialog can be used to import data directly from a
602           freedb.org server, from a MusicBrainz server, from Discogs, Amazon
603           or other sources of album track lists in textual format.
604
605           Import from a freedb.org server is possible using a dialog which
606           appears when From Server: gnudb.org or TrackType.org is selected.
607           The artist and album name to search for can be entered in the two
608           topmost fields, the albums which match the query will be displayed
609           when Find is clicked and the results from www.gnudb.org[8] are
610           received. Importing the track data for an album is done by
611           double-clicking the album in the list. The freedb.org server to
612           import from can be selected as well as the CGI path. The imported
613           data is displayed in the preview table of the import dialog. When
614           satisfied with the displayed tracks, they can be imported by
615           terminating the import dialog with OK.
616
617           A search on the Discogs server can be performed using Discogs. As
618           in the gnudb.org dialog, you can enter artist and album and then
619           choose from a list of releases. If Standard Tags is marked, the
620           standard information is imported, e.g. artist, album, and title. If
621           Additional Tags is marked, more information is imported if
622           available, e.g. performers, arrangers, or the publisher. If Cover
623           Art is marked, cover art will be downloaded if available.
624
625           A search on Amazon can be performed using Amazon. As in the
626           gnudb.org dialog, you can enter artist and album and then choose
627           from a list of releases. If Additional Tags is marked, more
628           information is imported if available, e.g. performers, arrangers,
629           or the publisher. If Cover Art is marked, cover art will be
630           downloaded if available.
631
632           You can search in the same way in the release database of
633           MusicBrainz using From MusicBrainz Release. The workflow is the
634           same as described for From gnudb.org.
635
636           Import from a MusicBrainz server is possible using the dialog which
637           appears when From MusicBrainz Fingerprint is selected. The Server
638           can be selected as in the freedb import dialog. Below is a table
639           displaying the imported track data. The right column shows the
640           state of the MusicBrainz query, which starts with "Pending" when
641           the dialog is opened. Then the fingerprint is looked up and if it
642           does not yield a result, another lookup using the tags in the file
643           is tried. Thus it can be helpful for a successful MusicBrainz query
644           to store known information (e.g. artist and album) in the tags
645           before the import. If a result was found, the search ends in the
646           state "Recognized", otherwise nothing was found or multiple
647           ambiguous results and one of them has to be selected by the user.
648           OK and Apply use the imported data, Cancel closes the dialog. The
649           closing can take a while since the whole MusicBrainz machinery has
650           to be shut down.
651
652           For the import of textual data, From File/Clipboard opens a
653           subdialog, where several preconfigured import formats are
654           available. The first two, "CSV unquoted" and "CSV quoted" can be
655           used to import data which was exported by the Export dialog. The
656           CSV data can be edited with a spreadsheet, and shall be written
657           using tabs as delimiters. Import should then be possible using "CSV
658           quoted", which is more flexible than "CSV unquoted". However, its
659           fields cannot contain any double quotes. If you only export from
660           Kid3 and import later, "CSV unquoted" can be used as a simple
661           format for this purpose. Note that there are also "Export CSV" and
662           "Import CSV" commands in the context menu of the file list, which
663           use scripts to export and import CSV data in a more complete,
664           powerful and flexible way.
665
666           The next format, "freedb HTML text", can be used to copy
667           information from an HTML page of freedb.org[9]. Search an album in
668           freedb and if the desired information is displayed in the web
669           browser, copy the contents to the clipboard. Then click the From
670           Clipboard button and the imported tracks will be displayed in the
671           preview table at the top of the dialog. If you are satisfied with
672           the imported data, terminate the dialog with OK, which will insert
673           the data into the tags of the current directory. The destination
674           (Tag 1, Tag 2 or Tag 1 and Tag 2) can be selected with a combo box.
675           The files in the current directory should be in the correct track
676           order to get their tags assigned. This is the case if they are
677           numbered.
678
679           The next preconfigured import format, "freedb HTML source", can be
680           used, if the data is available as an HTML document. Import is
681           possible using the From File button, which opens a file selector,
682           or copying its contents from an editor and then importing from
683           clipboard. This format can be useful for offline import, although
684           the HTML document could also be opened in a browser and then be
685           imported in the first format via the clipboard.
686
687           More preconfigured formats, e.g. "Track Title Time", are available.
688           An empty custom format can be created with Add to be set by the
689           user. Two lines below the format name can be set with a regular
690           expression to capture the fields from the import text. The first
691           regular expression will be parsed once per document to gather
692           per-album data such as artist, album, year and genre. The second
693           line is tried to match from the start of the document to the end to
694           get track data, usually number and title. The regular expressions
695           include all the features offered by Qt, which is most of the what
696           Perl offers. Bracketing constructs "(..)" create capture buffers
697           for the fields to import and are preceded by Kid3 specific codes to
698           specify which field to capture. The codes are the same as used for
699           the filename format, besides the codes listed below, any frame name
700           is possible:
701
702           ·   %s %{title} Title (Song)
703
704           ·   %a %{artist} Artist
705
706           ·   %l %{album} Album
707
708           ·   %c %{comment} Comment
709
710           ·   %y %{year} Year
711
712           ·   %t %{track} Track
713
714           ·   %g %{genre} Genre
715
716           ·   %d %{duration} Duration
717
718           For example, a track regular expression (second line) to import
719           from an .m3u playlist could be
720           "%{track}(\d+)\s+%{title}(\S[^\r\n]*)\.mp3[\r\n]". All formats can
721           be changed by editing the regular expressions and the name and then
722           clicking Save Settings. They will be stored in the kid3rc file in
723           the configuration directory. This file can be directly edited to
724           have more import formats or it can be deleted to revert to the
725           default formats. Formats can be deleted using Remove.
726
727           Accuracy shows an estimation of how good the imported information
728           matches the given tracks. It uses track durations or file names to
729           calculate the level of similarity in percent.  Cover Art shows the
730           URL of the album cover image which will be downloaded.
731
732           To check whether the imported tracks match the current set of
733           files, the duration of the imported tracks can be compared with the
734           duration of the files. This option can be enabled with the checkbox
735           Check maximum allowable time difference and the maximum tolerated
736           difference in time can be set in seconds. If a mismatch in a length
737           is detected, the length is displayed with a red background in the
738           preview table.
739
740           If the files are ordered differently than the imported tracks,
741           their assigned tracks have to be changed. This task can be
742           facilitated using the Match with buttons Length, Track, and Title,
743           which will reorder the tracks according to the corresponding field.
744           To correct the assignments manually, a track can be dragged with
745           the left mouse button and the Ctrl key hold down, and then dropped
746           at the new location.
747
748           When the import dialog is opened, it contains the actual contents
749           of the tags. The tag type (Tag 1, Tag 2, Tag 1 and Tag 2) can be
750           selected using the Destination combo box. The button on the right
751           of this combo box can be used to revert the table to the current
752           contents of the tags. The checkboxes in the first table column can
753           be used to select the tracks which are imported. This can be useful
754           if a folder contains the tracks of both CDs of a double CD and only
755           the tracks of the second CD have to be imported.
756
757           To identify the tracks which are imported, it is possible to
758           display the file names or the full paths to the files using the
759           context menu of the table header. The values in the import table
760           can be edited. The revert-button to the right of the Destination
761           combo box can be used to restore the contents of the tags, which
762           can also be useful after changing the Destination.
763
764           Almost all dialogs feature a Save Settings button, which can be
765           used to store the dialog specific settings and the window size
766           persistently.
767
768           From Tags leads to a subdialog to set tag frames from the contents
769           of other tag frames. This can be used to simply copy information
770           between tags or extract a part from one frame and insert it in
771           another.
772
773           As in the import from file/clipboard dialog, there are freely
774           configurable formats to perform different operations. Already
775           preconfigured are formats to copy the Album value to Album Artist,
776           Composer or Conductor, and to extract the Track Number from Title
777           fields which contain a number. There is also a format to extract a
778           Subtitle from a Title field.
779
780           The following example explains how to add a custom format, which
781           sets the information from the Subtitle field also in the Comment
782           field. Create a new format using Add and set a new name, e.g.
783           "Subtitle to Comment". Then enter "%{subtitle}" in Source and
784           "%{comment}(.*)" for Extraction and click Save Settings.
785
786           The expression in Source can contain format codes for arbitrary tag
787           frames, multiple codes can be used to combine the contents from
788           different frames. For each track, a text is generated from its tags
789           using the Source format, and the regular expression from Extraction
790           is applied to this text to set new values for the tags. Format
791           codes are used before the capturing parentheses to specify the tag
792           frame where the captured text shall be stored. It works in the same
793           way as for the import from file/clipboard.
794
795       File → Import from gnudb.org...
796           Import from a freedb.org server using gnudb.org album search.  This
797           menu item opens the same import dialog as Import..., but opens
798           directly the gnudb.org dialog.
799
800       File → Import from TrackType.org...
801           Import from the TrackType.org server.  This menu item opens the
802           same import dialog as Import..., but opens directly the
803           TrackType.org dialog.
804
805       File → Import from Discogs...
806           Import from the Discogs server.  This menu item opens the same
807           import dialog as Import..., but opens directly the From Discogs
808           dialog.
809
810       File → Import from Amazon...
811           Import from Amazon.  This menu item opens the same import dialog as
812           Import..., but opens directly the From Amazon dialog.
813
814       File → Import from MusicBrainz Release...
815           Import from the MusicBrainz release database.  This menu item opens
816           the same import dialog as Import..., but opens directly the From
817           MusicBrainz Release dialog.
818
819       File → Import from MusicBrainz Fingerprint...
820           Import from a MusicBrainz server.  This menu item opens the same
821           import dialog as Import..., but opens directly the From MusicBrainz
822           Fingerprint dialog.
823
824       File → Automatic Import...
825           Automatic Import allows one to import information for multiple
826           albums from various web services. If directories are selected in
827           the file list, track data for the selected directories will be
828           imported. If no directory is selected, all directories in the file
829           list will be imported.
830
831           The tag type (Tag 1, Tag 2, Tag 1 and Tag 2) can be selected using
832           the Destination combo box.
833
834           Profiles determine which servers will be contacted to fetch album
835           information. Some profiles are predefined (All, MusicBrainz,
836           Discogs, Cover Art), custom profiles can be added using the Add
837           button at the right of the Profile combo box.
838
839           The table below shows the servers which will be used when importing
840           album information using the selected profile. The import process
841           for an album is finished if all required information has been
842           found, so the order of the rows in the table is important. It can
843           be changed using the Move Up and Move Down buttons.  Edit can be
844           used to change an existing entry. The Server selection offers the
845           same servers as can be used in the import functions.  Standard
846           Tags, Additional Tags, Cover Art determine the information which
847           shall be fetched from the server. Finally, Accuracy is the minimum
848           accuracy which must be achieved to accept the imported data. If the
849           accuracy is insufficient, the next server in the list will be
850           tried. The same dialog containing the server properties appears
851           when Add is clicked to add a new server entry. Existing entries can
852           be deleted using Remove.
853
854           To launch an automatic batch import with the selected profile,
855           click Start. Details about the running import are displayed at the
856           top of the dialog. The process can be aborted with the Abort
857           button.
858
859
860       File → Browse Cover Art...
861           The Browse Cover Art dialog helps to find album cover art.
862           Artist/Album is filled from the tags if possible.  Source offers a
863           variety of websites with album cover art. The URL with artist and
864           album as parameters can be found beneath the name. URL-encoded
865           values for artist and album can be inserted using %u{artist} and
866           %u{album}, other values from the tags are possible too, as
867           described in Configure Kid3, User Actions. More sources can be
868           entered after the entry "Custom Source" by replacing "Custom
869           Source" with the source's name, pressing Enter, then inserting the
870           URL and finally pressing Save Settings. The resulting browser
871           command is displayed at the top of the dialog and can be started by
872           clicking Browse. The browser, which can be configured in the
873           settings, is started with the selected source. A cover image can
874           then be dragged from the browser into the Kid3 window and will be
875           set in the picture frame of the selected files.
876
877           Because not all browsers support drag and drop of images and the
878           pictures on websites often have a URL, in such cases Kid3 will
879           receive the URL and not the picture. If the URL points to a
880           picture, it will be downloaded. However, if the URL refers to some
881           other web resource, it has to be translated to the corresponding
882           picture. Such mappings are defined in the table URL extraction. The
883           left column Match contains a regular expression which is compared
884           with the URL. If it matches, the captured expressions in
885           parentheses are inserted into the pattern of the right Picture URL
886           column (at the positions marked with \1 etc.). The replaced regular
887           expression contains the URL of the picture. By this means cover art
888           can be imported from Amazon, Google Images, etc. using drag and
889           drop. It is also possible to define your own mappings.
890
891       File → Export...
892           The Export Dialog is used to store data from the tags in a file or
893           the clipboard. The editor at the top shows a preview of the data to
894           export. If the export data contain tabulator characters, the export
895           is displayed in a table. The data will be generated from the tags
896           in the current directory according to the configured format.
897
898           The format settings are similar as in the Import dialog: The
899           topmost field contains the title (e.g. "CSV unquoted"), followed by
900           the header, which will be generated at the begin of the file. The
901           track data follows; it is used for every track. Finally, the
902           trailer can be used to generate some finishing text.
903
904           The format fields do not contain regular expressions as in the
905           Import dialog, but only output format expressions with special
906           %-expressions, which will be replaced by values from the tags. The
907           whole thing works like the file name format, and the same codes are
908           used plus some additional codes. Not only the codes listed below
909           but all tag frame names can be used.
910
911           ·   %s %{title} Title (Song)
912
913           ·   %a %{artist} Artist
914
915           ·   %l %{album} Album
916
917           ·   %c %{comment} Comment
918
919           ·   %y %{year} Year
920
921           ·   %t %{track} Track (e.g. 01)
922
923           ·   %t %{track.n} Track with field width n (e.g. 001 for
924               %{track.3})
925
926           ·   %T %{tracknumber} Track (without leading zeros, e.g. 1)
927
928           ·   %g %{genre} Genre
929
930           ·   %f %{file} File name
931
932           ·   %p %{filepath} Path
933
934           ·   %u %{url} URL
935
936           ·   %{dirname} Directory name
937
938           ·   %d %{duration} Duration in minutes:seconds
939
940           ·   %D %{seconds} Duration in seconds
941
942           ·   %n %{tracks} Number of tracks of the album
943
944           ·   %e %{extension} File extension
945
946           ·   %O %{tag1} The format of tag 1 (ID3v1.1 or empty if not
947               existing)
948
949           ·   %o %{tag2} The format of tag 2 (ID3v2.3.0, ID3v2.4.0,
950               ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF, or empty if not
951               existing)
952
953           ·   %b %{bitrate} Bit rate in kbit/s
954
955           ·   %v %{vbr} VBR or empty (only for ID3v2.3 with id3lib)
956
957           ·   %r %{samplerate} Sample rate in Hz
958
959           ·   %m %{mode} Channel mode (Stereo or Joint Stereo)
960
961           ·   %h %{channels} Number of channels (1 or 2)
962
963           ·   %k %{codec} Codec (e.g. MPEG 1 Layer 3, MP4, Ogg Vorbis, FLAC,
964               MPC, APE, ASF, AIFF, WAV)
965
966           A few formats are predefined. "CSV unquoted" separates the fields
967           by tabs. Data in this format can be imported again into Kid3 using
968           the import format with the same name. "CSV quoted" additionally
969           encloses the fields by double quotes, which eases the import into
970           spreadsheet applications. However, the fields shall not contain any
971           double quotes when this format is used. "Extended M3U" and
972           "Extended PLS" generate playlists with extended attributes and
973           absolute path names. "HTML" can be used to generate an HTML page
974           with hyperlinks to the tracks. "Kover XML" creates a file which can
975           be imported by the cover printing program Kover. "Technical
976           Details" provides information about bit rate, sample rate,
977           channels, etc. Finally, "Custom Format" is left empty for
978           definition of a custom format. You can define more formats of your
979           own by adding lines in the file kid3rc in the configuration
980           directory. The other formats can be adapted to your needs.
981
982           The source of the tags to generate the export data (Tag 1 or Tag 2)
983           can be selected with a combo box. Pushing To File or To Clipboard
984           stores the data in a file or on the clipboard.  OK and Cancel close
985           the dialog, whereas OK accepts the current dialog settings.
986
987       File → Create Playlist
988           Creates a playlist.  The format and contents of the playlist can be
989           set by various options.
990
991           The name of the playlist can be the Same as directory name or use a
992           Format with values from the tags, e.g. "%{artist} - %{album}" to
993           have the artist and album name in the playlist file name. The
994           format codes are the same as for Export.  Create new empty playlist
995           will make an empty playlist with the given name. The extension
996           depends on the playlist format.
997
998           The location of the generated playlist is determined by the
999           selection of the Create in combo box.
1000
1001           Current directory
1002               The playlist is created in the current directory and contains
1003               only files of the current directory. The current directory is
1004               the directory where the current file is located. If multiple
1005               files are selected, the current file is probably the last
1006               selected file.
1007
1008           Every directory
1009               A playlist is created in every directory which contains listed
1010               files, and each playlist contains the files of that directory.
1011
1012           Top-level directory
1013               Only one playlist is created in the top-level directory (i.e.
1014               the directory of the file list) and it contains the listed
1015               files of the top-level directory and all of its
1016               sub-directories.
1017
1018           The Format of the playlist can be M3U, PLS or XSPF.
1019
1020           If Include only the selected files is checked, only the selected
1021           files will be included in the playlist. If a directory is selected,
1022           all of its files are selected. If this check box is not activated,
1023           all audio files are included in the playlist.
1024
1025           Sort by file name selects the usual case where the files are
1026           ordered by file name. With Sort by tag field, it is possible to
1027           sort by a format string with values from tag fields. For instance,
1028           "%{track.3}" can be used to sort by track number (the ".3" is used
1029           to get three digits with leading zeros because strings are used for
1030           sorting). It is also possible to use multiple fields, e.g.
1031           "%{genre}%{year}" to sort using a string composed of genre and
1032           year.
1033
1034           The playlist entries will have relative or absolute file paths
1035           depending on whether Use relative path for files in playlist or Use
1036           full path for files in playlist is set.
1037
1038           When Write only list of files is set, the playlist will only
1039           contain the paths to the files. To generate an extended playlist
1040           with additional information, a format string can be set using the
1041           Write info using control.
1042
1043       File → Quit (Ctrl+Q)
1044           Quits the application.
1045
1046   The Edit Menu
1047       Edit → Select All (Alt+A)
1048           Selects all files.
1049
1050       Edit → Deselect (Ctrl+Shift+A)
1051           Deselects all files.
1052
1053       Edit → Select All in Directory
1054           Selects all files of the current directory.
1055
1056       Edit → Previous File (Alt+Up)
1057           Selects the previous file.
1058
1059       Edit → Next File (Alt+Down)
1060           Selects the next file.
1061
1062       Edit → Find... (Ctrl+F)
1063           Find strings in the file names and the tags. The Find dialog is a
1064           subset of the Replace dialog, which is described below.
1065
1066       Edit → Replace... (Ctrl+R)
1067           This function opens a dialog to find and replace strings in the
1068           file names and the tags. The set of frames where the search is
1069           performed can be restricted by deactivating the Select all checkbox
1070           and selecting the frames which shall be searched. There are also
1071           search options available to search backwards, case sensitively, and
1072           to use regular expressions.
1073
1074           Depending on the number of files, the search might take some time,
1075           therefore it can be aborted by closing the dialog.
1076
1077   The Tools Menu
1078       Tools → Apply Filename Format
1079           When Automatically apply format is switched off for the filename
1080           format in the configuration dialog, this menu item can be used to
1081           apply the configured format to the names of the selected files.
1082           This can also be used to check whether the file names conform with
1083           the configured format by applying the format to all saved files and
1084           then checking if any files were changed (and therefore marked with
1085           a disk symbol in the file listbox).
1086
1087       Tools → Apply Tag Format
1088           When Automatically apply format is switched off for the tag format
1089           in the configuration dialog, this menu item can be used to apply
1090           the configured format to the tags of the selected files. This can
1091           also be used to check whether the tags conform with the configured
1092           format by applying the format to all saved files and then checking
1093           if any files were changed (and therefore marked with a disk symbol
1094           in the file listbox).
1095
1096       Tools → Apply Text Encoding
1097           Sets the Text encoding selected in Settings/Configure
1098           Kid3.../Tags/Tag 2 for all selected files. If UTF8 is selected,
1099           UTF16 will be used for ID3v2.3.0 tags because UTF8 is not supported
1100           for this format.
1101
1102       Tools → Rename Directory...
1103           This dialog offers the possibility to automatically rename the
1104           currently open directory according to the tags in the files.
1105           Several formats are preconfigured to include information about
1106           artist, album and year in the directory name. It is also possible
1107           to set a custom format and Edit the list of available formats. The
1108           following special codes are used to insert tag values into the
1109           directory name:
1110
1111           ·   %s %{title} Title (Song)
1112
1113           ·   %a %{artist} Artist
1114
1115           ·   %l %{album} Album
1116
1117           ·   %c %{comment} Comment
1118
1119           ·   %y %{year} Year
1120
1121           ·   %t %{track} Track (e.g. 01)
1122
1123           ·   %t %{track.n} Track with field width n (e.g. 001 for
1124               %{track.3})
1125
1126           ·   %T %{tracknumber} Track (without leading zeros, e.g. 1)
1127
1128           ·   %g %{genre} Genre
1129
1130           ·   %{dirname} Directory name (e.g. %{year" "}%{dirname} will
1131               prepend the year to the current directory name)
1132
1133           If a directory separator "/" is found in the format, multiple
1134           directories are created. If you want to create a new directory
1135           instead of renaming the current directory, select Create Directory
1136           instead of Rename Directory. The source of the tag information can
1137           be chosen between From Tag 1 and Tag 2, From Tag 1 and From Tag 2.
1138           A preview for the rename operation performed on the first file can
1139           be seen in the From and To sections of the dialog.
1140
1141           Multiple directories can be renamed by selecting them.
1142
1143       Tools → Number Tracks...
1144           If the track numbers in the tags are not set or have the wrong
1145           values, this function can number the tracks automatically in
1146           ascending order. The start number can be set in the dialog. If only
1147           part of the tracks have to be numbered, they must be selected.
1148
1149           When Total number of tracks is checked, the number of tracks will
1150           also be set in the tags.
1151
1152           It is possible to number the tracks over multiple directories. The
1153           folders have to be expanded and selected.
1154
1155           If Reset counter for each directory is checked, track numbering is
1156           restarted with the given number for each directory when multiple
1157           folders are selected.
1158
1159           The number tracks dialog can also be used to format existing track
1160           numbers without changing the values when the check box left to
1161           Start number is deactivated. The total number of tracks will be
1162           added if the corresponding check box is active, which can be used
1163           to set the total for all selected tracks. If only formatting of the
1164           existing numbers is desired, this check box has to be deactivated
1165           too.
1166
1167       Tools → Filter...
1168           The filter can be used to display only those files which match
1169           certain criteria. This is helpful if you want to organize a large
1170           collection and only edit those files which are not in the desired
1171           scheme. The expression defining which files to display uses the
1172           same format codes which are used in the file name format, import
1173           and export.
1174
1175           ·   %s %{title} Title (Song)
1176
1177           ·   %a %{artist} Artist
1178
1179           ·   %l %{album} Album
1180
1181           ·   %c %{comment} Comment
1182
1183           ·   %y %{year} Year
1184
1185           ·   %t %{track} Track (e.g. 01)
1186
1187           ·   %t %{track.n} Track with field width n (e.g. 001 for
1188               %{track.3})
1189
1190           ·   %T %{tracknumber} Track (without leading zeros, e.g. 1)
1191
1192           ·   %g %{genre} Genre
1193
1194           ·   %f %{file} File name
1195
1196           ·   %p %{filepath} Absolute path to file
1197
1198           ·   %e %{extension} File extension
1199
1200           ·   %O %{tag1} The format of tag 1 (ID3v1.1 or empty if not
1201               existing)
1202
1203           ·   %o %{tag2} The format of tag 2 (ID3v2.3.0, ID3v2.4.0,
1204               ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF, or empty if not
1205               existing)
1206
1207           ·   %b %{bitrate} Bit rate in kbit/s
1208
1209           ·   %v %{vbr} VBR or empty (only for ID3v2.3 with id3lib)
1210
1211           ·   %r %{samplerate} Sample rate in Hz
1212
1213           ·   %m %{mode} Channel mode (Stereo or Joint Stereo)
1214
1215           ·   %h %{channels} Number of channels (1 or 2)
1216
1217           ·   %k %{codec} Codec (e.g. MPEG 1 Layer 3, MP4, Ogg Vorbis, FLAC,
1218               MPC, APE, ASF, AIFF, WAV)
1219
1220           ·   %w %{marked} Marked, is 1 if the file is marked (e.g. because
1221               of truncation or standard violation), empty otherwise
1222
1223           ·   %1a %1{artist}, ... Use the prefix 1 to get values of tag 1
1224
1225           ·   %2a %2{artist}, ... Use the prefix 2 to get values of tag 2
1226
1227           These codes are replaced with the values for the file, and the
1228           resulting strings can be compared with the following operations:
1229
1230           ·   s1 equals s2: true if s1 and s2 are equal.
1231
1232           ·   s1 contains s2: true if s1 contains s2, i.e. s2 is a substring
1233               of s1.
1234
1235           ·   s matches re: true if s matches the regular expression re.
1236
1237           True expressions are replaced by 1, false by 0. True values are
1238           represented by 1, true, on and yes, false values by 0, false, off
1239           and no. Boolean operations are not, and, or (in this order of
1240           precedence) and can be grouped by parentheses.
1241
1242           Some filter rules are predefined and can serve as examples for your
1243           own expressions:
1244
1245           All
1246               When the file list is filtered - this is shown by "[filtered]"
1247               in the window title - and all files shall be displayed again,
1248               the filtering can be reverted using this filter. It uses an
1249               empty expression, but a true value would have the same effect.
1250
1251           Filename Tag Mismatch
1252                not (%{filepath} contains "%{artist} - %{album}/%{track}
1253               %{title}")
1254
1255               Tests if the file path conforms with the file name format. This
1256               rule is automatically adapted if the file name format changes.
1257
1258           No Tag 1
1259                %{tag1} equals ""
1260
1261               Displays only files which do not have a tag 1.
1262
1263           No Tag 2
1264                %{tag2} equals ""
1265
1266               Displays only files which do not have a tag 2.
1267
1268           ID3v2.3.0 Tag
1269                %{tag2} equals "ID3v2.3.0"
1270
1271               Displays only files which have an ID3v2.3.0 tag.
1272
1273           ID3v2.4.0 Tag
1274                %{tag2} equals "ID3v2.4.0"
1275
1276               Displays only files which have an ID3v2.4.0 tag.
1277
1278           Tag 1 != Tag 2
1279                not (%1{title} equals %2{title} and %1{album} equals %2{album}
1280               and %1{artist} equals %2{artist} and %1{comment} equals
1281               %2{comment} and %1{year} equals %2{year} and %1{track} equals
1282               %2{track} and %1{genre} equals %2{genre})
1283
1284               Displays files with differences between tag 1 and tag2.
1285
1286           Tag 1 == Tag 2
1287                %1{title} equals %2{title} and %1{album} equals %2{album} and
1288               %1{artist} equals %2{artist} and %1{comment} equals %2{comment}
1289               and %1{year} equals %2{year} and %1{track} equals %2{track} and
1290               %1{genre} equals %2{genre}
1291
1292               Displays files with identical tag 1 and tag 2.
1293
1294           Incomplete
1295                %{title} equals "" or %{artist} equals "" or %{album} equals
1296               "" or %{year} equals "" or %{tracknumber} equals "" or %{genre}
1297               equals ""
1298
1299               Displays files with empty values in the standard tags (title,
1300               artist, album, date, track number, genre).
1301
1302           No Picture
1303                %{picture} equals ""
1304
1305               Displays only files which do not have a picture.
1306
1307           Marked
1308                not (%{marked} equals "")
1309
1310               Displays only files which are marked because they violate the
1311               ID3 standard, are truncated or the picture is too large.
1312
1313           Custom Filter
1314               To add your own filter, select this entry. For instance, if you
1315               want to have a filter for artists starting with "The", replace
1316               "Custom Filter" with the name "The Bands" and press Enter. Then
1317               insert the following expression into the line edit:
1318
1319                %{artist} matches "The.*"
1320
1321               Then click Save Settings. Click Apply to filter the files. All
1322               files processed are displayed in the text view, with a "+" for
1323               those who match the filter and a "-" for the others. When
1324               finished, only the files with an artist starting with "The" are
1325               displayed, and the window title is marked with "[filtered]".
1326
1327       Tools → Convert ID3v2.3 to ID3v2.4
1328           If there are any ID3v2.3 tags in the selected files, they will be
1329           converted to ID3v2.4 tags. Frames which are not supported by TagLib
1330           will be discarded. Only files without unsaved changes will be
1331           converted.
1332
1333       Tools → Convert ID3v2.4 to ID3v2.3
1334           If there are any ID3v2.4 tags in the selected files, they will be
1335           converted to ID3v2.3 tags. Only files without unsaved changes will
1336           be converted.
1337
1338       Tools → Play
1339           This opens a simple toolbar to play audio files. It contains
1340           buttons for the basic operations (Play/Pause, Stop playback,
1341           Previous Track, Next Track, Close), sliders for position and volume
1342           and a display of the current position. If multiple files are
1343           selected, the selected tracks are played, else all files will be
1344           played.
1345
1346   The Settings Menu
1347       Settings → Show Toolbar
1348           Toggles displaying of the toolbar.
1349
1350       Settings → Show Statusbar
1351           Toggles displaying of the statusbar, which displays longer actions
1352           such as opening or saving a directory.
1353
1354       Settings → Show Picture
1355           Toggles displaying of the album cover art preview picture.
1356
1357       Settings → Auto Hide Tags
1358           Empty tags are automatically hidden if this option is active. The
1359           File, Tag 1 and Tag 2 sections can be manually collapsed and
1360           expanded by clicking on the corresponding -/+ buttons.
1361
1362       Settings → Configure Kid3...
1363           Opens the configuration dialog, which consists of pages for tags,
1364           files, user actions, and network settings.
1365
1366           Tag specific options can be found on the Tags page, which is itself
1367           separated into four tabs for Tag 1, Tag 2, Tag 3, and All Tags.
1368
1369           If Mark truncated fields is checked, truncated ID3v1.1 fields will
1370           be marked red. The text fields of ID3v1.1 tags can only have 30
1371           characters, the comment only 28 characters. Also the genre and
1372           track numbers are restricted, so that fields can be truncated when
1373           imported or transferred from ID3v2. Truncated fields and the file
1374           will be marked red, and the mark will be removed after the field
1375           has been edited.
1376
1377           With Text encoding for ID3v1 it is possible to set the character
1378           set used in ID3v1 tags. This encoding is supposed to be ISO-8859-1,
1379           so it is recommended to keep this default value. However, there are
1380           tags around with different encoding, so it can be set here and the
1381           ID3v1 tags can then be copied to ID3v2 which supports Unicode.
1382
1383           The check box Use track/total number of tracks format controls
1384           whether the track number field of ID3v2 tags contains simply the
1385           track number or additionally the total number of tracks in the
1386           directory.
1387
1388           When Genre as text instead of numeric string is checked, all ID3v2
1389           genres will be stored as a text string even if there is a
1390           corresponding code for ID3v1 genres. If this option is not set,
1391           genres for which an ID3v1 code exists are stored as the number of
1392           the genre code (in parentheses for ID3v2.3). Thus the genre Metal
1393           is stored as "Metal" or "(9)" depending on this option. Genres
1394           which are not in the list of ID3v1 genres are always stored as a
1395           text string. The purpose of this option is improved compatibility
1396           with devices which do not correctly interpret genre codes.
1397
1398           When WAV files with lowercase id3 chunk is checked, the RIFF chunk
1399           used to store ID3v2 tags in WAV files will be named "id3 " instead
1400           of "ID3 ". By default, Kid3 and other applications using TagLib
1401           accept both the lowercase and the uppercase variant when reading
1402           WAV files, but they use "ID3 " when writing ID3v2 tags to WAV
1403           files. As there exist other applications which only accept "id3 "
1404           (e.g. JRiver Media Center and foobar2000), this option can be used
1405           to create tags which can be read by such applications.
1406
1407           When Mark standard violations is checked, ID3v2 fields which
1408           violate the standard will be marked red. Details about the
1409           violation are shown in a tooltip:
1410
1411           ·   Must be unique
1412
1413           ·   New line is forbidden
1414
1415           ·   Carriage return is forbidden
1416
1417           ·   Owner must be non-empty
1418
1419           ·   Must be numeric
1420
1421           ·   Must be numeric or number/total
1422
1423           ·   Format is DDMM
1424
1425           ·   Format is HHMM
1426
1427           ·   Format is YYYY
1428
1429           ·   Must begin with a year and a space character
1430
1431           ·   Must be ISO 8601 date/time
1432
1433           ·   Must be musical key, 3 characters, A-G, b, #, m, o
1434
1435           ·   Must have ISO 639-2 language code, 3 lowercase characters
1436
1437           ·   Must be ISRC code, 12 characters
1438
1439           ·   Must be list of strings separated by '|'
1440
1441           ·   Has excess white space
1442
1443           The ID3 standard documents are available online:
1444
1445           ·   ID3 tag version 2.3.0[10]
1446
1447           ·   ID3 tag version 2.4.0 - Main Structure[11]
1448
1449           ·   ID3 tag version 2.4.0 - Native Frames[6]
1450
1451           Text encoding defines the default encoding used for ID3v2 frames
1452           and can be set to ISO-8859-1, UTF16, or UTF8.  UTF8 is not valid
1453           for ID3v2.3.0 frames; if it is set, UTF16 will be used instead. For
1454           ID3v2.4.0 frames, all three encodings are possible.
1455
1456           Version used for new tags determines whether new ID3v2 tags are
1457           created as version 2.3.0 or 2.4.0.
1458
1459           Track number digits is the number of digits in Track Number fields.
1460           Leading zeros are used to pad. For instance, with a value of 2 the
1461           track number 5 is set as "05".
1462
1463           The combo box Comment field name is only relevant for Ogg/Vorbis
1464           and FLAC files and sets the name of the field used for comments.
1465           Different applications seem to use different names, "COMMENT" for
1466           instance is used by xmms, whereas amaroK uses "DESCRIPTION".
1467
1468           The format of pictures in Ogg/Vorbis files is determined by Picture
1469           field name, which can be METADATA_BLOCK_PICTURE or COVERART. The
1470           first is the official standard and uses the same format as pictures
1471           in FLAC tags. COVERART is an earlier unofficial way to include
1472           pictures in Vorbis comments. It can be used for compatibility with
1473           legacy players.
1474
1475           If the Mark if larger than check box is activated, files containing
1476           embedded album cover art exceeding the given size in bytes are
1477           marked red. This can be used to find files containing oversized
1478           pictures which are not accepted by some applications and players.
1479           The default value is 131072 bytes (128 KB).
1480
1481           Custom Genres can be used to define genres which are not available
1482           in the standard genre list, e.g. "Gothic Metal". Such custom genres
1483           will appear in the Genre combo box of Tag 2. For ID3v1.1 tags, only
1484           the predefined genres can be used.
1485
1486           The list of custom genres can also be used to reduce the number of
1487           genres available in the Genre combo box to those typically used. If
1488           your collection mostly contains music in the genres Metal, Gothic
1489           Metal, Ancient and Hard Rock, you can enter those genres and mark
1490           Show only custom genres. The Tag 2 Genre combo box will then only
1491           contain those four genres and you will not have to search through
1492           the complete genres list for them. In this example, only Metal and
1493           Hard Rock will be listed in the tag 1 genres list, because those
1494           two custom genres entries are standard genres. If Show only custom
1495           genres is not active, the custom genres can be found at the end of
1496           the genres list.
1497
1498           Quick Access Frames defines which frame types are always shown in
1499           the Tag 2 section. Such frames can then be added without first
1500           using the Add button. The order of these quick access frames can be
1501           changed by dragging and dropping items.
1502
1503           The combo box Track number field name is only relevant for RIFF
1504           INFO and sets the name of the field used for track numbers. Track
1505           numbers are not specified in the original RIFF standard, there are
1506           applications which use "ITRK", others use "IPRT".
1507
1508           Tag Format contains options for the format of the tags. When
1509           Automatically apply format is checked, the format configuration is
1510           automatically used while editing text in the line edits. The Case
1511           conversion can be set to No changes, All lowercase, All uppercase,
1512           First letter uppercase or All first letters uppercase. To use
1513           locale-aware conversion between lowercase and uppercase characters,
1514           a locale can be selected in the combobox below. The string
1515           replacement list can be set to arbitrary string mappings. To add a
1516           new mapping, select the From cell of a row and insert the text to
1517           replace, then go to the To column and enter the replacement text.
1518           To remove a mapping set the From cell to an empty value (e.g. by
1519           first typing space and then backspace). Inserting and deleting rows
1520           is also possible using a context menu which appears when the right
1521           mouse button is clicked. Replacement is only active, if the String
1522           replacement checkbox is checked.
1523
1524           The table in Rating contains the mapping of star ratings to the
1525           effective values stored in the tag. The frames with rating
1526           information are listed in the Rating row of the frame list. For
1527           these frames, the rating can be set by giving a number of stars out
1528           of five stars. Different tag formats and different applications use
1529           different values to map the star rating to the value stored in the
1530           tag. In order to display the correct number of stars, Kid3 will
1531           look up a map in this table. The key to look up the mapping is the
1532           frame name, for example "RATING" as used for Vorbis comments or
1533           "IRTD" for RIFF INFO. For ID3v2 tags, a combined key is used
1534           consisting of the frame ID "POPM" of the Popularimeter frame and
1535           its "Email" field, separated by a dot. Therefore, different keys
1536           for ID3v2 exist, e.g. "POPM.Windows Media Player 9 Series" for the
1537           mapping used by Windows Media Player and Explorer, and simply
1538           "POPM" for POPM frames with an empty "Email" field. As multiple
1539           entries for "POPM" can exist, their order is important. When Kid3
1540           adds a new Popularimeter frame, it will use the first "POPM" entry
1541           to determine the value to be written into the "Email" field. This
1542           value will then specify the mapping to be used for star ratings.
1543           The first entry is also used if no key was found, it is therefore
1544           the default entry.
1545
1546           Besides the Name column containing the keys, the table has columns
1547           1 to 5 for the values to be stored when the corresponding number of
1548           stars is given. The other way round, the values determine the
1549           number of stars which are displayed for the value stored in the
1550           frame. For instance, the row in the table below contains the values
1551           1, 64, 128, 196, 255. The thresholds for the number of stars to be
1552           displayed lay between these values and are compatible with what the
1553           Windows Explorer uses.
1554
1555           Table 1. Entry in Rating Table
1556           ┌──────┬──────┬───────┬────────┬─────────┬─────────┐
1557Name  1    2     3      4       5       
1558           ├──────┼──────┼───────┼────────┼─────────┼─────────┤
1559           │POPM  │ 1    │ 64    │ 128    │ 196     │ 255     │
1560           ├──────┼──────┼───────┼────────┼─────────┼─────────┤
1561           │Range │ 1-31 │ 32-95 │ 96-159 │ 160-223 │ 224-255 │
1562           └──────┴──────┴───────┴────────┴─────────┴─────────┘
1563           On the page Files the check box Load last-opened files can be
1564           marked so that Kid3 will open and select the last selected file
1565           when it is started the next time.  Preserve file timestamp can be
1566           checked to preserve the file modification time stamp.  Filename for
1567           cover sets the name which is suggested when an embedded image is
1568           exported to a file. With Text encoding (Export, Playlist) the
1569           encoding used when writing files can be set. The default System can
1570           be changed for example if playlists have to be used on a different
1571           device.
1572
1573           If Mark changes is active, changed fields are marked with a light
1574           gray label background.
1575
1576           The section File List determines which files are displayed in the
1577           file list. A Filter can be used to restrict the items in this list
1578           to files with supported extensions. To explicitly specify which
1579           directories to display in the file list or exclude certain
1580           directories, the options Include folders and Exclude folders can be
1581           used. They can contain wildcard expressions, for instance */Music/*
1582           to include only the Music folder, or */iTunes/* to exclude the
1583           iTunes folder from the file list. If multiple such expressions have
1584           to be used, they can be separated by spaces or semicolons.
1585
1586           The buttons Filename from tag and Tag from filename in section
1587           Format open dialogs to edit the formats which are available in the
1588           Format combo boxes (with arrows up and down), which can be found in
1589           the File section of the main window.
1590
1591           Filename Format contains options for the format of the filenames.
1592           The same options as in Tag Format are available.
1593
1594           The User Actions page contains a table with the commands which are
1595           available in the context menu of the file list. For critical
1596           operations such as deleting files, it is advisable to mark Confirm
1597           to pop up a confirmation dialog before executing the command.
1598           Output can be marked to see the output written by console commands
1599           (standard output and standard error).  Name is the name displayed
1600           in the context menu.  Command is the command line to be executed.
1601           Arguments can be passed using the following codes:
1602
1603           ·   %F %{files} File paths (a list if multiple files selected)
1604
1605           ·   %f %{file} File path to single file
1606
1607           ·   %uF %{urls} URLs (a list if multiple files selected)
1608
1609           ·   %uf %{url} URL to single file
1610
1611           ·   %d %{directory} Directory
1612
1613           ·   %s %{title} Title (Song)
1614
1615           ·   %a %{artist} Artist
1616
1617           ·   %l %{album} Album
1618
1619           ·   %c %{comment} Comment
1620
1621           ·   %y %{year} Year
1622
1623           ·   %t %{track} Track (e.g. 01)
1624
1625           ·   %t %{track.n} Track with field width n (e.g. 001 for
1626               %{track.3})
1627
1628           ·   %T %{tracknumber} Track (without leading zeros, e.g. 1)
1629
1630           ·   %g %{genre} Genre
1631
1632           ·   %b %{browser} Command to start the web browser
1633
1634           ·   %q %{qmlpath} Base directory of provided QML files
1635
1636           The special code @separator can be set as a command to insert a
1637           separator into the user actions context menu. Menu items can be put
1638           into a submenu by enclosing them with @beginmenu and @endmenu
1639           commands. The name of the submenu is determined by the Name column
1640           of the @beginmenu command.
1641
1642           To execute QML scripts, @qml is used as a command name. The path to
1643           the QML script is passed as a parameter. The provided scripts can
1644           be found in the folder %{qmlpath}/script/ (on Linux typically
1645           /usr/share/kid3/qml/script/, on Windows qml/script/ inside the
1646           installation directory, and on macOS in the app folder
1647           kid3.app/Contents/Resources/qml/script/). Custom scripts can be
1648           stored in any directory. If the QML code uses GUI components,
1649           @qmlview shall be used instead of @qml. Additional parameters are
1650           passed to the QML script where they will be available via the
1651           getArguments() function. An overview of some functions and
1652           properties which are available in QML can be found in the appendix
1653           QML Interface.
1654
1655           The command which will be inserted with %{browser} can be defined
1656           in the Web browser line edit above. Commands starting with
1657           %{browser} can be used to fetch information about the audio files
1658           from the web, for instance
1659
1660               %{browser} http://lyricwiki.org/%u{artist}:%u{title}
1661
1662           will query the lyrics for the current song in LyricWiki[12]. The
1663           "u" in %u{artist} and %u{title} is used to URL-encode the artist
1664           %{artist} and song %{title} information. It is easy to define your
1665           own queries in the same way, e.g. an image search with Google[13]:
1666
1667               %{browser} http://images.google.com/images?q=%u{artist}%20%u{album}
1668
1669           To add album cover art to tag 2, you can search for images with
1670           Google or Amazon using the commands described above. The picture
1671           can be added to the tag with drag and drop. You can also add an
1672           image with Add, then select the Picture frame and import an image
1673           file or paste from the clipboard. Picture frames are supported for
1674           ID3v2, MP4, FLAC, Ogg and ASF tags.
1675
1676           To add and delete entries in the table, a context menu can be used.
1677
1678           The Network page contains only a field to insert the proxy address
1679           and optionally the port, separated by a colon. The proxy will be
1680           used when importing from an Internet server when the checkbox is
1681           checked.
1682
1683           In the Plugins page, available plugins can be enabled or disabled.
1684           The plugins are separated into two sections. The Metadata Plugins &
1685           Priority list contains plugins which support audio file formats.
1686           The order of the plugins is important because they are tried from
1687           top to bottom. Some formats are supported by multiple plugins, so
1688           files will be opened with the first plugin supporting them. The
1689           TaglibMetadata supports most formats, if it is at the top of the
1690           list, it will open most of the files. If you want to use a
1691           different plugin for a file format, make sure that it is listed
1692           before the TaglibMetadata plugin. Details about the metadata plugin
1693           and why you may want to use them instead of TagLib are listed
1694           below.
1695
1696           ·   Id3libMetadata: Uses id3lib[14] for ID3v1.1 and ID3v2.3 tags in
1697               MP3, MP2, AAC files. Supports a few more frame types than
1698               TagLib.
1699
1700           ·   OggFlacMetadata: Uses libogg[15], libvorbis, libvorbisfile[16]
1701               for Ogg files, and additionally libFLAC++ and libFLAC[17] for
1702               FLAC files. These are the official libraries for these formats.
1703
1704           ·   TaglibMetadata: Uses TagLib[18] which supports a lot of audio
1705               file formats. It can be used for all audio files supported by
1706               Kid3.
1707
1708           ·   Mp4v2Metadata: mp4v2[19] was originally used by Kid3 to support
1709               M4A files. Can be used in case of problems with the M4A support
1710               of TagLib.
1711
1712           The Available Plugins section lists the remaining plugins. Their
1713           order is not important, but they can be enabled or disabled using
1714           the check boxes.
1715
1716           ·   AmazonImport: Used for the Import from Amazon...  function.
1717
1718           ·   DiscogsImport: Used for the Import from Discogs...  function.
1719
1720           ·   FreedbImport: Used for the Import from gnudb.org...  and Import
1721               from TrackType.org...  functions.
1722
1723           ·   MusicBrainzImport: Used for the Import from MusicBrainz
1724               Release...  function.
1725
1726           ·   AcoustidImport: Used for the Import from MusicBrainz
1727               Fingerprint...  function, which depends on the Chromaprint[20]
1728               and libav[21] libraries.
1729
1730           Plugins which are disabled will not be loaded. This can be used to
1731           optimize resource usage and startup time. The settings on this page
1732           take only effect after a restart of Kid3.
1733
1734       Settings → Configure Shortcuts...
1735           Opens a dialog to assign keyboard shortcuts for most of the program
1736           functions. There are even functions without corresponding menu or
1737           button available, e.g. next file, previous file, select all.
1738
1739
1740   The Help Menu
1741       Help → Kid3 Handbook
1742           Opens this handbook.
1743
1744       Help → About Kid3
1745           Displays a short information about Kid3.
1746

KID3-CLI

1748   Commands
1749       kid3-cli offers a command-line-interface for Kid3. If a directory path
1750       is used, the directory is opened. If one or more file paths are given,
1751       the common directory is opened and the files are selected. Subsequent
1752       commands will then work on these files. Commands are specified using -c
1753       options. If multiple commands are passed, they are executed in the
1754       given order. If files are modified by the commands, they will be saved
1755       at the end. If no command options are passed, kid3-cli starts in
1756       interactive mode. Commands can be entered and will operate on the
1757       current selection. The following sections list all available commands.
1758
1759       Help
1760           help [COMMAND-NAME]
1761
1762           Displays help about the parameters of COMMAND-NAME or about all
1763           commands if no command name is given.
1764
1765       Timeout
1766           timeout [default | off | TIME]
1767
1768           Overwrite the default command timeout. The CLI commands abort after
1769           a command specific timeout is expired. This timeout is 10 seconds
1770           for ls and albumart, 60 seconds for autoimport and filter, and 3
1771           seconds for all other commands. If a huge number of files has to be
1772           processed, this timeouts may be too restrictive, thus the timeout
1773           for all commands can be set to TIME ms, switched off altogether or
1774           be left at the default values.
1775
1776       Quit application
1777           exit [force]
1778
1779           Exit application. If there are modified unsaved files, the force
1780           parameter is required.
1781
1782       Change directory
1783           cd [DIRECTORY]
1784
1785           If no DIRECTORY is given, change to the home directory. If a
1786           directory is given, change into the directory. If one or more file
1787           paths are given, change to their common directory and select the
1788           files.
1789
1790       Print the current working directory
1791           pwd
1792
1793           Print the filename of the current working directory.
1794
1795       Directory list
1796           ls
1797
1798           List the contents of the current directory. This corresponds to the
1799           file list in the Kid3 GUI. Five characters before the file names
1800           show the state of the file.
1801
1802           ·   > File is selected.
1803
1804           ·   * File is modified.
1805
1806           ·   1 File has a tag 1, otherwise '-' is displayed.
1807
1808           ·   2 File has a tag 2, otherwise '-' is displayed.
1809
1810           ·   3 File has a tag 3, otherwise '-' is displayed.
1811
1812               kid3-cli> ls
1813                 1-- 01 Intro.mp3
1814               > 12- 02 We Only Got This One.mp3
1815                *1-- 03 Outro.mp3
1816
1817           In this example, all files have a tag 1, the second file also has a
1818           tag 2 and it is selected. The third file is modified.
1819
1820       Save the changed files
1821           save
1822
1823       Select file
1824           select [all | none | first | previous | next | FILE...]
1825
1826           To select all files, enter select all, to deselect all files, enter
1827           select none. To traverse the files in the current directory start
1828           with select first, then go forward using select next or backward
1829           using select previous. Specific files can be added to the current
1830           selection by giving their file names. Wildcards are possible, so
1831           select *.mp3 will select all MP3 files in the current directory.
1832
1833               kid3-cli> select first
1834               kid3-cli> ls
1835               > 1-- 01 Intro.mp3
1836                 12- 02 We Only Got This One.mp3
1837                *1-- 03 Outro.mp3
1838               kid3-cli> select next
1839               kid3-cli> ls
1840                 1-- 01 Intro.mp3
1841               > 12- 02 We Only Got This One.mp3
1842                *1-- 03 Outro.mp3
1843               kid3-cli> select *.mp3
1844               kid3-cli> ls
1845               > 1-- 01 Intro.mp3
1846               > 12- 02 We Only Got This One.mp3
1847               >*1-- 03 Outro.mp3
1848
1849       Select tag
1850           tag [TAG-NUMBERS]
1851
1852           Many commands have an optional TAG-NUMBERS parameter, which
1853           specifies whether the command operates on tag 1, 2, or 3. If this
1854           parameter is omitted, the default tag numbers are used, which can
1855           be set by this command. At startup, it is set to 12 which means
1856           that information is read from tag 2 if available, else from tag 1;
1857           modifications are done on tag 2. The TAG-NUMBERS can be set to 1,
1858           2, or 3 to operate only on the corresponding tag. If the parameter
1859           is omitted, the current setting is displayed.
1860
1861       Get tag frame
1862           get [all | FRAME-NAME] [TAG-NUMBERS]
1863
1864           This command can be used to read the value of a specific tag frame
1865           or get information about all tag frames (if the argument is omitted
1866           or all is used). Modified frames are marked with a '*'.
1867
1868               kid3-cli> get
1869               File: MPEG 1 Layer 3 192 kbps 44100 Hz Joint Stereo
1870                 Name: 01 Intro.mp3
1871               Tag 1: ID3v1.1
1872                 Title         Intro
1873                 Artist        One Hit Wonder
1874                 Album         Let's Tag
1875                 Date          2013
1876                 Track Number  1
1877                 Genre         Pop
1878               kid3-cli> get title
1879               Intro
1880
1881           To save the contents of a picture frame to a file, use
1882
1883               get picture:'/path/to/folder.jpg'
1884
1885           To save synchronized lyrics to an LRC file, use
1886
1887               get SYLT:'/path/to/lyrics.lrc'
1888
1889           It is possible to get only a specific field from a frame, for
1890           example get POPM.Email for the Email field of a Popularimeter
1891           frame. If a file has multiple frames of the same kind, the
1892           different frames can be indexed with brackets, for example the
1893           first performer from a Vorbis comment can be retrieved using get
1894           performer[0], the second using get performer[1].
1895
1896           The pseudo field name "selected" can be used to check if a frame is
1897           selected, for example get artist.selected will return 1 if the
1898           artist frame is selected, else 0.
1899
1900       Set tag frame
1901           set {FRAME-NAME} {FRAME-VALUE} [TAG-NUMBERS]
1902
1903           This command sets the value of a specific tag frame. If FRAME-VALUE
1904           is empty, the frame is deleted.
1905
1906               kid3-cli> set remixer 'O.H. Wonder'
1907
1908           To set the contents of a picture frame from a file, use
1909
1910               set picture:'/path/to/folder.jpg' 'Picture Description'
1911
1912           To set synchronized lyrics from an LRC file, use
1913
1914               set SYLT:'/path/to/lyrics.lrc' 'Lyrics Description'
1915
1916           To set a specific field of a frame, the field name can be given
1917           after a dot, e.g. to set the Counter field of a Popularimeter
1918           frame, use
1919
1920               set POPM.Counter 5
1921
1922           To set multiple frames of the same kind, an index can be given in
1923           brackets, e.g. to set multiple performers in a Vorbis comment, use
1924
1925               kid3-cli> set performer[0] 'Liza don Getti (soprano)'
1926               kid3-cli> set performer[1] 'Joe Barr (piano)'
1927
1928           To select certain frames before a copy, paste or remove action, the
1929           pseudo field name "selected" can be used. Normally, all frames are
1930           selected, to deselect all, use set '*.selected' 0, then for example
1931           set artist.selected 1 to select the artist frame.
1932
1933       Revert
1934           revert
1935
1936           Revert all modifications in the selected files (or all files if no
1937           files are selected).
1938
1939       Import from file or clipboard
1940           import {FILE} {FORMAT-NAME} [TAG-NUMBERS]
1941
1942           Tags are imported from the file FILE (or from the clipboard if
1943           clipboard is used for FILE) in the format with the name FORMAT-NAME
1944           (e.g.  "CSV unquoted", see Import).
1945
1946           If tags is given for FILE, tags are imported from other tags.
1947           Instead of FORMAT-NAME parameters SOURCE and EXTRACTION are
1948           required, see Import from Tags.
1949
1950       Automatic import
1951           autoimport [PROFILE-NAME] [TAG-NUMBERS]
1952
1953           Batch import using profile PROFILE-NAME (see Automatic Import,
1954           "All" is used if omitted).
1955
1956       Download album cover artwork
1957           albumart {URL} [all]
1958
1959           Set the album artwork by downloading a picture from URL. The rules
1960           defined in the Browse Cover Art dialog are used to transform
1961           general URLs (e.g. from Amazon) to a picture URL. To set the album
1962           cover from a local picture file, use the set command.
1963
1964               kid3-cli> albumart
1965               http://www.amazon.com/Versus-World-Amon-Amarth/dp/B000078DOC
1966
1967       Export to file or clipboard
1968           export {FILE} {FORMAT-NAME} [TAG-NUMBERS]
1969
1970           Tags are exported to file FILE (or to the clipboard if clipboard is
1971           used for FILE) in the format with the name FORMAT-NAME (e.g.  "CSV
1972           unquoted", see Export).
1973
1974       Create playlist
1975           playlist
1976
1977           Create playlist in the format set in the configuration, see Create
1978           Playlist.
1979
1980       Apply filename format
1981           filenameformat
1982
1983           Apply file name format set in the configuration, see Apply Filename
1984           Format.
1985
1986       Apply tag format
1987           tagformat
1988
1989           Apply tag name format set in the configuration, see Apply Tag
1990           Format.
1991
1992       Apply text encoding
1993           textencoding
1994
1995           Apply text encoding set in the configuration, see Apply Text
1996           Encoding.
1997
1998       Rename directory
1999           renamedir [FORMAT] [create | rename | dryrun] [TAG-NUMBERS]
2000
2001           Rename or create directories from the values in the tags according
2002           to a given FORMAT (e.g.  %{artist} - %{album}, see Rename
2003           Directory), if no format is given, the format defined in the Rename
2004           directory dialog is used. The default mode is rename; to create
2005           directories, create must be given explicitly. The rename actions
2006           will be performed immediately, to just see what would be done, use
2007           the dryrun option.
2008
2009       Number tracks
2010           numbertracks [TRACK-NUMBER] [TAG-NUMBERS]
2011
2012           Number the selected tracks starting with TRACK-NUMBER (1 if
2013           omitted).
2014
2015       Filter
2016           filter [FILTER-NAME | FILTER-FORMAT]
2017
2018           Filter the files so that only the files matching the FILTER-FORMAT
2019           are visible. The name of a predefined filter expression (e.g.
2020           "Filename Tag Mismatch") can be used instead of a filter
2021           expression, see Filter.
2022
2023               kid3-cli> filter '%{title} contains "tro"'
2024               Started
2025                 /home/urs/One Hit Wonder - Let's Tag
2026               + 01 Intro.mp3
2027               - 02 We Only Got This One.mp3
2028               + 03 Outro.mp3
2029               Finished
2030               kid3-cli> ls
2031                 1-- 01 Intro.mp3
2032                 1-- 03 Outro.mp3
2033               kid3-cli> filter All
2034               Started
2035                 /home/urs/One Hit Wonder - Let's Tag
2036               + 01 Intro.mp3
2037               + 02 We Only Got This One.mp3
2038               + 03 Outro.mp3
2039               Finished
2040               kid3-cli> ls
2041                 1-- 01 Intro.mp3
2042                 12- 02 We Only Got This One.mp3
2043                 1-- 03 Outro.mp3
2044
2045       Convert ID3v2.3 to ID3v2.4
2046           to24
2047
2048       Convert ID3v2.4 to ID3v2.3
2049           to23
2050
2051       Filename from tag
2052           fromtag [FORMAT] [TAG-NUMBERS]
2053
2054           Set the file names of the selected files from values in the tags,
2055           for example fromtag '%{track} - %{title}' 1. If no format is
2056           specified, the format set in the GUI is used.
2057
2058       Tag from filename
2059           totag [FORMAT] [TAG-NUMBERS]
2060
2061           Set the tag frames from the file names, for example totag
2062           '%{albumartist} - %{album}/%{track} %{title}' 2. If no format is
2063           specified, the format set in the GUI is used. If the format of the
2064           filename does not match this pattern, a few other commonly used
2065           formats are tried.
2066
2067       Tag to other tag
2068           syncto {TAG-NUMBER}
2069
2070           Copy the tag frames from one tag to the other tag, e.g. to set the
2071           ID3v2 tag from the ID3v1 tag, use syncto 2.
2072
2073       Copy
2074           copy [TAG-NUMBER]
2075
2076           Copy the tag frames of the selected file to the internal copy
2077           buffer. They can then be set on another file using the paste
2078           command.
2079
2080           To copy only a subset of the frames, use the "selected" pseudo
2081           field with the set command. For example, to copy only the disc
2082           number and copyright frames, use
2083
2084               set '*.selected' 0
2085               set discnumber.selected 1
2086               set copyright.selected 1
2087               copy
2088
2089
2090       Paste
2091           paste [TAG-NUMBER]
2092
2093           Set tag frames from the contents of the copy buffer in the selected
2094           files.
2095
2096       Remove
2097           remove [TAG-NUMBER]
2098
2099           Remove a tag.
2100
2101           It is possible to remove only a subset of the frames by selecting
2102           them as described in the copy command.
2103
2104       Play
2105           play [pause | stop | previous | next]
2106
2107           Start audio playback. Once it has been started, it can be
2108           controlled with the pause (to pause and resume), stop, previous and
2109           next options.
2110
2111   Examples
2112       Set title containing an apostrophe. Commands passed to kid3-cli with -c
2113       have to be in quotes if they do not only consist of a single word. If
2114       such a command itself has an argument containing spaces, that argument
2115       has to be quoted too. In UNIX shells single or double quotes can be
2116       used, but on the Windows Command Prompt, it is important that the outer
2117       quoting is done using double quotes and inside these quotes, single
2118       quotes are used. If the text inside the single quotes contains a single
2119       quote, it has to be escaped using a backslash character, as shown in
2120       the following example:
2121
2122           kid3-cli -c "set title 'I\'ll be there for you'" /path/to/dir
2123
2124       Set album cover in all files of a directory using the batch import
2125       function:
2126
2127           kid3-cli -c "autoimport 'Cover Art'" /path/to/dir
2128
2129       Remove comment frames and apply the tag format in both tags of all MP3
2130       files of a directory:
2131
2132           kid3-cli -c "set comment '' 1" -c "set comment '' 2" \
2133           -c "tagformat 1" -c "tagformat 2" /path/to/dir/*.mp3
2134
2135       Automatically import tag 2, synchronize to tag 1, set file names from
2136       tag 2 and finally create a playlist:
2137
2138           kid3-cli -c autoimport -c "syncto 1" -c fromtag -c playlist \
2139             /path/to/dir/*.mp3
2140
2141       For all files with an ID3v2.4.0 tag, convert to ID3v2.3.0 and remove
2142       the arranger frame:
2143
2144           kid3-cli -c "filter 'ID3v2.4.0 Tag'" -c "select all" -c to23 \
2145             -c "set arranger ''" /path/to/dir
2146
2147       This Python script uses kid3-cli to generate iTunes Sound Check
2148       iTunNORM frames from replay gain information.
2149
2150
2151           #!/usr/bin/env python3
2152           # Generate iTunes Sound Check from ReplayGain.
2153           import os, sys, subprocess
2154
2155           def rg2sc(dirpath):
2156             for root, dirs, files in os.walk(dirpath):
2157               for name in files:
2158                 if name.endswith(('.mp3', '.m4a', '.aiff', '.aif')):
2159                   fn = os.path.join(root, name)
2160                   rg = subprocess.check_output([
2161                     'kid3-cli', '-c', 'get "replaygain_track_gain"',
2162                      fn]).strip()
2163                   if rg.endswith(b' dB'):
2164                     rg = rg[:-3]
2165                   try:
2166                     rg = float(rg)
2167                   except ValueError:
2168                     print('Value %s of %s in not a float' % (rg, fn))
2169                     continue
2170                   sc = (' ' + ('%08X' % int((10 ** (-rg / 10)) * 1000) )) * 10
2171                   subprocess.call([
2172                     'kid3-cli', '-c', 'set iTunNORM "%s"' % sc, fn])
2173
2174           if __name__ == '__main__':
2175             rg2sc(sys.argv[1])
2176
2177

CREDITS AND LICENSE

2179       Kid3
2180
2181       Program written by Urs Fleisch <ufleisch at users.sourceforge.net>
2182
2183       FDL[22]
2184
2185       GPL[23]
2186

INSTALLATION

2188   How to obtain Kid3
2189       Kid3 can be found at https://kid3.sourceforge.io.
2190
2191   Requirements
2192       Kid3 needs Qt[24].  KDE[25] is recommended but not necessary, as Kid3
2193       can also be compiled as a Qt application.  Kid3 can be compiled for
2194       systems where these libraries are available, e.g. for GNU/Linux,
2195       Windows and macOS. To tag Ogg/Vorbis files, libogg[15], libvorbis and
2196       libvorbisfile[16] are required, for FLAC files libFLAC++ and
2197       libFLAC[17].  id3lib[14] is used for MP3 files. These four formats are
2198       also supported by TagLib[18], which can also handle Opus, MPC, APE,
2199       MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF files and tracker
2200       modules. To import from acoustic fingerprints, Chromaprint[20] and
2201       libav[21] are used.
2202
2203       Kid3 is available for most Linux distributions, Windows and macOS.
2204       Links can be found on https://kid3.sourceforge.io.
2205
2206   Compilation and Installation
2207       You can compile Kid3 with or without KDE. Without KDE, Kid3 is a simple
2208       Qt application and lacks some configuration and session features.
2209
2210       For a KDE version, go into the top directory and type
2211
2212           % cmake .
2213           % make
2214           % make install
2215
2216       To compile for different versions of Qt or KDE, set the corresponding
2217       cmake options.
2218
2219       If not all libraries are present, Kid3 is built with reduced
2220       functionality. So you should take care to have all desired development
2221       packages installed. On the other side, cmake-options control which
2222       libraries are compiled in. The default is -DWITH_TAGLIB:BOOL=ON
2223       -DWITH_MP4V2:BOOL=OFF -DWITH_ID3LIB:BOOL=ON -DWITH_CHROMAPRINT:BOOL=ON
2224       -DWITH_VORBIS:BOOL=ON -DWITH_FLAC:BOOL=ON . These options can be
2225       disabled using OFF.
2226
2227       To build Kid3 as a Qt application without KDE, use the cmake option
2228       -DWITH_APPS=Qt. To build both a KDE and a Qt application, set
2229       -DWITH_APPS="Qt;KDE".
2230
2231       To use a specific Qt installation, set
2232       -DQT_QMAKE_EXECUTABLE=/path/to/qmake.
2233
2234       Generation of RPM-Packages is supported by the file kid3.spec, for
2235       Debian-Packages, the script build-deb.sh is available.
2236
2237       The Qt application can also be compiled for Windows and macOS. The
2238       script buildlibs.sh can be used to download and build all required
2239       libraries and create a Kid3 package.
2240
2241   Configuration
2242       With KDE, the settings are stored in .config/kid3rc. As a Qt
2243       application, this file is in .config/Kid3/Kid3.conf. On Windows, the
2244       configuration is stored in the registry. on macOS in a plist file.
2245
2246       The environment variable KID3_CONFIG_FILE can be used to set the path
2247       of the configuration file.
2248

D-BUS INTERFACE

2250   D-Bus Examples
2251       On Linux a D-Bus-interface can be used to control Kid3 by scripts.
2252       Scripts can be written in any language with D-Bus-bindings (e.g. in
2253       Python) and can be added to the User Actions to extend the
2254       functionality of Kid3.
2255
2256       The artist in tag 2 of the current file can be set to the value "One
2257       Hit Wonder" with the following code:
2258
2259       Shell
2260
2261               dbus-send --dest=net.sourceforge.kid3 --print-reply=literal \
2262               /Kid3 net.sourceforge.Kid3.setFrame int32:2 string:'Artist' \
2263               string:'One Hit Wonder'
2264
2265           or easier with Qt's qdbus (qdbusviewer can be used to explore the
2266           interface in a GUI):
2267
2268               qdbus net.sourceforge.kid3 /Kid3 setFrame 2 Artist \
2269               'One Hit Wonder'
2270
2271       Python
2272
2273               import dbus
2274               kid3 = dbus.SessionBus().get_object(
2275                 'net.sourceforge.kid3', '/Kid3')
2276               kid3.setFrame(2, 'Artist', 'One Hit Wonder')
2277
2278       Perl
2279
2280               use Net::DBus;
2281               $kid3 = Net::DBus->session->get_service(
2282                 "net.sourceforge.kid3")->get_object(
2283                 "/Kid3", "net.sourceforge.Kid3");
2284               $kid3->setFrame(2, "Artist", "One Hit Wonder");
2285
2286   D-Bus API
2287       The D-Bus API is specified in net.sourceforge.Kid3.xml. The Kid3
2288       interface has the following methods:
2289
2290       Open file or directory
2291           boolean openDirectory(string path);
2292
2293           path
2294               path to file or directory
2295
2296           Returns true if OK.
2297
2298       Unload the tags of all files which are not modified or selected
2299           unloadAllTags(void);
2300
2301       Save all modified files
2302           boolean save(void);
2303
2304           Returns true if OK.
2305
2306       Get a detailed error message provided by some methods
2307           string getErrorMessage(void);
2308
2309           Returns detailed error message.
2310
2311       Revert changes in the selected files
2312           revert(void);
2313
2314       Start an automatic batch import
2315           boolean batchImport(int32 tagMask, string profileName);
2316
2317           tagMask
2318               tag mask (bit 0 for tag 1, bit 1 for tag 2)
2319
2320           profileName
2321               name of batch import profile to use
2322
2323       Import tags from a file
2324           boolean importFromFile(int32 tagMask, string path, int32 fmtIdx);
2325
2326           tagMask
2327               tag bit (1 for tag 1, 2 for tag 2)
2328
2329           path
2330               path of file
2331
2332           fmtIdx
2333               index of format
2334
2335           Returns true if OK.
2336
2337       Import tags from other tags
2338           importFromTags(int32 tagMask, string source, string extraction);
2339
2340           tagMask
2341               tag bit (1 for tag 1, 2 for tag 2)
2342
2343           source
2344               format to get source text from tags
2345
2346           extraction
2347               regular expression with frame names and captures to extract
2348               from source text
2349
2350       Download album cover art
2351           downloadAlbumArt(string url, boolean allFilesInDir);
2352
2353           url
2354               URL of picture file or album art resource
2355
2356           allFilesInDir
2357               true to add the image to all files in the directory
2358
2359       Export tags to a file
2360           boolean exportToFile(int32 tagMask, string path, int32 fmtIdx);
2361
2362           tagMask
2363               tag bit (1 for tag 1, 2 for tag 2)
2364
2365           path
2366               path of file
2367
2368           fmtIdx
2369               index of format
2370
2371           Returns true if OK.
2372
2373       Create a playlist
2374           boolean createPlaylist(void);
2375
2376           Returns true if OK.
2377
2378       Get items of a playlist
2379           boolean getPlaylistItems(string path);
2380
2381           path
2382               path to playlist file
2383
2384           Returns list of absolute paths to playlist items.
2385
2386       Set items of a playlist
2387           boolean setPlaylistItems(string path, array items);
2388
2389           path
2390               path to playlist file
2391
2392           items
2393               list of absolute paths to playlist items
2394
2395           Returns true if OK, false if not all items were found and added or
2396           saving failed.
2397
2398       Quit the application
2399           quit(void);
2400
2401       Select all files
2402           selectAll(void);
2403
2404       Deselect all files
2405           deselectAll(void);
2406
2407       Set the first file as the current file
2408           boolean firstFile(void);
2409
2410           Returns true if there is a first file.
2411
2412       Set the previous file as the current file
2413           boolean previousFile(void);
2414
2415           Returns true if there is a previous file.
2416
2417       Set the next file as the current file
2418           boolean nextFile(void);
2419
2420           Returns true if there is a next file.
2421
2422       Select the first file
2423           boolean selectFirstFile(void);
2424
2425           Returns true if there is a first file.
2426
2427       Select the previous file
2428           boolean selectPreviousFile(void);
2429
2430           Returns true if there is a previous file.
2431
2432       Select the next file
2433           boolean selectNextFile(void);
2434
2435           Returns true if there is a next file.
2436
2437       Select the current file
2438           boolean selectCurrentFile(void);
2439
2440           Returns true if there is a current file.
2441
2442       Expand or collapse the current file item if it is a directory
2443           boolean expandDirectory(void);
2444
2445           A file list item is a directory if getFileName() returns a name
2446           with '/' as the last character.
2447
2448           Returns true if current file item is a directory.
2449
2450       Apply the file name format
2451           applyFilenameFormat(void);
2452
2453       Apply the tag format
2454           applyTagFormat(void);
2455
2456       Apply text encoding
2457           applyTextEncoding(void);
2458
2459       Set the directory name from the tags
2460           boolean setDirNameFromTag(int32 tagMask, string format,
2461                                     boolean create);
2462
2463           tagMask
2464               tag mask (bit 0 for tag 1, bit 1 for tag 2)
2465
2466           format
2467               directory name format
2468
2469           create
2470               true to create, false to rename
2471
2472           Returns true if OK, else the error message is available using
2473           getErrorMessage().
2474
2475       Set subsequent track numbers in the selected files
2476           numberTracks(int32 tagMask, int32 firstTrackNr);
2477
2478           tagMask
2479               tag mask (bit 0 for tag 1, bit 1 for tag 2)
2480
2481           firstTrackNr
2482               number to use for first file
2483
2484       Filter the files
2485           filter(string expression);
2486
2487           expression
2488               filter expression
2489
2490       Convert ID3v2.3 tags to ID3v2.4
2491           convertToId3v24(void);
2492
2493       Convert ID3v2.4 tags to ID3v2.3
2494           convertToId3v23(void);
2495
2496           Returns true if OK.
2497
2498       Get path of directory
2499           string getDirectoryName(void);
2500
2501           Returns absolute path of directory.
2502
2503       Get name of current file
2504           string getFileName(void);
2505
2506           Returns true absolute file name, ends with "/" if it is a
2507           directory.
2508
2509       Set name of selected file
2510           setFileName(string name);
2511
2512           name
2513               file name
2514
2515           The file will be renamed when the directory is saved.
2516
2517       Set format to use when setting the filename from the tags
2518           setFileNameFormat(string format);
2519
2520           format
2521               file name format
2522
2523       Set the file names of the selected files from the tags
2524           setFileNameFromTag(int32 tagMask);
2525
2526           tagMask
2527               tag bit (1 for tag 1, 2 for tag 2)
2528
2529       Get value of frame
2530           string getFrame(int32 tagMask, string name);
2531
2532           tagMask
2533               tag bit (1 for tag 1, 2 for tag 2)
2534
2535           name
2536               name of frame (e.g. "artist")
2537
2538           To get binary data like a picture, the name of a file to write can
2539           be added after the name, e.g. "Picture:/path/to/file". In the same
2540           way, synchronized lyrics can be exported, e.g.
2541           "SYLT:/path/to/file".
2542
2543           Returns value of frame.
2544
2545       Set value of frame
2546           boolean setFrame(int32 tagMask, string name, string value);
2547
2548           tagMask
2549               tag bit (1 for tag 1, 2 for tag 2)
2550
2551           name
2552               name of frame (e.g. "artist")
2553
2554           value
2555               value of frame
2556
2557           For tag 2 (tagMask 2), if no frame with name exists, a new frame is
2558           added, if value is empty, the frame is deleted. To add binary data
2559           like a picture, a file can be added after the name, e.g.
2560           "Picture:/path/to/file". "SYLT:/path/to/file" can be used to import
2561           synchronized lyrics.
2562
2563           Returns true if OK.
2564
2565       Get all frames of a tag
2566           array of string getTag(int32 tagMask);
2567
2568           tagMask
2569               tag bit (1 for tag 1, 2 for tag 2)
2570
2571           Returns list with alternating frame names and values.
2572
2573       Get technical information about file
2574           array of string getInformation(void);
2575
2576           Properties are Format, Bitrate, Samplerate, Channels, Duration,
2577           Channel Mode, VBR, Tag 1, Tag 2. Properties which are not available
2578           are omitted.
2579
2580           Returns list with alternating property names and values.
2581
2582       Set tag from file name
2583           setTagFromFileName(int32 tagMask);
2584
2585           tagMask
2586               tag bit (1 for tag 1, 2 for tag 2)
2587
2588       Set tag from other tag
2589           setTagFromOtherTag(int32 tagMask);
2590
2591           tagMask
2592               tag bit (1 for tag 1, 2 for tag 2)
2593
2594       Copy tag
2595           copyTag(int32 tagMask);
2596
2597           tagMask
2598               tag bit (1 for tag 1, 2 for tag 2)
2599
2600       Paste tag
2601           pasteTag(int32 tagMask);
2602
2603           tagMask
2604               tag bit (1 for tag 1, 2 for tag 2)
2605
2606       Remove tag
2607           removeTag(int32 tagMask);
2608
2609           tagMask
2610               tag bit (1 for tag 1, 2 for tag 2)
2611
2612       Reparse the configuration
2613           reparseConfiguration(void);
2614
2615           Automated configuration changes are possible by modifying the
2616           configuration file and then reparsing the configuration.
2617
2618       Plays the selected files
2619           playAudio(void);
2620

QML INTERFACE

2622   QML Examples
2623       QML scripts can be invoked via the context menu of the file list and
2624       can be set in the tab User Actions of the settings dialog. The scripts
2625       which are set there can be used as examples to program custom scripts.
2626       QML uses JavaScript, here is the obligatory "Hello World":
2627
2628           import Kid3 1.0
2629
2630           Kid3Script {
2631             onRun: {
2632               console.log("Hello world, directory is", app.dirName)
2633               Qt.quit()
2634             }
2635           }
2636
2637       If this script is saved as /path/to/Example.qml, the user command can
2638       be defined as @qml /path/to/Example.qml with name QML Test and Output
2639       checked. It can then be started using the QML Test item in the file
2640       list context menu, and the output will be visible in the window.
2641
2642       Alternatively, the script could also be started independent of Kid3
2643       using the QML tools.
2644
2645           qml -apptype widget -I /usr/lib/kid3/plugins/imports /path/to/Example.qml
2646
2647       or
2648
2649           qmlscene -I /usr/lib/kid3/plugins/imports /path/to/Example.qml
2650
2651       On Windows and macOS, the import path must be adapted to the imports
2652       folder inside the installation directory. Scripts started outside of
2653       Kid3 will use the current directory, so it should be changed
2654       beforehand.
2655
2656       To list the titles in the tags 2 of all files in the current directory,
2657       the following script could be used:
2658
2659           import Kid3 1.0
2660
2661           Kid3Script {
2662             onRun: {
2663               app.firstFile()
2664               do {
2665                 if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
2666                   console.log(app.getFrame(tagv2, "title"))
2667                 }
2668               } while (app.nextFile())
2669             }
2670           }
2671
2672       If the directory contains many files, such a script might block the
2673       user interface for some time. For longer operations, it should
2674       therefore have a break from time to time. The alternative
2675       implementation below has the work for a single file moved out into a
2676       function. This function invokes itself with a timeout of 1 ms at the
2677       end, given that more files have to be processed. This will ensure that
2678       the GUI remains responsive while the script is running.
2679
2680           import Kid3 1.0
2681
2682           Kid3Script {
2683             onRun: {
2684               function doWork() {
2685                 if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
2686                   console.log(app.getFrame(tagv2, "title"))
2687                 }
2688                 if (!app.nextFile()) {
2689                   Qt.quit()
2690                 } else {
2691                   setTimeout(doWork, 1)
2692                 }
2693               }
2694
2695               app.firstFile()
2696               doWork()
2697             }
2698           }
2699
2700       When using app.firstFile() with app.nextFile(), all files of the
2701       current directory will be processed. If only the selected files shall
2702       be affected, use firstFile() and nextFile() instead, these are
2703       convenience functions of the Kid3Script component. The following
2704       example is a script which copies only the disc number and copyright
2705       frames of the selected file.
2706
2707           import Kid3 1.1
2708
2709           Kid3Script {
2710             onRun: {
2711               function doWork() {
2712                 if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
2713                   app.setFrame(tagv2, "*.selected", false)
2714                   app.setFrame(tagv2, "discnumber.selected", true)
2715                   app.setFrame(tagv2, "copyright.selected", true)
2716                   app.copyTags(tagv2)
2717                 }
2718                 if (!nextFile()) {
2719                   Qt.quit()
2720                 } else {
2721                   setTimeout(doWork, 1)
2722                 }
2723               }
2724
2725               firstFile()
2726               doWork()
2727             }
2728           }
2729
2730       More example scripts come with Kid3 and are already registered as user
2731       commands.
2732
2733       ·   ReplayGain to SoundCheck (ReplayGain2SoundCheck.qml): Create
2734           iTunNORM SoundCheck information from replay gain frames.
2735
2736       ·   Resize Album Art (ResizeAlbumArt.qml): Resize embedded cover art
2737           images which are larger than 500x500 pixels.
2738
2739       ·   Extract Album Art (ExtractAlbumArt.qml): Extract all embedded cover
2740           art pictures avoiding duplicates.
2741
2742       ·   Embed Album Art (EmbedAlbumArt.qml): Embed cover art found in image
2743           files into audio files in the same folder.
2744
2745       ·   Embed Lyrics (EmbedLyrics.qml): Fetch unsynchronized lyrics from
2746           web service.
2747
2748       ·   Text Encoding ID3v1 (ShowTextEncodingV1.qml): Helps to find the
2749           encoding of ID3v1 tags by showing the tags of the current file in
2750           all available character encodings.
2751
2752       ·   Export CSV (ExportCsv.qml): Export recursively all tags of all
2753           files to a CSV file.
2754
2755       ·   Export Playlist Folder (ExportPlaylist.qml): Copy all files from a
2756           playlist into a directory and rename them according to their
2757           position.
2758
2759       ·   QML Console (QmlConsole.qml): Simple console to play with Kid3's
2760           QML API.
2761
2762
2763   QML API
2764       The API can be easily explored using the QML Console, which is
2765       available as an example script with a user interface.
2766
2767       Kid3Script
2768           Kid3Script is a regular QML component located inside the plugin
2769           directory. You could use another QML component just as well. Using
2770           Kid3Script makes it easy to start the script function using the
2771           onRun signal handler. Moreover it offers some functions:
2772
2773               onRun: Signal handler which is invoked when the script is started
2774               tagv1, tagv2, tagv2v1: Constants for tag parameters
2775               script: Access to scripting functions
2776               configs: Access to configuration objects
2777               getArguments(): List of script arguments
2778               isStandalone(): true if the script was not started from within Kid3
2779               setTimeout(callback, delay): Starts callback after delay ms
2780               firstFile(): To first selected file
2781               nextFile(): To next selected file
2782
2783
2784       Scripting Functions
2785           As JavaScript and therefore QML too has only a limited set of
2786           functions for scripting, the script object has some additional
2787           methods, for instance:
2788
2789               script.properties(obj): String with Qt properties
2790               script.writeFile(filePath, data): Write data to file, true if OK
2791               script.readFile(filePath): Read data from file
2792               script.removeFile(filePath): Delete file, true if OK
2793               script.fileExists(filePath): true if file exists
2794               script.renameFile(oldName, newName): Rename file, true if OK
2795               script.copyFile(source, dest): Copy file, true if OK
2796               script.makeDir(path): Create directory, true if OK
2797               script.removeDir(path): Remove directory, true if OK
2798               script.tempPath(): Path to temporary directory
2799               script.listDir(path, [nameFilters], [classify]): List directory entries
2800               script.system(program, [args], [msecs]): Synchronously start a system command,
2801                 [exit code, standard output, standard error] if not timeout
2802               script.systemAsync(program, [args], [callback]): Asynchronously start a system
2803               command, callback will be called with [exit code, standard output, standard
2804               error]
2805               script.getEnv(varName): Get value of environment variable
2806               script.setEnv(varName, value): Set value of environment variable
2807               script.getQtVersion(): Qt version string, e.g. "5.4.1"
2808               script.getDataMd5(data): Get hex string of the MD5 hash of data
2809               script.getDataSize(data): Get size of byte array
2810               script.dataToImage(data, [format]): Create an image from data bytes
2811               script.dataFromImage(img, [format]): Get data bytes from image
2812               script.loadImage(filePath): Load an image from a file
2813               script.saveImage(img, filePath, [format]): Save an image to a file, true if OK
2814               script.imageProperties(img): Get properties of an image, map containing
2815                 "width", "height", "depth" and "colorCount", empty if invalid image
2816               script.scaleImage(img, width, [height]): Scale an image, returns scaled image
2817
2818       Application Context
2819           Using QML, a large part of the Kid3 functions are accessible. The
2820           API is similar to the one used for D-Bus. For details, refer to the
2821           respective notes.
2822
2823               app.openDirectory(path): Open directory
2824               app.unloadAllTags(): Unload all tags
2825               app.saveDirectory(): Save directory
2826               app.revertFileModifications(): Revert
2827               app.importTags(tag, path, fmtIdx): Import file
2828               app.importFromTags(tag, source, extraction): Import from tags
2829               app.downloadImage(url, allFilesInDir): Download image
2830               app.exportTags(tag, path, fmtIdx): Export file
2831               app.writePlaylist(): Write playlist
2832               app.getPlaylistItems(path): Get items of a playlist
2833               app.setPlaylistItems(path, items): Set items of a playlist
2834               app.selectAllFiles(): Select all
2835               app.deselectAllFiles(): Deselect
2836               app.firstFile([select], [onlyTaggedFiles]): To first file
2837               app.nextFile([select], [onlyTaggedFiles]): To next file
2838               app.previousFile([select], [onlyTaggedFiles]): To previous file
2839               app.selectCurrentFile([select]): Select current file
2840               app.selectFile(path, [select]): Select a specific file
2841               app.getSelectedFilePaths([onlyTaggedFiles]): Get paths of selected files
2842               app.requestExpandFileList(): Expand all
2843               app.applyFilenameFormat(): Apply filename format
2844               app.applyTagFormat(): Apply tag format
2845               app.applyTextEncoding(): Apply text encoding
2846               app.numberTracks(nr, total, tag, [options]): Number tracks
2847               app.applyFilter(expr): Filter
2848               app.convertToId3v23(): Convert ID3v2.4.0 to ID3v2.3.0
2849               app.convertToId3v24(): Convert ID3v2.3.0 to ID3v2.4.0
2850               app.getFilenameFromTags(tag): Filename from tags
2851               app.getTagsFromFilename(tag): Filename to tags
2852               app.getAllFrames(tag): Get object with all frames
2853               app.getFrame(tag, name): Get frame
2854               app.setFrame(tag, name, value): Set frame
2855               app.getPictureData(): Get data from picture frame
2856               app.setPictureData(data): Set data in picture frame
2857               app.copyToOtherTag(tag): Tags to other tags
2858               app.copyTags(tag): Copy
2859               app.pasteTags(tag): Paste
2860               app.removeTags(tag): Remove
2861               app.playAudio(): Play
2862               app.readConfig(): Read configuration
2863               app.applyChangedConfiguration(): Apply configuration
2864               app.dirName: Directory name
2865               app.selectionInfo.fileName: File name
2866               app.selectionInfo.filePath: Absolute file path
2867               app.selectionInfo.detailInfo: Format details
2868               app.selectionInfo.tag(Frame.Tag_1).tagFormat: Tag 1 format
2869               app.selectionInfo.tag(Frame.Tag_2).tagFormat: Tag 2 format
2870               app.selectionInfo.formatString(tag, format): Substitute codes in format string
2871               app.selectFileName(caption, dir, filter, saveFile): Open file dialog to
2872               select a file
2873               app.selectDirName(caption, dir): Open file dialog to select a directory
2874
2875           For asynchronous operations, callbacks can be connected to signals.
2876
2877               function automaticImport(profile) {
2878                 function onAutomaticImportFinished() {
2879                   app.batchImporter.finished.disconnect(onAutomaticImportFinished)
2880                 }
2881                 app.batchImporter.finished.connect(onAutomaticImportFinished)
2882                 app.batchImport(profile, tagv2)
2883               }
2884
2885               function renameDirectory(format) {
2886                 function onRenameActionsScheduled() {
2887                   app.renameActionsScheduled.disconnect(onRenameActionsScheduled)
2888                   app.performRenameActions()
2889                 }
2890                 app.renameActionsScheduled.connect(onRenameActionsScheduled)
2891                 app.renameDirectory(tagv2v1, format, false)
2892               }
2893
2894       Configuration Objects
2895           The different configuration sections are accessible via methods of
2896           configs. Their properties can be listed in the QML console.
2897
2898               script.properties(configs.networkConfig())
2899
2900           Properties can be set:
2901
2902               configs.networkConfig().useProxy = false
2903
2904
2905
2906               configs.batchImportConfig()
2907               configs.exportConfig()
2908               configs.fileConfig()
2909               configs.filenameFormatConfig()
2910               configs.filterConfig()
2911               configs.findReplaceConfig()
2912               configs.guiConfig()
2913               configs.importConfig()
2914               configs.mainWindowConfig()
2915               configs.networkConfig()
2916               configs.numberTracksConfig()
2917               configs.playlistConfig()
2918               configs.renDirConfig()
2919               configs.tagConfig()
2920               configs.tagFormatConfig()
2921               configs.userActionsConfig()
2922

AUTHOR

2924       Urs Fleisch <ufleisch at users.sourceforge.net>
2925           Software development
2926
2928       Copyright © 2018 Urs Fleisch
2929
2930       FDL
2931
2932

NOTES

2934        1. gnudb.org
2935           http://gnudb.org
2936
2937        2. TrackType.org
2938           http://tracktype.org
2939
2940        3. MusicBrainz
2941           http://musicbrainz.org
2942
2943        4. Discogs
2944           http://discogs.com
2945
2946        5. Amazon
2947           http://www.amazon.com
2948
2949        6. ID3 specification
2950           http://id3.org/id3v2.4.0-frames
2951
2952        7. SYLT Editor
2953           http://www.compuphase.com/software_sylteditor.htm
2954
2955        8. www.gnudb.org
2956           http://www.gnudb.org
2957
2958        9. freedb.org
2959           http://freedb.org
2960
2961       10. ID3 tag version 2.3.0
2962           http://id3.org/id3v2.3.0
2963
2964       11. ID3 tag version 2.4.0 - Main Structure
2965           http://id3.org/id3v2.4.0-structure
2966
2967       12. LyricWiki
2968           http://www.lyricwiki.org
2969
2970       13. Google
2971           http://www.google.com
2972
2973       14. id3lib
2974           http://id3lib.sourceforge.net
2975
2976       15. libogg
2977           http://xiph.org/ogg/
2978
2979       16. libvorbis, libvorbisfile
2980           http://xiph.org/vorbis/
2981
2982       17. libFLAC++ and libFLAC
2983           http://flac.sourceforge.net
2984
2985       18. TagLib
2986           http://taglib.github.io/
2987
2988       19. mp4v2
2989           http://code.google.com/p/mp4v2
2990
2991       20. Chromaprint
2992           http://acoustid.org/chromaprint
2993
2994       21. libav
2995           http://libav.org/
2996
2997       22. FDL
2998           http://www.gnu.org/licenses/licenses.html#FDL
2999
3000       23. GPL
3001           http://www.gnu.org/licenses/licenses.html#GPL
3002
3003       24. Qt
3004           http://qt-project.org/
3005
3006       25. KDE
3007           http://www.kde.org
3008
3009
3010
30113.7.0                             2018-12-23                           KID3(1)
Impressum