function OnInit(initData) { initData.name = 'FolderBitrate'; initData.version = '2024-11-14'; initData.url = 'https://resource.dopus.com/t/folderbitrate-columns-with-average-bitrates-for-video-files-in-folders/53491'; initData.desc = 'Display Average Audio and Bit Rate for folders.'; initData.default_enable = true; initData.min_version = '13.0'; } function OnAddColumns(addColData) { var col = addColData.AddColumn(); col.name = 'AudioBitRateAvg'; col.method = 'OnColumn'; col.justify = 'right'; col.type = 'double'; col.multicol = true; var col = addColData.AddColumn(); col.name = 'VideoBitRateAvg'; col.method = 'OnColumn'; col.justify = 'right'; col.type = 'double'; col.multicol = true; } function OnColumn(scriptColData) { var item = scriptColData.item; var bitrateAudio = 0; var bitrateVideo = 0; var countAudio = 0; var countVideo = 0; if (item.is_dir) { var folderEnum = DOpus.FSUtil().ReadDir(item); while (!folderEnum.complete) { var folderItem = folderEnum.Next(); var meta = folderItem.metadata; if (meta != 'video') continue; var d = meta.video.mp3bitrate; if (typeof d == 'number') { bitrateAudio += d; countAudio++; } var d = meta.video.datarate; if (typeof d == 'number') { bitrateVideo += d; countVideo++; } } folderEnum.Close(); } else { var meta = item.metadata; if (meta == 'video') { bitrateAudio = meta.audio.mp3bitrate; if (typeof bitrateAudio != 'number') bitrateAudio = 0; countAudio = 1; bitrateVideo = meta.video.datarate; if (typeof bitrateVideo != 'number') bitrateVideo = 0; countVideo = 1; } } scriptColData.columns('AudioBitRateAvg').value = (countAudio ? bitrateAudio / countAudio : 0).toFixed(1); scriptColData.columns('VideoBitRateAvg').value = (countVideo ? bitrateVideo / countVideo : 0).toFixed(1); }