If itm.EpisodeNumber vbNullString Then AddToLevelArray TrackLevel, "PART_NUMBER", itm.EpisodeNumber 'episode number If itm.SeasonNumber vbNullString Then AddToLevelArray SeasonLevel, "PART_NUMBER", itm.SeasonNumber 'season number If itm.Series vbNullString Then AddToLevelArray CollectionLevel, "TITLE", itm.Series 'Series name If itm.BPM vbNullString Then AddToLevelArray TrackLevel, "BPM", itm.BPM 'beats per minute If itm.OriginalTitle vbNullString Then AddToLevelArray TrackLevel, "ORIGINAL.TITLE", itm.OriginalTitle 'original title If itm.OriginalDay vbNullString Then AddToLevelArray TrackLevel, "ORIGINAL.LYRICIST", itm.OriginalLyricist 'original lyricist / original writer If itm.OriginalArtist vbNullString Then AddToLevelArray TrackLevel, "ORIGINAL.AUTHOR", itm.OriginalArtist 'original artistĭim TrackOriginalDate : TrackOriginalDate = itm.OriginalYear If itm.Lyricist vbNullString Then AddToLevelArray TrackLevel, "LYRICIST", itm.Lyricist 'lyricist / writer If itm.Conductor vbNullString Then AddToLevelArray TrackLevel, "CONDUCTOR", itm.Conductor 'CONDUCTOR If itm.MusicComposer vbNullString Then AddToLevelArray TrackLevel, "COMPOSER", itm.MusicComposer 'Composer If itm.TrackOrder > 0 Then AddToLevelArray TrackLevel, "PART_NUMBER", itm.TrackOrder 'track number If itm.ArtistName vbNullString Then AddToLevelArray TrackLevel, "AUTHOR", itm.ArtistName 'artist If itm.AlbumName vbNullString Then AddToLevelArray SeasonLevel, "TITLE", itm.AlbumName 'album If itm.AlbumArtistName vbNullString Then AddToLevelArray SeasonLevel, "AUTHOR", itm.AlbumArtistName 'album artist If itm.DiscNumber vbNullString Then AddToLevelArray SeasonLevel, "PART_NUMBER", itm.DiscNumber 'Disc number 'create different XML elements depending on track type Each array is two dimensional to contain tag and value.ĭim CollectionLevel : CollectionLevel = Array() 'MKV collection, season, and track level arrays. If itm.ID OR NOT Then 'don't write tags for the track that is currently playing because it will interrupt the playback 'variables to count the number of files processedĭim NonMKVCount 'number of selected files which are not mkv files and ignoredĭim WriteErrorCount 'number of files for which tagging is attempted but results in an error or warningĭim TagSuccessCount 'number of files successfully taggedīar.Text = "mkvTagger: Tagging track "&(i+1)&" of "&(tracklist.Count)&"." 'gather the file paths for temporary filesĭim mkvPropEditOutputFilePath : mkvPropEditOutputFilePath = SDB.TemporaryFolder & "\mkvTaggerOutput.txt" 'output file used to capture the results of the mkvPropEdit process instead of reading it from the consoleĭim TagFilePath : TagFilePath = SDB.TemporaryFolder & "\mkvTags.xml" 'path of the temporary xml file used to tag the files 'create the shell object required to execute the command lineĭim wshShell : Set wshShell = CreateObject("WScript.Shell") If Not SuppressReport Then SDB.MessageBox "mkvTagger requires mkvPropEdit.exe to function.", mtInformation, Array(mbOk)īar.Text = "mkvTagger: Cannot locate mkvPropEdit.exe" If Not fso.FileExists(mkvPropEditPath) Then Sub TagMKV(tracklist, SuppressReport, Silent)ĭim fso : Set fso = CreateObject("Scripting.FileSystemObject")
TagMKV tracklist, Not ShowReportAfterTagging, FALSE 'called whenever the user calls this script from the Scripts menuĭim ConfirmationResponse: ConfirmationResponse = 0ĭim tracklist : Set tracklist = SDB.SelectedSongListĬall SDB.MessageBox("Select tracks to be tagged.", mtError, Array(mbOk))ĬonfirmationResponse = SDB.MessageBox("Tag "&tracklist.Count&" tracks?", mtConfirmation, Array(mbYes,mbCancel)) ' Description=Tag MKV files using mkvPropEdit if installed, or create XML tag files to be used by external softwareĭim PostponedTrackItm : Set PostponedTrackItm = Nothing ' Don't forget to remove comments (') and set the order appropriately ' INSTALL: Copy to Scripts directory and add the following to Scripts.ini