Here is a selection of 80+ Visual Basic scripts that I have written to be
used with iTunes for Windows.
The general method of use is to download a script (double-click or
right-click and use Download or Save As...) to a folder of your
choice, e.g. your Desktop, Downloads folder or create a folder at ...\iTunes\Scripts.
Select a playlist or highlight some tracks in
iTunes and then double-click on the script to execute it. If no specific tracks
are selected the script will try to work with all tracks in the current playlist
or sometimes the entire library.
Some scripts offer a choice of track by track confirmation of
changes or fully automatic processing of the selection. Many of the scripts can
optionally display a progress bar while running.
Please note that some older scripts may crash if they attempt to process "tracks" that are available in iCloud but not
on your computer. To avoid this either create a selection that excludes iCloud
items or use Edit > Preferences > Store and untick Show
iTunes in the Cloud purchases.
Download Link
|
Description |
|
AddComposerToName |
Prefix the value of
Composer to the Name
field for selected tracks or all tracks in the
current playlist. |
|
AddDisc-TrackNumbers |
Adds leading track (& where
appropriate disc) numbers to the filenames of
selected tracks, unless already present. Note
this modifies the filename only and track and
(optionally) disc numbers must be present in the
tags to start with. This script along with
AddTrackNumbers &
StripTrackNumbers
were written to replace features dropped in
iTunes 8.
(See
note #1 below) |
|
AddToPlays |
Adds to or subtracts from the
current play count of selected tracks or all tracks in the current playlist.
Use, for example, on a list of recently played
items to remove a batch of unwanted increments
to the play count. |
|
AddToTrackNumber |
Adds a value onto the track numbers of the selected tracks. Use, for example,
to add the track count from disc one onto each of the track numbers of disc two so that the
tracks are sequentially numbered across both discs.
Negative values can be used to undo an earlier
change. A new feature allows a second value to
be entered in the input to set
the total track count. This script is
particularly useful if you need to exceed a value of 999 in either
the track number or track count fields as such values cannot be entered in the
iTunes Get Info. dialog box.
N.b. At some point I hope to write an updated version to automatically sequence
or unsequence multiple discs. |
|
AddTrackNumbers |
Adds leading track numbers
(only) to the filenames of selected tracks,
unless already present.
(See note #1 below) |
|
AudiobookSortName |
Sets an alphabetically ordered
Sort Name for each selected
track or all tracks of the current playlist. Use
to work around the way that Apple devices order
audiobook tracks by track name instead of disc &
track number. See
Audiobooks on iPods for details. |
|
AutoSort |
Clears Sort Album, Sort Album Artist,
Sort Artist, Sort Composer, Sort Name,
and Sort Show fields which begin
A/An/The to restore the AutoSort feature of iTunes
for selected tracks or all tracks in the current
playlist. See also UnAutoSort below. |
|
ChangeCategory |
Sets the category value for
selected podcast tracks. |
|
CheckFileCase |
Compares iTunes records of file locations and, if necessary, corrects
capitalization in file & folder names to ensure a case-sensitive correspondence.
Assumes capitalization of artist & album names is consistent. |
|
CleanDeadApps |
Cleans any orphaned files from the Mobile Applications folder if the apps are no
longer in your iTunes library or exist in newer versions. |
|
CleanDeadArt |
Cleans any orphaned artwork and/or empty folders left behind after iTunes or
other media managers have reorganised your files. |
|
ClearAlbumAutoRating |
Clears/prevents Album AutoRating by setting album rating to 1%.
Use ResetAlbumAutoRating to restore
AutoRatings. |
|
ClearBookmarks |
Clears the Bookmark Position of selected tracks or all tracks in the current playlist. |
|
ClearLyrics |
Clears the Lyrics of selected tracks or all tracks in the current playlist. |
|
ClearSkipCount |
Clears the Skip Count & Skipped Date of selected tracks or all tracks in the current playlist. |
|
ClearSortName |
Clears the Sort Name of selected tracks or all tracks in the current playlist.
Can be used to reverse the actions of
AudiobookSortName. See
Audiobooks on iPods for details. |
|
ClearTrackAutoRating |
Clears/prevents Track AutoRating by setting track rating to 1%.
Use ResetTrackAutoRating to restore
AutoRatings. |
|
CombineStats |
Combines the play & skip counts, takes the highest rating and most recent played & skipped
dates of selected tracks or playlist between iTunes and a manually managed iPod/iOS
device. Will attempt to match tracks first on LibraryIDs and if that fails on
tracks with the same tag information. Related to SyncStats. |
|
ConsolidateByMoving |
Moves files to their new locations within the iTunes Media folder without creating copies.
The script is set up to use standard iTunes
naming rules, but can also be set to use full
length file & folder names or, if desired, could
be customised to rename files exactly as you
wish, e.g. move certain genres to their own
folders. You can also use this script to move
selected content to a media folder on a
different drive, e.g. to move movies or TV shows
to an external drive to free up space. If a file
to be copied already exists at the target
location the original will be left in place and
iTunes connected to the updated path. This
prevents errors when the same folder can be
reached via different links, mapped drives or
UNC paths. |
|
ConsolidateByMovingLong |
As
ConsolidateByMoving but can generate file &
folder names longer than iTunes 40 character
limit and has different character substitutions
for characters that cannot be used in file
paths. |
|
ConvertFormat |
Converts selected files or the current playlist to the format used in
Edit > Preferences > General > Import Settings.
The newly converted files will replace the
originals inheriting ratings, play counts,
playlist membership etc. and the original files
will be sent to the recycle bin.
Backup first and use with caution
as these actions are not easily reversed if you
make a mistake. If present any Folder.jpg images
in the source folders will be added to tracks
that didn't previously have art, target format
permitting. |
|
CopyAlbumToAlbumArtist |
Copies values from the Album field to the
AlbumArtist field
of selected tracks or all tracks in the current
playlist. |
|
CopyArtistToAlbumArtist |
Copies values from the Artist field to the
AlbumArtist field
of selected tracks or all tracks in the current
playlist. |
|
CopyNameToSortName |
Copies values from the Name field to the
SortName field
of selected tracks or all tracks in the current
playlist. |
|
CreateFolderArt |
Creates or updates Folder.jpg artwork images. If updating images then if at
least one track has art it will be embedded in any tracks from the same album
that are missing artwork or only have store downloaded art. |
|
CustomRenamer |
Similar to
ConsolidateByMovingLong but allows you to set your own pattern for
file and folder names using keywords in the same manner as
ExportToFolder. |
|
DeDuper |
This script can remove all but one of any duplicated files. Play and skip counts from the duplicate entries are
merged and the remaining entry is updated with the most recent played and
skipped dates. The best rating and user playlist membership is also preserved. Before running select the Music source in your library, then
press down SHIFT and use View > Show Exact Duplicate Items
to restrict the files that need to be processed to potential candidates. Select the
resulting list of files before running the script. The script makes five passes
over the data, first identifying any repeat entries in a playlist (playlist
duplicates), then next any multiple references to the same physical files
(logical duplicates),
the third pass identifies distinct files with the same metadata and file size
(physical duplicates) or the same file visible via two distinct paths
(pseudo-physical duplicates), the
fourth identifies files of different size with the same metadata (alternate
duplicates) and the fifth identifies missing files that are duplicates of tracks
that are still present in the library (missing duplicates).
As the script progresses ratings, play-counts, and playlist membership are
transferred from the entry that will be discarded to the one that will be kept.
A final pass automatically removes all duplicates or optionally removes selected files from the
different classes of duplicates with the physically
duplicated files being placed
in the Recycle Bin just in case you find you want to restore them later.
For more details see
this thread
at Apple Support Communities.
WARNING Extreme caution should be
used with this script if your media is on Network Attached Storage. The current
version should cope properly with pseudo-physical dupes but there is no recycle
bin to restore files from if anything is deleted in error. Recovery of deleted files from NAS is non-trivial.
Please
backup your entire library
before using this script so that files could be replaced if necessary.
N.B. The file recycling function in this script will need tweaking for
non-English versions of Windows. Currently support has been added for Dutch.
Contact me via email or by posting to
the thread
for assistance.
When dealing with duplicates of different size DeDuper
will preserve the largest as it is likely to be the best quality. There are
options that can be adjusted if you want to remove all but the smallest file or
prefer one format over another. |
|
DetailFromPath |
Pulls a detail from the file
path, currently the first word separated by a
space, comma or dash from the rest of the file
name, and applies it to selected fields,
currently Album Artist, Artist and Composer.
Niche script written for this thread:
Keeping MP3 files in alpha order.
Could be adapted as required. |
|
DifferentArtistAlbumArtist |
Compares Artist and Album
Artist for non-compilation tracks. Any found
will be added to a playlist called FixArtist.
Use to ensure all tracks from the same album
have the same artist as different artists can
cause albums to break up on older iPods. See
One album, too many covers
for details.
|
|
Duplicates |
For iTunes 11.0.0 only
Search selected tracks or the
entire library for duplicate tracks (same song
name) and if found add to a playlist called
Duplicates. Unlike
ExactDuplicates
this is rarely a useful subsection of the
library, and becomes less so with larger
libraries. With my library this list currently
matches almost a third of my library whereas
ExactDuplicates lists the 78 exact duplicates
that I've deliberately introduced for test
purposes.
Replaces the feature that was missing from iTunes 11.0.0 (but
very slow in comparison). Upgrade to iTunes
11.0.1 or later in preference. |
|
DuplicateSong&Artist |
Search selected tracks or the
entire library for tracks with the same song
name & artist and if found add to a playlist called
Duplicate Song & Artist.
This is a preliminary proof of concept for a
script designed to make sure a regular playlist
has only one copy of each song (defined as same
song name & artist so different covers, or
different songs with the same name, can still
appear). In contrast to
Duplicates this script matches about one
sixth of my library. |
|
EmbedData |
Attempts to embed data that is
in the iTunes database but missing from the tag
when viewed in another media player or tag
editor. The published version can force
update the fields: Album, Album Artist, Artist,
Comment, Composer, Disc No., Genre, Grouping,
Name, Track No., &
Year. Edit the Fix<FieldName> assignments to
update only fields that need changing. Could be
extended to work
with other fields as required. If the tracks in
question are not tagged at all then select them
in the songs view, right-click, and use Convert
ID3 Tags... > v2.3 instead. |
|
EmbedFolderArt |
Embeds the largest image (by
area) stored in the same folder as each
processed track. Do not use if tracks from
different albums may be stored in the same
folder. Any "store downloaded" artwork is saved
as iTunesArt in the same folder
as the song and may be subsequently embedded if
it is the largest image. |
|
EnableLUA |
Reports the current state of
the Limited User Access policy setting and
allows you to change it. This script may be
needed to allow other scripts to display a
progress bar as they
operate. |
|
ExactDuplicates |
For iTunes 11.0.0 only
Search selected tracks or the
entire library for exact duplicate tracks (same
song name, album, artist, track no. & disc no.)
and if found add to a playlist called
Exact Duplicates. This script is
slightly more inclusive than iTunes own feature
as it matches disc <none> with disc 1.
Replaces the feature what was missing from iTunes 11.0.0 (but
very slow in comparison). The
resulting playlist is ideal as a source list for
the DeDuper script. |
|
ExportAppInfo |
A variation of
ExportCSV that
exports information about selected apps.
See this
thread at
Apple Support Communities for more details. |
|
ExportCSV |
Exports selected metadata as a
CSV text file suitable for import into Excel.
The current version exports multiple records for
each track that has multiple artwork, however
the artwork details can be omitted if not
required and the script could easily be adapted
to export additional information.
See this
thread at
Apple Support Communities for more details. |
|
ExportImport |
Exports or imports selected
metadata. Can be used to attempt to restore data
such as ratings, playcounts or genres from a
previous iTunes library file. To export data
first restore or connect to an older library
file, select the
tracks of interest, then run the script to export.
The output file iTunes Metadata.txt
is placed in the same folder as the active
library file. Next restore or reconnect to the "current" database and
drag & drop the
output file onto the script to import. The
current version is set to export most, but not
all, user editable fields and could be edited to bring forward
other data if required. You may need to
temporarily rename the iTunes Media folder
during the export phase so that iTunes cannot
read the tags of the files if your aim is to
retrieve earlier versions of that information.
See this
thread at
Apple Support Communities for more details. |
|
ExportImportPlays |
As
ExportImport but only exports Plays and
Skips. Can be used to restore played/skipped
counts from a recent .itl file in the Previous
iTunes Libraries folder in the event that iOS 8
caused these to increase too quickly. |
|
ExportToFolder |
Exports selected tracks to a folder with filenames based on a user defined pattern. Current keywords that will be replaced in the pattern are
<Album>, <AlbumArtist>, <Artist>, <Composer>, <DiscNumber>,
<Genre>, <Grouping>, <Name>, <TrackNumber> &
<Year>. The file extension is included
automatically. Your pattern can include, for
example, "\", "-", or " " as separators between
keywords, where a "\" will create an additional
subfolder. Track numbers are padded to two
digits. Standard export path (Root) and pattern
can be stored in variables in the script for
easy reuse. |
|
FadeTunes |
Fades out iTunes over a predefined interval then stops. Use to have iTunes
slowly fade out as you drift off to sleep. You can edit the pre fade
duration, fade time, and min. volume to attain
on shutdown to your own preference. These are currently set to 1 min, 15mins and
0 respectively. |
|
FindTracks |
A script that attempts to locate missing tracks that have been misplaced within
your library, either as a result of a third party program reorganising the media
or as a result of attempting to move the library/media to a new location. Enter
the location of the media folder the files should be in and the script will try
to systematically fix every broken link. |
|
ForceForeground |
Display, and optionally change, the value of the iTunes ForceToForegroundOnDialog
state which governs whether iTunes will attempt to bring its dialog boxes to the
foreground. |
|
FoundTracks |
Scans all tracks of the Library for those files that iTunes can find and adds them to a playlist called
Found. Use in conjunction with a smart
playlist called Lost consisting of the rule Playlist is
not Found, to identify missing files within the library. |
|
GaplessToPlaylist |
Scans selected tracks or the current playlist for Gapless tracks and, if found, adds them to a playlist called Gapless. |
|
GetInfo |
Test/demo script that provides a way to view a selection of track properties,
in particular those such as Bookmark Position that cannot be displayed in iTunes but can be accessed via the iTunes COM SDK. |
|
HasLyricsToPlaylist |
Scans selected tracks or the current playlist for tracks with lyrics and, if found, adds them to a playlist called
Has Lyrics. |
|
ImportDevicePlaylists |
Imports regular playlists from an iPod or iOS device into the iTunes library.
Can import from a selected playlist, or playlist folder, or all playlists on the
device. Where the tracks on the device were added from a different library than the one being used for the import the script can scan the
entire library and attempt to match tracks based on tag properties. |
|
ImportFolderStructure |
Drag & drop an folder onto this script to import it into your iTunes library
and create nested playlist folders to show the structure of the imported files.
The same set of folders can be reimported as required when new content has been
added without generating
duplicates, although files that have been moved won't be removed from existing
playlists. |
|
ImportM3U |
Drag & drop an M3U playlist onto this script to import it into your iTunes
library. Created as a workaround to the M3U import bug with iTunes 10.4. Also
useful if you wish to import a playlist containing WMA files, or one that has
the same file at more than one location in the list. |
|
iTunesInfo |
Lists some library statistics and provides a way to view iTunes properties such as the state of the
Media Key Processing option that cannot be displayed in iTunes but can be accessed via the iTunes COM SDK. |
|
iTunesITLPath |
Reveals the path to the active iTunes ITL file found by searching the folder containing
the XML. |
|
iTunesXMLPath |
A simple script that reveals the path to the active iTunes XML file. The active
<iTunes Library>.itl database will
be in the same folder. |
|
KeywordsToAlbum |
As KeywordsToComments, but changes are made to the
Album field. New words are appended and separated by a space. |
|
KeywordsToAlbumArtist |
As KeywordsToComments, but changes are made to the
AlbumArtist field. New words are appended and separated by a space. |
|
KeywordsToArtist |
As KeywordsToComments, but changes are made to the
Artist field.
To replace the current value of Artist by AlbumArtist,
for example, use the input:
-<Artist> <AlbumArtist>
To swap values use two related scripts and a field you don't
need as a temporary location or use/adapt one of the dedicated
SwapFieldField scripts below. |
|
KeywordsToComments |
Prompts for a keyword (or phrase) to add to the Comments field,
without removing what is already there or adding the same keyword twice. Prefix
a value with a dash to remove. Adds new comments on separate lines.
The following field tags will be replaced with their values: <Album>, <AlbumArtist>,
<Artist>, <Comment>,
<Composer>, <Description>, <Disc>, <Genre>,
<Grouping>, <Location>, <Lyrics>, <Name>, <Show>,
<SortAlbum>, <SortAlbumArtist>,
<SortArtist>, <SortComposer>, <SortName>, <SortShow>, <Track>, and <Year>.
Disc and track numbers are padded out with leading zeros if needed to match the
width of the disc or track count.
You can also use \n to insert a new line where the field supports it. |
|
KeywordsToComposer |
As KeywordsToComments, but changes are made to the
Composer field. |
|
KeywordsToDescription |
As KeywordsToComments, but changes are made to the
Description field. |
|
KeywordsToGrouping |
As KeywordsToComments, but changes are made to the
Grouping field. An advantage of using Grouping as opposed to Comments
for storing your keywords is that you can display all your different groupings
in the Column Browser and easily display any selection of them. This script
separates the keywords with a slash and sorts them alphabetically, but these options can be
changed if required. |
|
KeywordsToLyrics |
As KeywordsToComments, but changes are made to the
Lyrics field. Insert data into this field if you want to be able to
view it from the Lyrics tab during playback on an Apple device. By default this
script inserts new keywords before any existing text, separated by a new line,
and does not sort to preserve any lyrics that may already be there. |
|
KeywordsToName |
As KeywordsToComments, but changes are made to the
Name field. This script appends new keywords after the existing text, separated by a space and does not sort.
Use, for example, to append comments such as [Live] to every track in an album
or use
-(LIVE) [Live] to replace existing markup with your preferred text. |
|
KeywordsToShow |
As KeywordsToComments, but changes are made to the
Show field. |
|
KeywordsToSortAlbum |
As KeywordsToComments, but changes are made to the
SortAlbum field. Use, for example, to append replace the current sort
album value with one based on other properties, e.g. use -<SortAlbum> <Artist> <Year> <Album> to sort on the basis
of artist, then year, then album title. |
|
KillEmptyPlaylists |
Removes empty playlists inadvertently created in the top level of the library.
Antidote to a bug in iTunes 10.4 that could cause empty playlists to be created
if you attempted to add new tracks to your library by scanning the entire media
folder and there were .m3u playlist files in the imported folders. I recommend using
iTunes Folder Watch for the task of adding new tracks and removing orphaned
entries if you want to work directly with the media folder outside of iTunes. |
|
KillNamedPlaylists |
Removes playlists based on partial match with name. E.g. enter Test
to match with Test, Test 1, Testing
etc. Will remove both smart and regular playlists. |
|
KillSelectedFiles |
Deletes selected files from iTunes and also deletes the underlying files whether they are inside the iTunes
Media folder or not. Files on local drives should be sent to the recycle bin,
files on network drives are deleted outright. Better be sure before you let this
one start work.
The current build won't handle iTunes Extras, iTunes LPs or video files that exist in both HD & SD versions properly,
however these are unlikely to be located outside of the iTunes Media folder so,
should the need arise, these can usually be disposed of in the normal way. |
|
KillTopLevelPlaylists |
Similar to KillEmptyPlaylists but kills all non-smart playlists
not in a playlist folder apart from Purchased and Voice Memos. Use to delete
redundant artist/album playlists that may have been created by third party
software and then imported into your iTunes library. Make sure to put any
non-smart playlists that you want to keep into a playlist folder before running
the script and have a backup of your iTunes Library.itl file
too, just in case. |
|
LastPlayedNever |
Unlike the built-in Reset plays command (removed in iTunes
12.4) this script also resets the
Last Played & Last Skipped dates to
Never, and resets any
stored Bookmark Position. |
|
LocalizeM3U |
Drag & drop an M3U or M3U8 playlist onto this script to change the absolute path references to pointers to files in the same
folder as the playlist file. Use to update a playlist exported from iTunes so
that a folder with the playlist and its files dragged out from iTunes can be
used with third party software or devices. This script removes all parent
folders in the path leaving just the filename for each file referenced by the
playlist.
See also RelativeM3U. |
|
MaximiTunes |
Maximizes the iTunes window, launching iTunes if not already open.
Does the reverse of
MinimiTunes but is unlikely to be of any use whatsoever... |
|
MediaKeyProcessing |
Display, and optionally change, the value of the iTunes AppCommandMessageProcessingEnabled
state, which governs whether iTunes will attempt to respond to keyboard media
key control requests such as Play, Pause, Next Track etc. |
|
MinimiTunes |
Minimizes the iTunes window, launching iTunes if not already open. Use as a start-up script to open iTunes
and minimize to the task bar so iTunes is available for Wi-Fi syncing. |
|
PlaylistsToFile |
Creates a text file containing the names of all the playlists in the iTunes
library, indented to show folder structure. |
|
RefreshSmartPlaylists |
Refreshes the contents of all smart playlists that have random selection
criteria. Could be edited to apply only to a limited group of named playlists.
Aimed for use in a batch file to avoid having to manually select and delete
tracks from smart playlists to refresh them. |
|
RelativeM3U |
Drag & drop an M3U or M3U8 playlist onto this script to change the absolute path references to relative pointers to files in
artist & album folders below the folder containing the playlist file. This script
preserves two layers of parent folders in the path for each file referenced by
the playlist.
See also LocalizeM3U. |
|
ReplaceTextInAlbum |
Replaces instances of one set of characters with another. Call the script and
enter your search and replacement text. Surround the search and replacement text
with spaces to ensure a match with whole words. |
|
ReplaceTextInAlbumArtist |
As ReplaceTextInAlbum, but changes are made to the AlbumArtist
field. |
|
ReplaceTextInArtist |
As ReplaceTextInAlbum, but changes are made to the Artist
field. |
|
ReplaceTextInName |
As ReplaceTextInAlbum, but changes are made to the Name
field. |
|
ResetAlbumAutoRating |
Restores normal Album AutoRating behaviour after using
ClearAlbumAutoRating. |
|
ResetStartEndTimes |
Resets start time if greater and zero and end time if less than the song length. |
|
ResetTrackAutoRating |
Restores normal Track AutoRating behaviour after using
ClearTrackAutoRating. |
|
SetDiscCount |
Sets the Disc Count for selected items. To be used with iTunes 12 when the Disc Count
field is not available in Get Info, e.g. for Books, Movies or TV Shows. Note setting either Disc Count or Disc Number to something other than zero allows both to show in Get Info.
|
|
SetDiscNumber |
Sets the Disc Number, and optionally Disc Count,
for selected items. To be used with iTunes 12 when the Disc Number/Disc Count
fields are not available, e.g. for Books, Movies or TV Shows.
|
|
SetDiscTrackCounts |
Sets the total Disc Count for each album and the total
Track Count for each disc within it. Blank disc numbers are set to
Disc 1 of 1. Should be applied to complete albums, or at least
to all tracks that you have for each album that is included in the selection.
Tracks with no valid artist, album, or track number are ignored. Counts are set
the to largest disc/track count/number of the relevant items. |
|
SetLastPlayedByAlbum |
Working with the current playlist or a selection of tracks, sets the
Last Played date/time for each track from the same album so that it
will appear that each album has been played through from start to finish in
order. Tracks with no valid artist or album are ignored.
An optional parameter change allows the script to set Last Played to the
minimum, maximum, mid (of min and max), mean average value, median average value,
or set the date & time for each album manually. The script is currently set up
for manual mode. |
|
SetTrackCount |
Sets the Track Count for selected items. To be used with iTunes 12 when the Track Count
field is not available in Get Info, e.g. for Books, Movies or TV Shows. Note setting either Track Count or Track Number to something other than zero allows both to show in Get Info.
|
|
SetTrackNumber |
Sets the Track Number, and optionally Track Count,
for selected items. To be used with iTunes 12 when the Track Number/Track Count
fields are not available, e.g. for Books, Movies or TV Shows.
|
|
SetYear |
Sets the Year of selected tracks from the release date or
manual input. N.b. At the time of posting iTunes supresses any date earlier than
1601.
|
|
SortDateAdded |
Removes selected tracks from iTunes and then reimports them in reverse track
number order so that the tracks are in the correct order when viewing the
library in Date Added (descending) order. All volatile metadata (except Date & Added & Date Modified)
such as PlayCounts, Rating, Equaliser Preset etc. that isn't stored in tags is
preserved by the script which updates the reimported files with the data that
would normally be lost if you tried to do this task by hand.
The is an optional switch to reverse the order if you prefer to have things
arranged in Date Added (ascending) order. |
|
SortTrailingDigits |
Pads out any trailing digits from Name into Sort Name in order to achieve sensible sorting
for tracks with identical names apart from a trailing index number. The script
currently pads to 4 characters but can be edited if required. |
|
StripTrackNumbers |
Strips any leading track & disc numbers from the filenames of selected tracks.
(See note #1 below) |
|
SwapAlbumArtistAlbum |
Swaps values between the AlbumArtist & Album
fields, also swaps the corresponding sort values. |
|
SwapAlbumName |
Swaps values between the Album & Name fields. |
|
SwapArtistAlbum |
Swaps values between the Artist & Album fields. |
|
SwapArtistAlbumArtist |
Swaps values between the Artist & AlbumArtist fields. |
|
SwapArtistName |
Swaps values between the Artist & Name fields. |
|
SwitchLinks |
Switches links from files in one media folder to matching files in a parallel
media folder. Use when files have been copied first rather than being
consolidated and/or are in a non-standard layout. |
|
SyncStats |
Copies highest play count, skip count, rating and most recent played & skipped
date of selected tracks or playlist between iTunes and a manually managed iPod/iOS
device. Will attempt to match tracks first on LibraryIDs and if that fails on
tracks with the same tag information. See also
CombineStats. |
TagFromFilename |
Attempts to parse the full file path for selected tracks in order to update the
values of
Album Artist, Album, Artist, Disc No., Track No, Track Title and
Compilation status. Also adds folder art if possible. Use to
construct track info. for .wav files or files that are missing tags but are set
out in conventional artist & album folders.
(See note #1 below) |
|
TagFromName |
Updates
Track No, Artist and Name from a track name in
<Track> - <Artist> - <Name> form, or Artist
and Name if the name is in the form
<Artist> - <Name>. Leading zeros and spaces around the dash following
any track number are optional. |
|
TitleCase |
Convert Album, AlbumArtist, Artist, Composer, Name &
Show fields to Title Case. There are some extendable exception lists to
force particular words to match your desired style, and options to select which
fields are updated. |
|
TrimName |
Trims a user-selected number of characters from the left or right of the name
field for selected tracks, useful for stripping unwanted track numbers from the
name field. |
|
UnAutoSort |
Sets Sort Album, Sort Album Artist,
Sort Artist, Sort Composer, Sort Name,
and Sort Show fields which begin
A/An/Then to override the AutoSort feature of iTunes
for selected tracks or all tracks in the current
playlist. See also AutoSort above.
Optionally fill in all sort values by setting
the variable ForceSort=True. |
|
Unconsolidated |
Searches selected tracks or the entire library for unconsolidated tracks and if
found creates a playlist containing them. Will also report if there are any dead
tracks. |
|
UpdateTagInfo |
Forces iTunes to compare each file's tag with
iTunes own record and updates iTunes if
necessary. Use to update iTunes after modifying
tags with 3rd party tools.
N.b. Previously this has been easy to achieve in
iTunes by selecting tracks, using Get Info., and
then clicking OK. As of iTunes build 9.2.0.25
this method appears not to update properly hence this
script. |
| |
|
Note #1
Media Organisation |
The scripts
AddDisc-TrackNumbers,
AddTrackNumbers,
StripTrackNumbers
& TagFromFilename,
which manipulate filenames,
may only be useful
if you disable the
advanced iTunes preference to Keep
iTunes Media folder organised or are
working with files stored outside of the
designated
iTunes Media folder. Otherwise, if iTunes is organising the files and
they are located inside the media folder, iTunes will simply undo
any changes made by these
scripts.
|
Note #2
Progress Bar |
Many of my scripts include the
provision of a progress bar. The script will do
its job quite effectively with or without a
progress bar but when processing large numbers
of files it is nice to be able to see that it is
still working and get an idea of how long it
will be before it finishes. Unfortunately the
code to create and control the progress bar uses
a feature of Windows where one program (my
script) is allowed to control another (an
instance of Internet Explorer). Security
features introduced in Windows Vista break this
method. I don't have the resources to develop or
purchase an alternative progress bar control
that is compatible with UAC so the easiest
approach, at least from my point of view, is to
detect if UAC is active and suggest that you
disable UAC if you want to see a progress bar
while running the script. You can reset UAC
later.
How to disable User Account Control
... So Windows 8 came out, and it has broken things again. With Windows 7 and
Vista turning off the User Account Control feature (UAC)
allowed the script to talk to the instance of Internet Explorer that it had
created. What I hadn't realised before was that this was due to a side effect of
that setting which also disabled a policy flag called EnableLUA. It is
Limited User Account (LUA), when enabled, that blocks the communication
between the script and the progress bar, but in Windows 8 UAC and LUA are no
longer completely tied together. Turning off UAC is a control panel adjustment. Turning off
LUA independently of UAC requires diving into the registry. To make things
easier I've added another script EnableLUA that
reports the current state of the policy setting and allows the user to change
it. An unwanted side effect on Windows 8 is that with LUA disabled none of the
Metro apps will work. Not sure why they could not have remained working and
sandboxed even if the user requires a more relaxed policy for their legacy code,
but there it is.
|
| Windows Scripting Host |
If your browser opens the
scripts as text files return to the previous
page, right click on the link and click
Download... or Save As...
or whatever variant your browser offers.
Alternatively if your browser or anti-virus
software blocks the download but allows you to
view the text then copy the text and save it as
a new text file with a .vbs
extension or edit the file extension from
.txt to .vbs
after saving.
If the downloaded scripts open
as text files then you may need to install the
Windows Scripting Host:
Windows Script 5.7 for Windows XP
|
| |
|
| Disclaimer |
Although I have tested these scripts thoroughly I make no representations as
to their suitability for your purposes. Please ensure you have a
backup of your
library and media folders before running any script on your system. |