eyeD3 - displays and manipulates id3-tags on mp3 files
eyeD3 [options] PATH [PATH...]
eyeD3 Manipulates ID3 tags in mp3 files and is able to read/write and convert between ID3 v1.0, v1.1, v2.3 and v2.4 tags. High-level access is provided to most frames, including APIC (i.e., images) frames. The eyeD3 command line interface is based on plugins that operates on files. To list the available plugins use the --plugins option and to select a plugin pass its name using --plugin=NAME. The PATH argument(s) along with optional usage of --exclude are used to tell eyeD3 what files or directories to process. Directories are searched recursively and every file encountered is passed to the selected plugin until no more files are found.
-h, --help Show a brief help string and exit. --version Display version information and exit --exclude=PATTERN A regular expression for path exclusion. May be specified multiple times. -L, --plugins List all available plugins. -P NAME, --plugin=NAME Specify which plugin to use. The default is classic' -C FILE, --config=FILE Supply a configuration file. The default is ~/.eyeD3/config.ini', although even that is optional. --no-config Do not load the default user config ~/.eyeD3/config.ini'. The -c/--config options are still honored if present. --backup Plugins should honor this option such that a backup is made of any file modified. The backup is made in same directory with a .orig' extension added. -Q, --quiet A hint to plugins to output less. --fs-encoding=ENCODING Use the specified file system encoding for filenames. Default is detected from the current locale, overriding is useful for example when reading from mounted file systems. --no-color Suppress color codes in console output. This will happen automatically if the output is not a TTY (e.g. when redirecting to a file)
-l LEVEL[:LOGGER], --log-level=LEVEL[:LOGGER] Set a log level. This option may be specified multiple times. If a logger name is specified than the level applies only to that logger, otherwise the level is set on the top-level logger. Acceptable levels are debug', verbose', info', warning', error', critical'. --profiler Run using python profiler. --debugger Drop into python debugger when errors occur.
This plugin is the classic eyeD3 interface for viewing and editing tags. All PATH arguments are parsed and displayed. Directory paths are searched recursively. Any editing options (--artist, --title) are applied to each file read. All date options (--release-year excepted) follow ISO 8601 format. This is yyyy-mm-ddThh:mm:ss'. The year is required, and each component thereafter is optional. For example, "2012-03" is valid, "2012--12" is not. -a STRING, --artist=STRING Set the artist name. -A STRING, --album=STRING Set the album name. -b STRING, --album-artist=STRING Set the album artist name. "Various Artists", for example. Another example is collaborations when the track artist might be "Eminem featuring Proof" the album artist would be "Eminem". -t STRING, --title=STRING Set the track title. -n NUM, --track=NUM Set the track number. Use 0 to clear. -N NUM, --track-total=NUM Set total number of tracks. Use 0 to clear. --track-offset=N Increment/decrement the track number by [-]N. This option is applied after --track=N is set. -d NUM, --disc-num=NUM Set the disc number. Use 0 to clear. -G GENRE, --genre=GENRE Set the genre. If the argument is a standard ID3 genre name or number both will be set. Otherwise, any string can be used. Use --plugin=genres for a list of standard ID3 genre names/ids. -Y YEAR, --release-year=YEAR Set the year the track was released. Use the date options for more precise values or dates other than release. -c STRING, --comment=STRING Set a comment. In ID3 tags this is the comment with an empty description. See --add-comment to add multiple comment frames. --rename=PATTERN Rename file (the extension is not affected) based on data in the tag using substitution variables: $album, $album_artist, $artist, $best_date, $best_date:prefer_recording, $best_date:prefer_recording:year, $best_date:prefer_release, $best_date:prefer_release:year, $best_date:year, $disc:num, $disc:total, $file, $file:ext, $original_release_date, $original_release_date:year, $recording_date, $recording_date:year, $release_date, $release_date:year, $title, $track:num, $track:total. ID3 options -1, --v1 Only read and write ID3 v1.x tags. By default, v1.x tags are only read or written if there is not a v2 tag in the file. -2, --v2 Only read/write ID3 v2.x tags. This is the default unless the file only contains a v1 tag. --to-v1.1 Convert the file's tag to ID3 v1.1 (Or 1.0 if there is no track number). --to-v2.3 Convert the file's tag to ID3 v2.3. --to-v2.4 Convert the file's tag to ID3 v2.4 --release-date=DATE Set the date the track/album was released --orig-release-date=DATE Set the original date the track/album was released. --recording-date=DATE Set the date the track/album was recorded --encoding-date=DATE Set the date the file was encoded --tagging-date=DATE Set the date the file was tagged --publisher=STRING Set the publisher/label name --play-count=[+]N Set the number of times played counter. If the argument value begins with +' the tag's play count is incremented by N, otherwise the value is set to exactly N. --bpm=N Set the beats per minute value. --unique-file-id=OWNER_ID:ID Add a unique file ID frame. If the ID arg is empty the frame is removed. An OWNER_ID is required. The ID may be no more than 64 bytes. --add-comment=COMMENT[:DESCRIPTION[:LANG]] Add or replace a comment. There may be more than one comment in a tag, as long as the DESCRIPTION and LANG values are unique. The default DESCRIPTION is ' and the default language code is eng'. --remove-comment=DESCRIPTION[:LANG] Remove comment matching DESCRIPTION and LANG. The default language code is eng'. --remove-all-comments Remove all comments from the tag. --add-lyrics=LYRICS_FILE[:DESCRIPTION[:LANG]] Add or replace a lyrics. There may be more than one set of lyrics in a tag, as long as the DESCRIPTION and LANG values are unique. The default DESCRIPTION is '' and the default language code is 'eng'. --remove-lyrics=DESCRIPTION[:LANG] Remove lyrics matching DESCRIPTION and LANG. The default language code is 'eng'. --remove-all-lyrics Remove all lyrics from the tag. --text-frame=FID:TEXT Set the value of a text frame. To remove the frame, specify an empty value. For example, --text-frame="TDRC:" --user-text-frame=DESC:TEXT Set the value of a user text frame (i.e., TXXX). To remove the frame, specify an empty value. e.g., --user-text- frame="SomeDesc:" --user-url-frame=DESCRIPTION:URL Set the value of a user URL frame (i.e., WXXX). To remove the frame, specify an empty value. e.g., --user-url- frame="SomeDesc:" --add-image=IMG_PATH:TYPE[:DESCRIPTION] Add or replace an image. There may be more than one image in a tag, as long as the DESCRIPTION values are unique. The default DESCRIPTION is '. If PATH begins with http[s]://' then it is interpreted as a URL instead of a file containing image data. The TYPE must be one of the following: OTHER, ICON, OTHER_ICON, FRONT_COVER, BACK_COVER, LEAFLET, MEDIA, LEAD_ARTIST, ARTIST, CONDUCTOR, BAND, COMPOSER, LYRICIST, RECORDING_LOCATION, DURING_RECORDING, DURING_PERFORMANCE, VIDEO, BRIGHT_COLORED_FISH, ILLUSTRATION, BAND_LOGO, PUBLISHER_LOGO. --remove-image=DESCRIPTION Remove image matching DESCRIPTION. --remove-all-images Remove all images from the tag --write-images=DIR Causes all attached images (APIC frames) to be written to the specified directory. --add-object=OBJ_PATH:MIME-TYPE[:DESCRIPTION[:FILENAME]] Add or replace an object. There may be more than one object in a tag, as long as the DESCRIPTION values are unique. The default DESCRIPTION is '. --remove-object=DESCRIPTION Remove object matching DESCRIPTION. --remove-all-objects Remove all objects from the tag --add-popularity=EMAIL:RATING[:PLAY_COUNT] Adds a pupularity metric. There may be multiples popularity values, but each must have a unique email address component. The rating is a number between 0 (worst) and 255 (best). The play count is optional, and defaults to 0, since there is already a dedicated play count frame. --remove-popularity=EMAIL Removes the popularity frame with the specified email key. --remove-v1 Remove ID3 v1.x tag. --remove-v2 Remove ID3 v2.x tag. --remove-all Remove ID3 v1.x and v2.x tags. --remove-frame=FID Remove all frames with the given ID. This option may be specified multiple times. --max-padding=UM_BYTES Shrink file if tag padding (unused space) exceeds the given number of bytes. (Useful e.g. after removal of large cover art.) Default is 64 KiB, file will be rewritten with default padding (1 KiB) or max padding, whichever is smaller. --encoding=latin1|utf8|utf16|utf16-be Set the encoding that is used for all text frames. This option is only applied if the tag is updated as the result of an edit option (e.g. --artist, --title, etc.) or --force-update is specified. Misc options --force-update Rewrite the tag despite there being no edit options. --preserve-file-times When writing, do not update file modification times.
Execution of a plugin other than classic' is possible through the --plugin option. art This plugin manages art files and tags for albums, artists, etc... Options --update-files and --update-tags are mutually exclusive. --update-files Write art files from tag images. --update-tags Write tag image from art files. fixup Performs various checks and fixes to directories of audio files. Operates on directories at a time, fixing each as a unit (album, compilation, live set, etc.). All of these should have common dates, for example but other characteristics may vary. The --type should be used whenever possible, lp' is the default. The following tests and fixes always apply: 1. Every file will be given an ID3 tag if one is missing. 2. Set ID3 v2.4. 3. Set a consistent album name for all files in the directory. 4. Set a consistent artist name for all files, unless the type is various' in which case the artist may vary (but must exist). 5. Ensure each file has a title. 6. Ensure each file has a track # and track total. 7. Ensure all files have a release and original release date, unless the type is live' in which case the recording date is set. 8. All ID3 frames of the following types are removed: USER, PRIV 9. All ID3 files have TLEN (track length in ms) set (or updated). 10. The album/dir type is set in the tag. Types of lp' and various' do not have this field set since the latter is the default and the former can be determined during sync. In ID3 terms the value is in TXXX (description: eyeD3#album_type'). 11. Files are renamed as follows: * Type various': ${track:num} - ${artist} - ${title} * Type single': ${artist} - ${title} * All other types: ${artist} - ${track:num} - ${title} * A rename template can be supplied in --file-rename-pattern 12. Directories are renamed as follows: * Type live': ${best_date:prefer_recording} - ${album} * All other types: ${best_date:prefer_release} - ${album} * A rename template can be supplied in --dir-rename-pattern Album types * lp': A traditinal "album" of songs from a single artist. No extra info is written to the tag since this is the default. * ep': A short collection of songs from a single artist. The string "ep" is written to the tag's eyeD3#album_type' field. * various': A collection of songs from different artists. The string "various" is written to the tag's eyeD3#album_type' field. * live': A collection of live recordings from a single artist. The string "live" is written to the tag's eyeD3#album_type' field. * compilation': A collection of songs from various recordings by a single artist. The string "compilation'"is written to the tag's eyeD3#album_type' field. Compilation dates, unlike other types, may differ. * demo': A demo recording by a single artist. The string "demo" is written to the tag's eyeD3#album_type' field. * single': A track that should no be associated with an album (even if it has album metadata). The string "single" is written to the tag's eyeD3#album_type' field. -t TYPE, --type TYPE One of the album types. How to treat each directory. The default is "lp" although you may be prompted for an alternate choice if the files look like another type. --fix-case Fix casing on each string field by capitalizing each word. -n, --dry-run Only print the operations that would take place, but do not execute them. --no-prompt Exit if prompted. --dotted-dates Separate date with .' instead of -' when naming directories. --file-rename-pattern FILE_RENAME_PATTERN Rename file (the extension is not affected) based on data in the tag using substitution variables: $album, $album_artist, $artist, $best_date, $best_date:prefer_recording, $best_date:prefer_recording:year, $best_date:prefer_release, $best_date:prefer_release:year, $best_date:year, $disc:num, $disc:total, $file, $file:ext, $original_release_date, $original_release_date:year, $recording_date, $recording_date:year, $release_date, $release_date:year, $title, $track:num, $track:total --dir-rename-pattern DIR_RENAME_PATTERN Rename directory based on data in the tag using substitution variables. Available substitution are the same as in --file- rename-pattern genres Display the full list of standard ID3 genres. ID3 v1 defined a list of genres and mapped them to to numeric values so they can be stored as a single byte. It is recommended that these genres are used although most newer software (including eyeD3) does not care. itunes-podcast Adds (or removes) the tags necessary for Apple iTunes to identify the file as a podcast. --add Add the podcast frames. --remove Remove the podcast frames. lameinfo Outputs lame header (if one exists) for file. The lame' (or xing) header provides extra information about the mp3 that is useful to players and encoders but not officially part of the mp3 specification. Variable bit rate mp3s, for example, use this header. For more details see <http://gabriel.mp3-tech.org/mp3infotag.html>. xing' is an alias for this plugin. nfo Create NFO files for each directory scanned. Each directory scanned is treated as an album and a NFO (<http://en.wikipedia.org/wiki/.nfo>) file is written to standard out. NFO files are often found in music archives. stats Computes statistics for all audio files scanned. --verbose Show details for each file with rule violations. xep-118 Outputs all tags in XEP-118 XML format. See: <http://xmpp.org/extensions/xep-0118.html>
Command line options can be read from a configuration file using the -C/--config option. It expects a path to an Ini (<http://docs.python.org/2/library/configparser.html>) file contain sections with option values. For a sample config file see /usr/share/doc/eyeD3/examples/config.ini. If the file ${HOME}/.eyeD3/config.ini' exists it is loaded each time eyeD3 is run and the values take effect. This can be disabled with --no-config'.
http://eyed3.nicfit.net/
eyeD3 was written by Travis Shirk <travis@pobox.com>.
Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.
Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.
Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.
Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.
The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.
Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.
Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.
Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.