### Setup Dummy File Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Creates an empty file named 'example.id3' to be used for tag manipulation examples. ```bash $ rm -f example.id3 $ touch example.id3 $ ls -s example.id3 0 example.id3 ``` -------------------------------- ### Install eyeD3 from Source Archive Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/installation.md Install eyeD3 by downloading and extracting the source archive. This method involves unpacking the tarball and running the setup script, which may require root access. ```sh $ tar xzf eyeD3-X.Y.Z.tar.gz $ cd eyeD3-X.Y.Z # This may require root access $ python setup.py install ``` -------------------------------- ### Set up Virtual Environment and Install Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/contributing.md Create a virtual environment named 'eyed3' and install the local copy of eyeD3 in development mode using setup.py. ```bash mkvirtualenv eyed3 cd eyed3/ python setup.py develop ``` -------------------------------- ### Install libmagic binaries on Windows Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/installation.md On Windows systems, you need to install the libmagic binaries separately. This command installs the necessary package. ```sh $ pip install python-magic-bin ``` -------------------------------- ### Install Development Dependencies and Test Data Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/contributing.md Install all necessary dependencies for development and testing, including extra packages and test data. ```bash for reqs in $(ls requirements/*.txt); do pip install -U -r $reqs ; done make test-data ``` -------------------------------- ### Example NFO file output Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/nfo_plugin.md This is an example of the .nfo file content generated by the NFO plugin. It includes metadata about the album and its tracks. ```text Artist : Nine Inch Nails Album : Broken Released : 1992 Genre : Noise Source : Encoder : LAME3.95 Codec : mp3 Bitrate : ~167 K/s @ 44100 Hz, Joint stereo Tag : ID3 v2.3 Ripped By: Track Listing ------------- 1. Pinion (01:02) 2. Wish (03:46) 3. Last (04:44) 4. Help Me I am in Hell (01:56) 5. Happiness in Slavery (05:21) 6. Gave Up (04:08) 7. Physical (You're So) (05:29) 8. Suck (05:07) Total play time : 31:33 Total size : 37.74 MB ============================================================================== .NFO file created with eyeD3 0.7.0 on Tue Oct 23 23:44:27 2012 For more information about eyeD3 go to http://eyeD3.nicfit.net/ ============================================================================== ``` -------------------------------- ### eyeD3 Configuration File Example Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/cli.md A sample INI configuration file for eyeD3, demonstrating how to set default plugins and plugin paths. ```ini # eyeD3 config file. # default: ~/.eyeD3/config.ini # overridde using -c/--config [default] # Default plugin to use. plugin = # General options to always use. These can be plugin specific but SHOULD NOT be. # Any -C/--config and -P/--plugin options are ignored. options = #options = --pdb # Extra directories to load plugins. Separated by ':' plugin_path = ~/.eyeD3 # vim: set filetype=dosini: ``` -------------------------------- ### Install eyeD3 from requirements file Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/installation.md Install development or testing dependencies by using pip with a requirements file. This is useful for contributing to the project or running tests. ```sh $ pip install -r requirements/test.txt ``` ```sh $ pip install -r requirements/dev.txt ``` -------------------------------- ### Install eyeD3 with Display Plugin Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/installation.md Install eyeD3 with the optional display plugin for enhanced functionality. This command installs the core package along with the specified plugin. ```sh $ pip install eyeD3[display-plugin] ``` -------------------------------- ### Example Plugin Documentation Template Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/cli.md This is a template for documenting a new eyeD3 plugin. Replace the parenthesis with curly brackets when implementing. ```default Example Plugin ============== .. (((cog .. cog.out(cog_pluginHelp("example-plugin")) .. ))) .. (((end))) ``` -------------------------------- ### Install eyeD3 using pip Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/installation.md Use this command to install the eyeD3 package from PyPI. Ensure you have pip installed and accessible in your PATH. ```sh $ pip install eyeD3 ``` -------------------------------- ### Set Artist and Title Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Sets the artist and title attributes for an audio file. This is a common starting point for tagging. ```bash # This is a placeholder for the actual command, as the source did not provide the code. # Example: eyeD3 --artist "Artist Name" --title "Song Title" example.id3 ``` -------------------------------- ### Generate NFO file for a directory Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/nfo_plugin.md Use the NFO plugin with the -P option to generate an NFO file for a specified directory. This example shows how to create an NFO for a Nine Inch Nails album. ```bash $ eyeD3 -P nfo ~/music/Nine\ Inch\ Nails/1992\ -\ Broken/ ``` -------------------------------- ### Custom Echo Plugin for eyeD3 Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/cli.md An example of a custom eyeD3 plugin that inherits from Plugin and prints each filename and its mime-type. ```python import eyed3 from eyed3.plugins import Plugin from eyed3.utils import guessMimetype class EchoPlugin(eyed3.plugins.Plugin): NAMES = ["echo"] SUMMARY = u"Displays each filename and mime-type passed to the plugin" def handleFile(self, f): print("%s\t[ %s ]" % (f, guessMimetype(f))) ``` -------------------------------- ### Custom Echo2 Plugin using LoaderPlugin Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/cli.md An example of a custom eyeD3 plugin that inherits from LoaderPlugin to process audio files and display their details. ```python from eyed3.plugins import LoaderPlugin class Echo2Plugin(LoaderPlugin): SUMMARY = u"Displays details about audio files" NAMES = ["echo2"] def handleFile(self, f): super(Echo2Plugin, self).handleFile(f) if not self.audio_file: print("%s: Unsupported type" % f) else: print("Audio info: %s Metadata tag: %s " % ("yes" if self.audio_file.info else "no", "yes" if self.audio_file.tag else "no")) ``` -------------------------------- ### Display LAME Header Information Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/lameinfo_plugin.md Use the lameinfo plugin with the eyeD3 CLI to display the LAME (Xing) header information for a VBR MP3 file. This example shows how to extract details like encoder version, VBR method, and other encoding parameters. ```bash $ eyeD3 -P lameinfo tests/data/notag-vbr.mp3 /home/trshirk/devel/eyeD3/tests/data/notag-vbr.mp3 [ 5.98 MB ] ------------------------------------------------------------------------------- Encoder Version : LAME3.91 LAME Tag Revision : 0 VBR Method : Variable Bitrate method2 (mtrh) Lowpass Filter : 19500 Encoding Flags : --nspsytune ATH Type : 3 Bitrate (Minimum) : 0 Encoder Delay : 576 samples Encoder Padding : 1848 samples Noise Shaping : 1 Stereo Mode : Joint Unwise Settings : False Sample Frequency : 44.1 kHz MP3 Gain : 0 (+0.0 dB) Preset : Unknown Surround Info : None Music Length : 5.98 MB Music CRC-16 : 675C LAME Tag CRC-16 : 5B62 ``` -------------------------------- ### Run eyeD3 from Source Archive Directory Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/installation.md Execute eyeD3 directly from its extracted source directory without a formal installation. This involves building the package and setting environment variables for Python path and executable path. ```sh $ tar xzf eyeD3-X.Y.Z.tar.gz $ cd eyeD3-X.Y.Z $ python setup.py build $ export PYTHONPATH=`pwd`/build/lib $ export PATH=${PATH}:`pwd`/bin ``` -------------------------------- ### Enable iTunes Podcast Plugin Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Run this command to view help for the iTunes podcast plugin, which supports PCST, WFED, TKWD, TDES, and TGID frames. ```bash eyeD3 -P itunes-podcast --help ``` -------------------------------- ### List All Genres Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Use the --list-genres option to display all available genres recognized by the tool. ```bash --list-genres ``` -------------------------------- ### JSON Plugin Help Output Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/json_plugin.md This snippet shows the output of the json plugin's help command, detailing available options. ```text -c, --compact Output in compact form, wound new lines or indentation. -s, --sort Output JSON in sorted by key. ``` -------------------------------- ### pymod Plugin Help Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/pymod_plugin.md This snippet shows the help output for the pymod plugin, detailing its purpose and usage. ```text Imports a Python module file and calls its functions for the the various plugin events. Names pymod Description If no module if provided a file named eyeD3mod.py in the current working directory is imported. If any of the following methods exist they still be invoked: def audioFile(audio_file): : """Invoked for every audio file that is encountered. The `audio_file` is of type `eyed3.core.AudioFile`; currently this is the concrete type `eyed3.mp3.Mp3AudioFile`.""" pass def audioDir(d, audio_files, images): : """This function is invoked for any directory (`d`) that contains audio (`audio_files`) or image (`images`) media.""" pass def done(): : """This method is invoke before successful exit.""" pass Options ```text -m MODULE, --module MODULE The Python module module to invoke. The default is ./eyeD3mod.py ``` ``` -------------------------------- ### Remove All ID3 Tags Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Removes all ID3 v1.x and v2.x tags from a specified file. Use this to start with a clean slate or remove corrupted tags. ```bash $ eyeD3 --remove-all example.id3 ``` -------------------------------- ### Run Linting and Tests Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/contributing.md Check your changes by running flake8 for linting and the test suite. Optionally, run tests against all supported Python versions using tox. ```bash make lint make test make test-all # Optional, requires multiple versions of Python ``` -------------------------------- ### Support for iTunes Podcast Frames Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Includes support for PCST and WFED frames, as well as Apple 'extensions' frames TKWD, TDES, and TGID. ```python PCST ``` ```python WFED ``` ```python TKWD ``` ```python TDES ``` ```python TGID ``` -------------------------------- ### List Available Genres using CLI Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/genres_plugin.md Use the 'eyeD3 --plugin=genres' command to display a comprehensive list of all available genre codes and their corresponding names. ```bash $ eyeD3 --plugin=genres 0: Blues 96: Big Band 1: Classic Rock 97: Chorus 2: Country 98: Easy Listening 3: Dance 99: Acoustic 4: Disco 100: Humour 5: Funk 101: Speech 6: Grunge 102: Chanson 7: Hip-Hop 103: Opera 8: Jazz 104: Chamber Music 9: Metal 105: Sonata 10: New Age 106: Symphony 11: Oldies 107: Booty Bass 12: Other 108: Primus 13: Pop 109: Porn Groove 14: R&B 110: Satire 15: Rap 111: Slow Jam 16: Reggae 112: Club 17: Rock 113: Tango 18: Techno 114: Samba 19: Industrial 115: Folklore 20: Alternative 116: Ballad 21: Ska 117: Power Ballad 22: Death Metal 118: Rhythmic Soul 23: Pranks 119: Freestyle 24: Soundtrack 120: Duet 25: Euro-Techno 121: Punk Rock 26: Ambient 122: Drum Solo 27: Trip-Hop 123: A Cappella 28: Vocal 124: Euro-House 29: Jazz+Funk 125: Dance Hall 30: Fusion 126: Goa 31: Trance 127: Drum & Bass 32: Classical 128: Club-House 33: Instrumental 129: Hardcore 34: Acid 130: Terror 35: House 131: Indie 36: Game 132: BritPop 37: Sound Clip 133: Negerpunk 38: Gospel 134: Polsk Punk 39: Noise 135: Beat 40: AlternRock 136: Christian Gangsta Rap 41: Bass 137: Heavy Metal 42: Soul 138: Black Metal 43: Punk 139: Crossover 44: Space 140: Contemporary Christian 45: Meditative 141: Christian Rock 46: Instrumental Pop 142: Merengue 47: Instrumental Rock 143: Salsa 48: Ethnic 144: Thrash Metal 49: Gothic 145: Anime 50: Darkwave 146: JPop 51: Techno-Industrial 147: Synthpop 52: Electronic 148: Abstract 53: Pop-Folk 149: Art Rock 54: Eurodance 150: Baroque 55: Dream 151: Bhangra 56: Southern Rock 152: Big Beat 57: Comedy 153: Breakbeat 58: Cult 154: Chillout 59: Gangsta Rap 155: Downtempo 60: Top 40 156: Dub 61: Christian Rap 157: EBM 62: Pop / Funk 158: Eclectic 63: Jungle 159: Electro 64: Native American 160: Electroclash 65: Cabaret 161: Emo 66: New Wave 162: Experimental 67: Psychedelic 163: Garage 68: Rave 164: Global 69: Showtunes 165: IDM 70: Trailer 166: Illbient 71: Lo-Fi 167: Industro-Goth 72: Tribal 168: Jam Band 73: Acid Punk 169: Krautrock 74: Acid Jazz 170: Leftfield 75: Polka 171: Lounge 76: Retro 172: Math Rock 77: Musical 173: New Romantic 78: Rock & Roll 174: Nu-Breakz 79: Hard Rock 175: Post-Punk 80: Folk 176: Post-Rock 81: Folk-Rock 177: Psytrance 82: National Folk 178: Shoegaze 83: Swing 179: Space Rock 84: Fast Fusion 180: Trop Rock 85: Bebob 181: World Music 86: Latin 182: Neoclassical 87: Revival 183: Audiobook 88: Celtic 184: Audio Theatre ``` -------------------------------- ### eyeD3 CLI Help Usage Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/cli.md Displays the help message for the eyeD3 command line tool, outlining available arguments and their descriptions. ```sh $ eyeD3 --help usage: eyeD3 [-h] [--version] [--exclude PATTERN] [--plugins] [--plugin NAME] [PATH [PATH ...]] positional arguments: PATH Files or directory paths optional arguments: -h, --help show this help message and exit --version Display version information and exit --exclude PATTERN A regular expression for path exclusion. May be specified multiple times. --plugins List all available plugins --plugin NAME Specify which plugin to use. ``` -------------------------------- ### Configure eyeD3 with Config Files Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst The eyeD3 command-line tool supports configuration files to store common options, simplifying repeated usage. ```bash config files ``` -------------------------------- ### Set Album, Year, and Genre Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Adds album name, release year, and genre to an audio file using short option flags. Demonstrates using recognized genre IDs. ```bash # This is a placeholder for the actual command, as the source did not provide the code. # Example: eyeD3 -A "Album Name" -Y 2023 -G "Rock" example.id3 ``` -------------------------------- ### View MP3 Metadata via Command Line Source: https://github.com/nicfit/eyed3/blob/0.9.x/README.rst Display the ID3 tag information for an MP3 file using the eyeD3 command-line tool without any options. ```bash $ eyeD3 song.mp3 song.mp3 [ 3.06 MB ] ------------------------------------------------------------------------- ID3 v2.4: title: Hollow artist: Integrity album: Humanity Is The Devil album artist: None track: 2 ------------------------------------------------------------------------- ``` -------------------------------- ### View MP3 Metadata via Command Line Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/index.md Display the ID3 tag information for an MP3 file using the eyeD3 command-line tool without any options. ```bash $ eyeD3 song.mp3 ``` -------------------------------- ### Mime-types Plugin Options Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/mimetypes_plugin.md Lists the command-line options available for the Mime-types plugin. These options control how the plugin processes and displays file status information. ```text --status Print dot status. --parse-files Parse each file. --hide-notfound ``` -------------------------------- ### Fixup Plugin Help Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/fixup_plugin.md Displays help information for the fixup plugin. This is typically generated by a cog command. ```text fixup - Music directory fixer Performs various checks and fixes to directories of audio files. Names fixup Description Operates on directories at a time, fixing each as a unit (album, compilation, live set, etc.). All of these should have common dates, for example but other characteristics may vary. The --type should be used whenever possible, `lp` is the default. The following test and fixes always apply: 1. Every file will be given an ID3 tag if one is missing. 2. Set ID3 v2.4. 3. Set a consistent album name for all files in the directory. 4. Set a consistent artist name for all files, unless the type is `various` in which case the artist may vary (but must exist). 5. Ensure each file has a title. 6. Ensure each file has a track # and track total. 7. Ensure all files have a release and original release date, unless the type is `live` in which case the recording date is set. 8. All ID3 frames of the following types are removed: USER, PRIV 9. All ID3 files have TLEN (track length in ms) set (or updated). 10. The album/dir type is set in the tag. Types of `lp` and `various` do not have this field set since the latter is the default and the former can be determined during sync. In ID3 terms the value is in TXXX (description: `eyeD3#album_type`). 11. Files are renamed as follows: - Type `various`: ${track:num} - ${artist} - ${title} - Type `single`: ${artist} - ${title} - All other types: ${artist} - ${track:num} - ${title} - A rename template can be supplied in –file-rename-pattern 12. Directories are renamed as follows: - Type `live`: ${best_date:prefer_recording} - ${album} - All other types: ${best_date:prefer_release} - ${album} - A rename template can be supplied in –dir-rename-pattern Album types: > - `lp`: A traditinal “album” of songs from a single artist. > No extra info is written to the tag since this is the default. > - `ep`: A short collection of songs from a single artist. The string ‘ep’ > is written to the tag’s `eyeD3#album_type` field. > - `various`: A collection of songs from different artists. The string > ‘various’ is written to the tag’s `eyeD3#album_type` field. > - `live`: A collection of live recordings from a single artist. The string > ‘live’ is written to the tag’s `eyeD3#album_type` field. > - `compilation`: A collection of songs from various recordings by a single > artist. The string ‘compilation’ is written to the tag’s > `eyeD3#album_type` field. Compilation dates, unlike other types, may > differ. > - `demo`: A demo recording by a single artist. The string ‘demo’ is > written to the tag’s `eyeD3#album_type` field. > - `single`: A track that should no be associated with an album (even if > it has album metadata). The string ‘single’ is written to the tag’s > `eyeD3#album_type` field. Options ```text --type {lp,ep,compilation,live,various,demo,single} How to treat each directory. The default is 'lp', although you may be prompted for an alternate choice if the files look like another type. --fix-case Fix casing on each string field by capitalizing each word. -n, --dry-run Only print the operations that would take place, but do not execute them. --no-prompt Exit if prompted. --dotted-dates Separate date with '.' instead of '-' when naming directories. --file-rename-pattern FILE_RENAME_PATTERN Rename file (the extension is not affected) based on data in the tag using substitution variables: $album, $album_artist, $artist, $best_date, $best_date:prefer_recording, $best_date:prefer_recording:year, $best_date:prefer_release, $best_date:prefer_release:year, $best_date:year, $disc:num, $disc:total, $file, $file:ext, $original_release_date, $original_release_date:year, $recording_date, $recording_date:year, $release_date, $release_date:year, $title, $track:num, $track:total --dir-rename-pattern DIR_RENAME_PATTERN Rename directory based on data in the tag using substitution variables: $album, $album_artist, $artist, $best_date, $best_date:prefer_recording, $best_date:prefer_recording:year, $best_date:prefer_release, $best_date:prefer_release:year, $best_date:year, $disc:num, $disc:total, $file, $file:ext, $original_release_date, $original_release_date:year, $recording_date, $recording_date:year, $release_date, $release_date:year, $title, $track:num, $track:total --no-dir-rename Do not rename the directory. ``` ``` -------------------------------- ### Show All Tracks in NFO Output Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst The --nfo output option can be configured to show all tracks within the NFO file generation. ```bash --nfo ``` -------------------------------- ### Art Plugin Help Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/art_plugin.md Displays help information for the art plugin. This is typically used to show available commands and options. ```text -F, --update-files Write art files from tag images. -T, --update-tags Write tag image from art files. -D, --download Attempt to download album art if missing. -v, --verbose Show detailed information for all art found. ``` -------------------------------- ### Commit and Push Changes Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/contributing.md Stage all changes, commit them with a descriptive message, and push the branch to your GitHub repository. ```bash git add . git commit -m "Your detailed description of your changes." git push origin name-of-your-bugfix-or-feature ``` -------------------------------- ### Set MP3 Metadata via Command Line Source: https://github.com/nicfit/eyed3/blob/0.9.x/README.rst Use the eyeD3 command-line tool to set artist, album, title, and track number for an MP3 file. This is the default plugin behavior. ```bash $ eyeD3 -a Integrity -A "Humanity Is The Devil" -t "Hollow" -n 2 song.mp3 ``` -------------------------------- ### Convert ID3 Tag Versions Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Demonstrates converting audio tags between ID3 v2.4, v2.3, and v1.1. Note that conversion to v1.1 can result in data loss for advanced fields. ```bash # Convert the current v2.4 frame to v2.3 $ eyeD3 --to-v2.3 example.id3 -Q /home/trshirk/devel/eyeD3/example.id3 [ 0.00 Bytes ] ------------------------------------------------------------------------------- ID3 v2.4: 0 frames Writing ID3 version v2.3 ------------------------------------------------------------------------------- # Convert back $ eyeD3 --to-v2.4 example.id3 -Q /home/trshirk/devel/eyeD3/example.id3 [ 266.00 Bytes ] ------------------------------------------------------------------------------- ID3 v2.3: 0 frames Writing ID3 version v2.4 ------------------------------------------------------------------------------- # Convert to v1, this will lose all the more advanced data members ID3 v2 offers $ eyeD3 --to-v1.1 example.id3 -Q /home/trshirk/devel/eyeD3/example.id3 [ 266.00 Bytes ] ------------------------------------------------------------------------------- ID3 v2.4: 0 frames Writing ID3 version v1.1 ------------------------------------------------------------------------------- ``` -------------------------------- ### Use System Text Encoding for Lyrics Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst The classic plugin now uses the system's text encoding (locale) when converting lyrics files to Unicode. ```python Unicode ``` -------------------------------- ### Create a Feature Branch Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/contributing.md Create a new branch for your local bug fixes or feature development. ```bash git checkout -b name-of-your-bugfix-or-feature ``` -------------------------------- ### Clone the eyeD3 Repository Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/contributing.md Clone your forked repository of eyeD3 locally to begin development. ```bash git clone git@github.com:your_name_here/eyeD3.git ``` -------------------------------- ### Handle ID3 Chapters and Table-of-Contents Frames Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Support for ID3 chapters (CHAP) and table-of-contents (CTOC) frames is included. ```python CHAP ``` ```python CTOC ``` -------------------------------- ### Clone the eyeD3 Repository Source: https://github.com/nicfit/eyed3/blob/0.9.x/CONTRIBUTING.rst Clone your forked eyeD3 repository to your local machine to begin development. ```bash $ git clone git@github.com:your_name_here/eyeD3.git ``` -------------------------------- ### Set Artist for Specific ID3 Version Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Demonstrates setting the artist tag for either the ID3 v1 tag ('-1') or the ID3 v2 tag ('-2') independently. This allows for granular control when multiple tag versions are present. ```bash # Set an artist value in the ID3 v1 tag $ eyeD3 -1 example.id3 -a id3v1 /home/trshirk/devel/eyeD3/example.id3 [ 394.00 Bytes ] ------------------------------------------------------------------------------- Setting artist: id3v1 ID3 v1.0: title: artist: id3v1 album: track: genre: Other (id 12) Writing ID3 version v1.0 ------------------------------------------------------------------------------- # The file now has a v1 and v2 tag, change the v2 artist $ eyeD3 -2 example.id3 -a id3v2 /home/trshirk/devel/eyeD3/example.id3 [ 394.00 Bytes ] ------------------------------------------------------------------------------- Setting artist: id3v2 ID3 v2.4: title: artist: id3v2 album: track: Writing ID3 version v2.4 ------------------------------------------------------------------------------- ``` -------------------------------- ### Add and Remove iTunes Podcast Tags Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/itunes_plugin.md Demonstrates adding and removing podcast frames from an audio file using the eyeD3 command-line tool with the itunes-podcast plugin. Use --add to enable podcast recognition and --remove to disable it. ```bash $ eyeD3 -P itunes-podcast example.id3 /home/trshirk/devel/eyeD3/example.id3 iTunes podcast? :-( $ eyeD3 -P itunes-podcast example.id3 --add /home/trshirk/devel/eyeD3/example.id3 iTunes podcast? :-( Adding... iTunes podcast? :-) $ eyeD3 -P itunes-podcast example.id3 --remove /home/trshirk/devel/eyeD3/example.id3 iTunes podcast? :-) Removing... iTunes podcast? :-( ``` -------------------------------- ### Set Encoding and Convert Version Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Use --set-encoding along with a version conversion argument to apply a new encoding to the tag during version conversion. ```bash --set-encoding ``` -------------------------------- ### Support for URL Frames Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Supports URL frames, including W??? and WXXX frame types. ```python W??? ``` ```python WXXX ``` -------------------------------- ### XEP-118 Plugin Help Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/xep118_plugin.md Outputs all tags in XEP-118 XML format. Refer to http://xmpp.org/extensions/xep-0118.html for the specification. ```text --no-pretty-print Output without new lines or indentation. ``` -------------------------------- ### List ID3 Genres in Single Column Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/genres_plugin.md To display each genre on a new line, use the --single-column option with the genres command. This formats the output for easier readability. ```text genres --single-column ``` -------------------------------- ### Write iTunes Accepted Genres Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Use the --itunes option to ensure that only genres accepted by iTunes are written to the tag. ```bash --itunes ``` -------------------------------- ### Convert ID3 v2.4 Tag to v1.1 Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Copies all values from the default v2.4 tag to a v1.1 tag. Useful for ensuring compatibility with older MP3 players. ```bash $ eyeD3 -2 --to-v1.1 example.id3 ``` -------------------------------- ### Specify Python Module for Plugin Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/pymod_plugin.md Command-line option to specify which Python module eyeD3 should load as a plugin. If not provided, it defaults to './eyeD3mod.py'. ```text -m MODULE, --module MODULE The Python module module to invoke. The default is ./eyeD3mod.py ``` -------------------------------- ### Show Details for File Violations Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/stats_plugin.md Use the --verbose flag to display detailed information for each file that has rule violations when computing statistics. ```text --verbose Show details for each file with rule violations. ``` -------------------------------- ### Set MP3 Metadata using Python Library Source: https://github.com/nicfit/eyed3/blob/0.9.x/README.rst Programmatically set artist, album, album artist, title, and track number for an MP3 file using the eyed3 Python library. Ensure to save the changes. ```python import eyed3 audiofile = eyed3.load("song.mp3") audiofile.tag.artist = "Token Entry" audiofile.tag.album = "Free For All Comp LP" audiofile.tag.album_artist = "Various Artists" audiofile.tag.title = "The Edge" audiofile.tag.track_num = 3 audiofile.tag.save() ``` -------------------------------- ### Display Full ID3 Genre List Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/genres_plugin.md Use the 'genres' command to display the complete list of standard ID3 genres. This command is part of the eyed3 plugins. ```text genres ``` -------------------------------- ### Fix Typo in Sync/Unsync Data Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Corrected a typo related to 'sysnc/unsync' data. ```python sysnc/unsync ``` -------------------------------- ### Handle Malformed UFID Frames Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst The library no longer crashes when encountering malformed (invalid) UFID frames. ```python UFID ``` -------------------------------- ### Set Non-Standard Genre Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Allows setting a custom genre value that may not be part of the standard ID3 genre list. The output will show the custom value. ```bash # This is a placeholder for the actual command, as the source did not provide the code. # Example: eyeD3 --genre "My Custom Genre" example.id3 ``` -------------------------------- ### Convert ID3 v2.3 and v2.4 Date Frames Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Includes fixes for conversions between ID3 v2.3 and v2.4 date frames, improving general conversion accuracy. ```python v2.3 ``` ```python v2.4 ``` -------------------------------- ### Fix Corruption of First MP3 Header Source: https://github.com/nicfit/eyed3/blob/0.9.x/HISTORY.rst Corrected a critical bug that caused corruption of the first MP3 header when writing to files. ```python MP3 header ``` -------------------------------- ### Clone eyeD3 Source Code using Git Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/installation.md Clone the eyeD3 source code repository from GitHub to your local machine. This is the recommended method for development. ```sh $ git clone https://github.com/nicfit/eyeD3.git ``` -------------------------------- ### Convert ID3 v1.0 Tag to v2.3 Source: https://github.com/nicfit/eyed3/blob/0.9.x/docs/plugins/classic_plugin.md Converts all values from an ID3 v1.0 tag to an ID3 v2.3 tag. This is useful for adding richer metadata to older tags. ```bash $ eyeD3 -1 --to-v2.3 example.id3 ```