batch change track number, artist/s name, song name from track name with script?

Discussion in 'iPod' started by richard.mac, Dec 27, 2008.

  1. richard.mac macrumors 603


    Feb 2, 2007
    51.50024, -0.12662
    is there a way to batch change the track name in the format "track number - artist/s - song name" and fill out their respective correct fields with an AppleScript or Workflow or anything? i tried searching Doug's AppleScripts but cant find anything that would help me.

    e.g. 01 - Dizzee Rascal Feat. Calvin Harris And Chrome - Dance Wiv Me

    Name: Dance Wiv Me
    Artist: Dizzee Rascal Feat. Calvin Harris And Chrome
    Track Number: 1
  2. jkuff macrumors newbie


    Mar 3, 2009
    Applescript to batch rename tracks

    I had the same problem. After hunting around for various scripts, I finally bought a copy of Stern's book on iTunes hacks and found mostly what I was looking for.

    Below is my own customized script that does the batch renaming for files whose title tags are in the form "001 - Artist Name - Song Title" and splits the string and populates the appropriate tags for each song.

    To use this script, cut and paste text below to a text file and save it to a file "rename.sctpd" in your Library/iTunes/Scripts folder. Then highlight the tracks you want to auto-rename and invoke the script from the script menu.

    I hope this helps.

    (* batch renaming script for iTunes
    James Kuffner
    March 3, 2009

    Splits iTunes tracks titled as "001 - Artist Name - Song Title" into
    the respective track number, artist, and title fields
    property separator : " - "
    property my_title : "Split Delimited Title into Track, Artist, Title"

    tell application "iTunes"
    if selection is not {} then -- if tracks are selected...
    set sel to selection
    set numTracks to (length of sel)
    set s to "s"
    if numTracks is 1 then set s to ""
    display dialog "parse and split the title name text into artist field and track field." & return & return & (numTracks & " track" & s & " selected.") buttons {"Cancel", "Continue"} default button 2 with title my_title giving up after 30
    if gave up of result is true then return

    set oldfi to fixed indexing
    set fixed indexing to true

    repeat with aTrack in selection
    tell aTrack
    if name contains separator then
    set {track number, artist, name} to my text_to_list(name, separator)
    end if
    end tell
    end repeat

    set fixed indexing to oldfi
    display dialog "No tracks have been selected." buttons {"Cancel"} default button 1 with icon 0 giving up after 30
    end if -- no selection
    end tell

    on text_to_list(txt, delim)
    set saveD to AppleScript's text item delimiters
    set AppleScript's text item delimiters to {delim}
    set theList to every text item of txt
    on error errStr number errNum
    set AppleScript's text item delimiters to saveD
    error errStr number errNum
    end try
    set AppleScript's text item delimiters to saveD
    return (theList)
    end text_to_list
  3. jkuff macrumors newbie


    Mar 3, 2009
    script now broken after iTunes 8.1.1 update


    It appears that after Apple released the recent iTunes update (8.1.1) the script I posted above no longer works. (*sigh* - why does Apple do this?)

    If I get it working again, I will post the new version. But I thought I would warn those of you who have the latest iTunes and are having trouble with this script.

  4. JCastro macrumors 6502a

    Feb 12, 2008
    What is the difference in changing song info this way and going into iTunes and highlighting the tracks that you want to change and right clicking, get info? Then filling adding the info/album art you want. I have been doing it this way for years without any problem. I have moved my music between several different computers and the info always transfers over with the correct info and album art.

    I don't know much about script so that is why I am asking.
  5. jkuff macrumors newbie


    Mar 3, 2009

    The script is useful because you don't want to have to manually change hundreds (or in my case, thousands) of songs by hand. Believe me, after manually changing about 20 songs, you will rapidly succumb to exhaustion.

    Anyway, it turns out that the script still works fine if you run it directly from the Script Editor (not from within iTunes 8.1.1).

  6. GGJstudios macrumors Westmere


    May 16, 2008
  7. bspinheiro macrumors newbie


    Mar 14, 2018
    Thread is old, but might be helpful for someone.
    Regarding only file renaming based on the metadata information... i.e. "Name.m4a" to "01 - Name.m4a":


    for f in *.m4a; do for g in `mdls -name kMDItemAudioTrackNumber -raw "$f"`; mv "$f" "$g - $f" ; done;
  8. togruber macrumors member

    Jan 22, 2018

Share This Page