I also use a java script to save iTunes artwork to a file. Google for
"iTunes COM SDK" for more info.  My script basically does the same as
andlauer's, but I added a few options you can set. The
bOptIgnoreBadArtworkComment option allows you to add a "Don't use
iTunes artwork" comment to the mp3 if the iTunes artwork is wrong or
low resolution and it won't save the artwork for that file. Of course
you could also just clear the bad downloaded artwork in iTunes, but
then you'll have to do this again if you ever rescan your iTunes
library.  The other options are pretty self-explanatory.

Download the attached text file and rename it to
"SaveItunesArtworkToFile.js".  Make sure iTunes is open and
double-click the js file to run the script.  Here is the code from the
script for reference...
-----------------
// Script options
var bOptSaveEmbeddedArtwork = false;
var bOptIgnoreBadArtworkComment = false;
var bOptOverwriteArtworkFile = false;
var bOptCreateArtworkThumbs = false;

var iTunesApp = WScript.CreateObject("iTunes.Application");

var tracks = iTunesApp.LibraryPlaylist.Tracks;

// NOTE: Change to "Test" playlist for testing
//var tracks =
iTunesApp.LibrarySource.Playlists.ItemByName("Test").Tracks;

// NOTE: Instead of looking for "Don't use iTunes artwork" comment, can
also create smart playlist
//var tracks = iTunesApp.LibrarySource.Playlists.ItemByName("Use iTunes
Artwork").Tracks;

var numTracks = tracks.Count;
var currTrack;
var count = 0;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var shell = new ActiveXObject("WScript.Shell");

var albumArray = new Array();

for (var i = 1; i <= numTracks; i++)
{
currTrack = tracks.Item(i);
var album = currTrack.Album;

if ((album != undefined) && (album != ""))
if (albumArray[album] == undefined)
albumArray[album] = currTrack;
}

for (var albumNameKey in albumArray)
{
try
{
currTrack = albumArray[albumNameKey];

        if (currTrack.Artwork.Count == 0)
continue;

var artItem = currTrack.Artwork.Item(1);

if (!bOptSaveEmbeddedArtwork)
if (!artItem.IsDownloadedArtwork)
continue;

        // Look for a comment indicating if we should NOT save artwork
// (separate multiple comments with a semi-colon)
if (!bOptIgnoreBadArtworkComment)
{
var bSaveArtwork = true;
            var comments = currTrack.Comment.split(";");
            for (var j = 0; j < comments.length; j++)
if (comments[j] == "Don't use iTunes artwork")
{
bSaveArtwork = false;
break;
}

if (!bSaveArtwork)
continue;
}

var type;
if (artItem.Format == 0)
continue;
        else if (artItem.Format == 1)
type = "jpg";
else if(artItem.Format == 2)
type = "png";
else if(artItem.Format == 3)
type = "bmp";
else
continue;

// Save artwork in same directory as track
var loc = currTrack.Location;
var parentFolder = loc.substr(0,loc.lastIndexOf("\\")) + "\\";
var artworkPath =  parentFolder + "cover." + type;

// Don't save artwork if already exists
if (!bOptOverwriteArtworkFile)
if (fso.FileExists(artworkPath))
continue;

artItem.SaveArtworkToFile(artworkPath);  
count++;

// Create artwork thumbnails using ImageMagick convert
(www.imagemagick.org)
if (bOptCreateArtworkThumbs)
{
shell.Run("C:\\convert.exe -thumbnail 300x300 \"" +
artworkPath + "\" \"" + parentFolder + "cover_sm." + type + "\"", 0);
shell.Run("C:\\convert.exe -thumbnail 150x150 \"" +
artworkPath + "\" \"" + parentFolder + "cover_tn2." + type + "\"", 0);
shell.Run("C:\\convert.exe -thumbnail 100x100 \"" +
artworkPath + "\" \"" + parentFolder + "cover_tn." + type + "\"", 0);
}
}
catch(er)
{
WScript.Echo(er);
}
}

WScript.Echo ("Saved artwork for " + count + " tracks.");


+-------------------------------------------------------------------+
|Filename: SaveItunesArtworkToFile.js.txt                           |
|Download: http://forums.slimdevices.com/attachment.php?attachmentid=4673|
+-------------------------------------------------------------------+

-- 
jsmathers
------------------------------------------------------------------------
jsmathers's Profile: http://forums.slimdevices.com/member.php?userid=3848
View this thread: http://forums.slimdevices.com/showthread.php?t=44344

_______________________________________________
discuss mailing list
discuss@lists.slimdevices.com
http://lists.slimdevices.com/lists/listinfo/discuss

Reply via email to