Music Videos show up in Music Video Library under "Title" but not under each artist
#16
Here comes the same type of script but this time you should select a "main folder". The script then walks through your subfolders (1 level only!) and creates the .NFO file for all files found.

As stated - similar to the former one but goes for subfolders which is teh way I have it structured. Feel free to enhance further Smile
----

'* This script creates an XBMC Music Video Nfo file based on the artist & trackname. *
'* The videos must be in the format artist - trackname for this to work. *
'* Mpg, Avi, Wmv, Swf, M2v & Flv files will be picked up. If there is a format *
'* I've missed, line 34 can be edited to add the additional extension. Just add *
'* or lcase(exten) = ".xxx" before the word then. *
'* The script is currently unble to handle any 4 letter extensions such as .mpeg *
'* *
'* ©Craigey2007 - 19-12-2007. Use at your own risk. V1.6 *


i = 0
f = 0
g = 0
log_name = "music_video_nfo_creator.log"

Set sa = CreateObject("Shell.Application")
set oF = sa.BrowseForFolder(0, "Source Folder:", ssfWINDOWS)
if (not oF is nothing) then
set fi = oF.Items.Item
else
wscript.quit
end if

Set filesys = CreateObject("Scripting.fileSystemObject")
Set sourceFolder = filesys.GetFolder(fi.Path) ' The folder containing your Music Videos

'added
Set Path = filesys.GetFolder(fi.Path) ' The folder containing your Music Videos
Set FSO = CreateObject("Scripting.FileSystemObject")

For each folder in FSO.GetFolder(path).SubFolders
'end add


'set mvidslist = sourceFolder.files
set mvidslist = folder.files
startTime = Timer

For Each mvids in mvidslist
trackName = mvids.name
exten = right(mvids,4)
if lcase(exten) = ".avi" or lcase(exten) = ".wmv" or lcase(exten) = ".mpg" or lcase(exten) = ".swf" or lcase(exten) = ".m2v" or lcase(exten) = "flv" or lcase(exten) = ".mkv" or lcase(exten) = ".vob" then
i=i+1
str1=trackname

fullfilename = WScript.ScriptFullName
currentFolder = Left(filename, InstrRev(filename, "\"))

Set FSOd = CreateObject("Scripting.FileSystemObject")
Set logFile = FSOd.OpenTextFile(currentfolder+log_name, 8, True)

on error resume next
seperator = InstrRev(str1,"-") 'count left to the first occurance of "-"
if (seperator >= 1) then 'if the seperator exists split into artist and song
artist = Left(str1,seperator-2) 'seperate artist
songLength= (Len(str1)- seperator) 'work out chr length of song
song = right(str1,songLength) 'seperate song
strArtist = artist
strSong = song
strSong = Replace(strSong,exten,"")
strArtist = trim(strArtist)
strSong = trim(strSong)
noArtist = Len(strArtist) 'if it can't find an artist name, replace with 'Unknown'

if noArtist = "0" then
strArtist = "Unknown"
end if
noSong = Len(strSong) 'if it can't find a song name, replace with 'Unknown'
if noSong = "0" then
strSong = "Unknown"
end if
else 'leave alone
strArtist = "Unknown"
end if

str1 = replace(str1,exten,"")
destfil = folder+"\"+str1+".nfo"



if filesys.FileExists(destFil) then
g=g+1
logFile.Writeline "INFO:**********************Duplicate Below*************************"
else
f=f+1
Set fsonfo = CreateObject("Scripting.FileSystemObject")
Set nfoFile = FSOnfo.OpenTextFile(destfil, 8, True)
nfoFile.Writeline "<musicvideo>"
nfoFile.Writeline "<title>"&strSong&"</title>"
nfoFile.Writeline "<artist>"&strArtist&"</artist>"
nfoFile.Writeline "<album>Other</album>"
nfoFile.Writeline "<genre>Pop</genre>"
nfoFile.Writeline "<runtime></runtime>"
nfoFile.Writeline "<plot>Who cares...?</plot>"
nfoFile.Writeline "<year></year>"
nfoFile.Writeline "<director></director>"
nfoFile.Writeline "<studio></studio>"
nfoFile.Writeline "</musicvideo>"
nfoFile.Close
set fsonfo = nothing
set nfofile = nothing
end if

timesecs = Timer - startTime
logFile.Writeline trackname & " " & str1 & " " & destfil & " " & g & " " & f & " " & i & " " &timesecs
logFile.Close

end if
next
next


elapsedTimesecs = Timer - startTime
elapsedtimesecs = CInt(elapsedtimesecs)


if i = "0" then
ermsg="No Music Videos were Found."
erTitle="Files not Found"
MsgBox erMsg, vbOkOnly + vbExclamation, erTitle
wscript.quit
end if

days=0
hours=0
mins=0

do while elapsedtimesecs > 59
mins=mins+1
elapsedtimesecs = elapsedtimesecs - 60
loop

do while mins > 59
hours=hours+1
mins = mins - 60
loop

do while hours > 24
days=days+1
hours = hours - 24
loop

timetaken = f & " Music Videos Nfo files created in "
if days > 1 then
timetaken = timetaken & days & " Days & "
end if
if days = 1 then
timetaken = timetaken & days & " Day & "
end if
if hours > 1 then
timetaken = timetaken & hours & " Hours & "
end if
if days <> 1 and hours = 1 then
timetaken = timetaken & hours & " Hour & "
end if
if mins > 1 then
timetaken = timetaken & mins & " Minutes & "
end if
if hours <> 1 and mins = 1 then
timetaken = timetaken & mins & " Minute & "
end if
if elapsedtimesecs <> 1 then
timetaken = timetaken & elapsedTimesecs & " Seconds"
end if
if elapsedtimesecs = 1 then
timetaken = timetaken & elapsedTimesecs & " Second"
end if

if g = 1 then
timetaken = timetaken & vbcrlf & g & " NFO File already existed & was ignored"
elseif g > 1 then
timetaken = timetaken & vbcrlf & g & " NFO Files already existed & were ignored"
end if

set FSOd = Nothing
set logFile = Nothing

msgbox(timetaken)
Reply

Logout Mark Read Team Forum Stats Members Help
Music Videos show up in Music Video Library under "Title" but not under each artist0