Copy link to clipboard
Copied
I'd like to see video length in Bridge metadata. Windows Explorer shows this. Why can't Bridge? All those metadata fields, and not one for clip length? To me that is an important datum when searching and sorting video clips. Windows also shows frame rate and dimensions right up front.
Left: Bridge
Right: Windows Explorer, same file
Copy link to clipboard
Copied
Excellant suggestion.
Feature Request will be filed.
Copy link to clipboard
Copied
Hello!
And, in case David does not know, the best place to put a feature request is at: https://feedback.photoshop.com
Post the link here, so that others can vote!
Copy link to clipboard
Copied
EDIT: Better (still unpolished) script. Only displays properties that are present and fixes error when changing folders.
I cobbled together a script which is VERY unpolished and incomplete but should help. It displays a palette with video file info. Each time you click on a single video file, it will show updated metadata.
To add media types, edit line 47. I may work on it some more, testing to see if properties are present in the file and adding more properties.
You can continue development if you want, incorporating more properties (I copied some of the raw data from an mp4 and its commented out at the end.)
Copy/paste this into a PLAIN TEXT EDITOR (not RTF!) and save with a file extension of ".jsx" then copy into Bridge Startup Scripts (Preferences-Startup Scripts->Reveal button.) Relaunch Bridge and select from Tools menu.
------------------------------------------------------------------------------------
#target bridge
if(BridgeTalk.appName == 'bridge'){
try{
var VideoInfoPalette = new Object; //id object for this script
VideoInfoPalette.built = false;
if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
var VIPcmd = MenuElement.create('command', 'Video Info Palette...', 'at the end of Tools');
VIPcmd.onSelect = function(){
viPalette();
}
function viPalette(){
this.paletteRefs = new Array();
var viWrapper = this;
function addviPalette(doc){
if(VideoInfoPalette.built == false){ //first run
var viScriptPalette = new TabbedPalette(doc, 'Video Info', 'vInfo', 'script', 'center', 'top'); //place in center temporarily
viScriptPalette.setLocation('right'); //move to final position, works around Bridge bug
viWrapper.paletteRefs.push(viScriptPalette);
viPanel = viScriptPalette.content.add('panel', undefined, '');
viPanel.alignment = ['fill', 'fill'];
viPanel.alignChildren = ['fill', 'fill'];
viPanel.txtField = viPanel.add('edittext', undefined, 'Select a video file', {multiline:true, readonly:true}); //default text
viScriptPalette.content.layout.layout(true);
VideoInfoPalette.built = true;
}
viScriptPalette.content.onResize = function(){ //dynamic resizing
var v = this.bounds;
viPanel.bounds = v;
viPanel.txtField.bounds = [v[0] - 10, v[1] - 10, v[2] - 25, v[3] - 35];
this.layout.resize(true);
viScriptPalette.content.layout.layout(true);
}
}
app.eventHandlers.push({handler: viOpenDocument}); //runs on `change in selections
function viOpenDocument(event){
if(event.object instanceof Document && event.type == 'selectionsChanged'){
try{
if(app.document.selectionLength == 1){ //can only show one file at a time
//add new video file extensions to preview those file types
var viList = app.document.getSelection('mp4, mov, avi, mpeg');
}
else{
viPanel.txtField.text = 'Please select a video file to display.';
var viList = [];
}
if(viList.length == 1){ //valid video file
viPanel.txtField.text = 'Video File';
if(viList[0].hasMetadata){ //only process files with metadata
var vfr = viList[0].synchronousMetadata.read('http://ns.adobe.com/xmp/1.0/DynamicMedia/', 'videoFrameRate');
var vfo = viList[0].synchronousMetadata.read('http://ns.adobe.com/xmp/1.0/DynamicMedia/', 'videoFieldOrder');
var vpar = viList[0].synchronousMetadata.read('http://ns.adobe.com/xmp/1.0/DynamicMedia/', 'videoPixelAspectRatio');
var vfs = viList[0].synchronousMetadata.read('http://ns.adobe.com/xmp/1.0/DynamicMedia/', 'xmpDM:videoFrameSize/stDim:w');
var vfh = viList[0].synchronousMetadata.read('http://ns.adobe.com/xmp/1.0/DynamicMedia/', 'xmpDM:videoFrameSize/stDim:h');
var vfd = viList[0].synchronousMetadata.read('http://ns.adobe.com/xmp/1.0/DynamicMedia/', 'xmpDM:duration/xmpDM:value');
var vfsc = viList[0].synchronousMetadata.read('http://ns.adobe.com/xmp/1.0/DynamicMedia/', 'xmpDM:duration/xmpDM:scale');
var vfdur = (eval(vfd) * eval(vfsc));
vfdur = (vfdur/60);
var vfdurmin = Math.floor(vfdur);
var vfdursec = (vfdur - vfdurmin);
vfdursec = (vfdursec * 60);
vfdursec = Math.round(vfdursec);
var viText = '';
if(vfs){
viText = vfs + ' px x ' + vfh + ' px\r';
}
if(vfr){
viText = viText + vfr.toString() + ' fps\r'
}
if(vfo){
viText = viText + vfo.toString() + '\r';
}
if(vpar){
viText = viText + vpar + ' aspect ratio\r';
}
if(vfdurmin || vfdursec){
viText = viText + vfdurmin.toString() + ' min ' + vfdursec.toString() + ' sec';
}
viPanel.txtField.text = viText;
}
}
else{
viPanel.txtField.text = 'Please select a video file to display.';
}
}
catch(e){
alert(e + e.line);
}
return{handled:false};
}
}
for(var i = 0;i < app.documents.length;i++){
addviPalette(app.documents[i]);
}
}
}
catch(e){
alert(e + e.line);
}
}
//~ xmlns:xmpDM="http://ns.adobe.com/xmp/1.0/DynamicMedia/"
//~ <xmpDM:videoFrameRate>29.970030</xmpDM:videoFrameRate>
//~ <xmpDM:videoFieldOrder>Progressive</xmpDM:videoFieldOrder>
//~ <xmpDM:videoPixelAspectRatio>1/1</xmpDM:videoPixelAspectRatio>
//~ <xmpDM:audioSampleRate>44100</xmpDM:audioSampleRate>
//~ <xmpDM:audioSampleType>16Int</xmpDM:audioSampleType>
//~ <xmpDM:audioChannelType>Stereo</xmpDM:audioChannelType>
//~ <xmpDM:startTimeScale>30000</xmpDM:startTimeScale>
//~ <xmpDM:startTimeSampleSize>1001</xmpDM:startTimeSampleSize>
//~ <xmpDM:videoFrameSize rdf:parseType="Resource">
//~ <stDim:w>854</stDim:w>
//~ <stDim:h>480</stDim:h>
//~ <stDim:unit>pixel</stDim:unit>
//~ </xmpDM:videoFrameSize>
//~ <xmpDM:startTimecode rdf:parseType="Resource">
//~ <xmpDM:timeFormat>2997NonDropTimecode</xmpDM:timeFormat>
//~ <xmpDM:timeValue>00:00:00:00</xmpDM:timeValue>
//~ </xmpDM:startTimecode>
//~ <xmpDM:altTimecode rdf:parseType="Resource">
//~ <xmpDM:timeValue>00:00:00:00</xmpDM:timeValue>
//~ <xmpDM:timeFormat>2997NonDropTimecode</xmpDM:timeFormat>
//~ </xmpDM:altTimecode>
//~ <xmpDM:duration rdf:parseType="Resource">
//~ <xmpDM:value>53116218</xmpDM:value>
//~ <xmpDM:scale>1/90000</xmpDM:scale>
//~ </xmpDM:duration>
Copy link to clipboard
Copied
Hi! Tried installing this in Bridge 2022. I can see the 'Video info' under 'tools', but nothing shows up when invoked...?
Copy link to clipboard
Copied
I'm going to add a polished-up version of the script palette below to my Utility Script Pack. In-progress now.
Copy link to clipboard
Copied
Sounds great! What's the ETA?
Copy link to clipboard
Copied
Its released on Adobe Exchange.
Copy link to clipboard
Copied
Hi, found the package on Exchange (I assume it's 'Utility Script Pack') and installed it.
What's the usage for finding out clip duration? The readme says to use the 'Text Preview' element, and the usage for that is: "With the Text Preview panel opened, select any one plain text file in the Bridge browser. The text will be displayed in the panel." On another spot it says to use this extension to view video duration.
But what exactly is 'the Text Preview panel'? Can't find it anywhere in Tools, or Window, or right-click context...?
Copy link to clipboard
Copied
Should mention using latest version of Bridge, windows 10, assume 2022 v. 12.0.0.234
Copy link to clipboard
Copied
I recommend using my latest releases: https://www.dropbox.com/sh/mg817g9a9ymbasi/AADTmXUVxmFfM58bcyYE7yiwa?dl=0
I broke the video info script out from Text Preview, download Video Info (Misc Scripts->Bridge and Universal Scripts->Video Info.jsx
Install in Bridge Startup Scripts, restart Bridge, Tools->Video Info
Copy link to clipboard
Copied
Hm: bad argument error?
Copy link to clipboard
Copied
What kind of file? I have an enumerated list of file types that I support with that script.
Copy link to clipboard
Copied
That's the script line that creates the palette. If you have run it once already, the palette is in the regular list.
Copy link to clipboard
Copied
Ah! Got it. Misunderstood your instructions. So...
Install in Bridge Startup Scripts, restart Bridge, Tools->Video Info
THEN Window-> Video Info Panel.
This will do the trick, thank you!
Still boggling that something so rudimentary is not included in Metadata...
Copy link to clipboard
Copied
(ability to get clip duration, not a reference that your script itself is rudimentary 🙂
Copy link to clipboard
Copied
One thing... in line 89:
viList = app.document.getSelection('mp4, mov, avi, mpeg, wmv, mts, mpg, flv');
... mts is a filetype, but when I select a clip in Bridge the Info panel does not update when an MTS file is selected...?
Copy link to clipboard
Copied
That enumeration is for file extension. Bridge doesn't have another way of specifying file type besides MIME type which wouldn't apply here. If its a .mts file, any metadata should be read and processed.
And yes this should all be built in. The script isn't that complex and Bridge obviously already has video support. Adobe doesn't listen to ideas.
Copy link to clipboard
Copied
Hmm... so I wonder if it's a case of the .mts files I use (from a Sony a7s) doesn't encode clip duration in the metadata? Any other reason why it might not show up? I tried adding MTS to the file types (my files are capitalized, aren't lower case .mts), thought that might have something to do with it... but it doesn't. I do note that what metadata there is in Bridge for mts files, it's missing some other info that mp4 has (ie. width, height). So the data simply might not be there, I guess... C'mon Adobe... seriously... (and thank you Lumi)
Copy link to clipboard
Copied
Yeah you'd have to do some testing to see what is actually encoded in the metadata. Try looking at them with a free video editor (DaVinci Resolve should support pretty much any video file.)
Copy link to clipboard
Copied
I just updated the latest version of Bridge, and it STILL does not include length of videos two years after I raised the issue.
There are nearly 100 pieces of metadata when I click on a video file, but not the two most useful pieces of information: the length and the format (i.e., 4K, 1080p, 720p etc).
This makes Bridge basically useless for my needs, since I want to manage thousands of video clips as a bridge to Premiere Pro. I like the ranking and color coding, but cannot use Bridge without these key pieces of information.
Windows Explorer is more useful than Bridge. That info and more is right up front on the file details pane:
Dave
Copy link to clipboard
Copied
Post a feature request here:
Copy link to clipboard
Copied
Hi, I would rather suggest to post in Bridge's uservoice, for instance this post about metadata: https://adobebridge.uservoice.com/forums/905323-feature-request/suggestions/37998634-video-metadata
Copy link to clipboard
Copied
Just adding my (inconsequential) voice; how is this not native? I mean really, I can find out the Intellectual Genre of a clip; the ages of models and the Lat/Long of a clip in the metadata, but I can't see the CLIP DURATION? Seriously Adobe?
Copy link to clipboard
Copied
Hello Adobe? Are you listening? Where is the most basic form of file information? VIDEO FILE LENGTH! What is the challenge? Bridge offers a ton of usuless metadata fields but misses the most basic form of file comunication, a video file's length. When can we expect this to appear?