Automate the mundane for sanity sake (part 2)

The other day a user from the mymovies.name forum (slig) mentioned that he was unhappy with the resolution of the images Media Center displays in the Music gallery, in his case he noticed that although he was going to the effort to download high quality 500x500 images Media Center was only showing 200x200 images.

Well I have not spoken to anyone in the Media Center Music gallery team but I am fairly sure this was an attempt at their part to make the album view of the gallery be performant for large collections.

With that in mind, I too like slig would like to see higher picture quality in the Music gallery so I put together a simple script that will update the cached image that the gallery displays with whatever is in your folder.jpg for that album:

''
''
'' This script makes sure that all of the folder.jpgs are the same as the AlbumArt_{[GUID]}_Large files.
''
'' This script assumes a folder layout of drive:\root\music\[album]\[artist].
''
'' Anything not in this folder layout will be ignored or missed (more acuratley).
''
'' You will also want to delete the C:\Users\[user]\AppData\Local\Microsoft\Media Player\Art Cache\LocalMLS content.
''
'' You will also want to make sure the AlbumArt_{[GUID]}_Large files are not hidden or system, will need to do this in the shell
''
'' This will fail on permission denied for files that are in use or you do not have permissions for.
''
'' Should be updated to resize to 500x500 or similar, bigger it is slower mce see: http://www.motobit.com/tips/detpg_asp-resize-image/
''
''

Dim FileSystem, oMusicFolder, szMusicFolder, szFolderFQPN, szTargetFQPN
Dim ArtistsFolders, ArtistsFolder, AlbumFolder, AlbumFolders, File, Files
Dim iEndOfShortFileName, szFolderJpg


Set FileSystem = CreateObject("Scripting.FileSystemObject")
szMusicFolder = "e:\music"

'' Snag the music folder
Set oMusicFolder = FileSystem.GetFolder(szMusicFolder)

'' Get all the artist folders
Set ArtistsFolders = oMusicFolder.Subfolders

For Each ArtistsFolder in ArtistsFolders

 '' Get the albumn folders

 Set AlbumFolders = ArtistsFolder.Subfolders

 For Each AlbumFolder in AlbumFolders
  '' Find the AlbumArt_*_Large file, asume only one match.
  Set Files = AlbumFolder.Files

  For Each File In Files
   Select Case LCase(Right(File.Name, 10))
    Case "_large.jpg"
     'Wscript.Echo File.Name
     szFolderFQPN = AlbumFolder.Path & "\folder.jpg"
     szTargetFQPN = AlbumFolder.Path & "\" & File.Name

     'WScript.Echo szFolderFQPN

     ' if folder.jpg exists delete file.name and replace it with it.
     If (FileSystem.FileExists(szFolderFQPN)) = True Then
      WScript.Echo "Updating the AlbumArt_{[GUID]}_Large for " & AlbumFolder.Name
      FileSystem.CopyFile szFolderFQPN, szTargetFQPN
     End If
   End Select
  Next
 Next
Next

Well after I wrote this script I realized that most of my art was only 200x200 anyways, there are lots of good sources for high resolution coverart like FreeCovers.net, cdcovers.cc and of course amazon.com but thats all manual (and mundane) so I guess I will be living with low resolution art for now .

Print | posted on Monday, March 12, 2007 8:42 PM

Feedback

No comments posted yet.
Title  
Name  
Email
Url
Comments   
Please add 8 and 7 and type the answer here: