A generic tool for collecting specific properties of video files, add/remove the extensions you want to include in the ARRAY and then tweak the top path in the SHELL command, currently it starts at C:\ and dives into all folders from there, so it will find them all. Not the quickest, but it's thorough.
Option Explicit
Sub GetVideos()
Dim fileType, fileNames, movieFile
Dim nextRow As Excel.Range
For Each fileType In Array(".avi", ".mkv", ".mpeg4", ".mov") '// add more as required...
'// Black console box may appear at this point for a while, this is normal...
fileNames = Filter(Split(CreateObject("WScript.Shell").Exec("CMD /C DIR ""C:\*" & fileType & """ /S /B /A:-D").StdOut.ReadAll, vbCrLf), ".")
For Each movieFile In fileNames
Set nextRow = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
nextRow.Value = GetProperties(CStr(movieFile), 0)
nextRow.Offset(0, 1).Value = GetProperties(CStr(movieFile), 1)
nextRow.Offset(0, 2).Value = GetProperties(CStr(movieFile), 27)
nextRow.Offset(0, 3).Value = GetProperties(CStr(movieFile), 182)
nextRow.Offset(0, 4).Value = GetProperties(CStr(movieFile), 284)
Next
Next
With Range("A1:E1")
.Value = Array("Name", "Size", "Length", "Type", "Frame Rate")
.EntireColumn.AutoFit
End With
End Sub
Function GetProperties(file As String, propertyVal As Integer) As Variant
Dim varfolder, varfile
With CreateObject("Shell.Application")
Set varfolder = .Namespace(Left(file, InStrRev(file, "\") - 1))
Set varfile = varfolder.ParseName(Right(file, Len(file) - InStrRev(file, "\")))
GetProperties = varfolder.GetDetailsOf(varfile, propertyVal)
End With
End Function