Skip to content
A Swift framework to edit ID3 tags on MP3 files
Branch: master
Clone or download
philiphardy Merge pull request #12 from chicio/master
Upgrade to Swift 4 + fixed errors + improved tests + id3v2.3 support
Latest commit 3ee405b Mar 20, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
ID3Edit.framework Updated ID3Edit.framework Jul 17, 2016
ID3EditTester/ID3EditTester Removed tester application. Implementing unit tests Jun 12, 2016
ID3EditTests Added support for id3v2.3 on writing of new tag Feb 19, 2018
.gitignore README added Jan 12, 2016



An easy to use Swift framework that edits and retrieves ID3 tag information.

Important Information:

There are two projects which perform the same thing. One is in Swift the other in Objective C. I recommend building the Objective C project and using that framework. (It will work for both Objective C and Swift projects.) In the future, this will be the only project I update!


Drag the framework into your Swift project. Make sure to add to your project's embedded binaries by going to Project Settings > General > Embedded Binaries

At the top of your Swift code:

import ID3Edit

To open a mp3 file for writing:

   // Open the file
   let mp3File = try MP3File(path: "/Users/Example/Music/example.mp3")
   // Use MP3File(data: data) data being an NSData object
   // to load an MP3 file from memory
   // NOTE: If you use the MP3File(data: NSData?) initializer make
   //       sure to set the path before calling writeTag() or an
   //       exception will be thrown

   // Get song information
   let artwork = mp3File.getArtwork()

   // Write song information
   mp3File.setTitle("The new song title")
   mp3File.setArtist("The new artist")
   mp3File.setAlbum("The new album")
   mp3File.setLyrics("Yeah Yeah new lyrics")

   if let newArt = NSImage(contentsOfFile: "/Users/Example/Pictures/example.png")
          mp3File.setArtwork(newArt, isPNG: true)
          print("The artwork referenced does not exist.")

   // Save the information to the mp3 file
   mp3File.writeTag() // or mp3.getMP3Data() returns the NSData
                      // of the mp3 file
catch ID3EditErrors.FileDoesNotExist
   print("The file does not exist.")
catch ID3EditErrors.NotAnMP3
   print("The file you attempted to open was not an mp3 file.")
catch {}

Instructions for Command Line Tools:

Drag the framework into your project. Make sure to add the path to the framework in Project Settings > Build Settings > Runpath Search Paths

You can’t perform that action at this time.