It would be useful to know what software you use or want to use, i.e. exact version of Photoshop, Bridge, and the OS.
CLICK HERE <http://www.adobeforums.com/webx?50@@.2cd06cd9> for advice on how to ask your question correctly for quicker answers. Thanks!
Also, have you investigated Bridge metadata templates?
#target photoshop
//////////////////////////////////////////////////////////////////////////////////////
MyNewKey= "EnterYourNewKeywordHere";
/////////////////////////////////////////////////////////////////////////////////////
BridgeTalk.prototype.sendSynch = function(timeout) {
var self = this;
self.onResult = function(res) {
this.result = res.body;
this.complete = true;
}
self.complete = false;
self.send();
if (timeout) {
for (var i = 0; i < timeout; i++) {
BridgeTalk.pump();
if (!self.complete) {
$.sleep(1000);
} else {
break;
}
}
}
var res = self.result;
self.result = self.complete = self.onResult = undefined;
return res;
};
function getKeys() {
var bridgeApp = "bridge";
if (!BridgeTalk.isRunning(bridgeApp)) {
BridgeTalk.launch(bridgeApp);
}
var bt = new BridgeTalk();
bt.target = bridgeApp;
bt.body = "function z(){var f = new Thumbnail('"+activeDocument.fullName.fsName+"'); var md = f.synchronousMetadata;"+
"md.namespace = 'http://ns.adobe.com/photoshop/1.0/'; var result = md.Keywords;return result;}z();";
var res = bt.sendSynch(10);
addKeyWord(res,MyNewKey)
};
function addKeyWord(Keys,newKey) {
var desc19 = new ActionDescriptor();
var ref8 = new ActionReference();
ref8.putProperty( charIDToTypeID('Prpr'), charIDToTypeID('FlIn') );
ref8.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
desc19.putReference( charIDToTypeID('null'), ref8 );
var desc20 = new ActionDescriptor();
var list3 = new ActionList();
Keys=Keys.split(',');
for(var a=0;a<Keys.length;a++){
list3.putString( Keys[a].toString() );
}
list3.putString( newKey);
desc20.putList( charIDToTypeID('Kywd'), list3 );
desc19.putObject( charIDToTypeID('T '), charIDToTypeID('FlIn'), desc20 );
executeAction( charIDToTypeID('setd'), desc19, DialogModes.NO );
};
getKeys();
stock video cards. Plenty of disk space
…which tells us nothing. :(
However, since Paul says it can't be done, it's a moot point.
#target photoshop
///////////////////////////////////////////////////////////
//Put your new keyword below.
newKey = "TestKeyWord";
///////////////////////////////////////////////////////////
var xmp = activeDocument.xmpMetadata.rawData;
xmp=xmp.substr(xmp.search("subject")+ 8 );
xmp=xmp.substr(0,xmp.search("subject")-5);
var keyList =[];
for(var a=0;a<10;a++){
var key='';
key =parseMetadata(xmp, 'rdf:li');
if(key == '')break;
xmp=xmp.substr(xmp.search("/rdf")+7);
if(key != '') keyList.push(key);
}
addKeyWord(keyList.toString(),newKey);
function parseMetadata(xmp, tag) {
var re = new RegExp('<' + tag + '>(.+)</' + tag + '>');
var m = xmp.match(re);
if (!m) {
re = new RegExp("<[^:]+:" + tag + ">(.+)</[^:]+:" + tag + '>');
m = this.xmp.match(re);
}
return (m ? m[1] : '');
Ramon. thanks to you too. Your contribution was invaluable.
#target photoshop
///////////////////////////////////////////////////////////
//Put your new keyword below.
newKey = "TestKeyWord";
///////////////////////////////////////////////////////////
var xmp = activeDocument.xmpMetadata.rawData;
xmp=xmp.substr(xmp.search("subject")+ 8 );
xmp=xmp.substr(0,xmp.search("subject")- 5 );
var keyList =[];
for(var a=0;a<100;a++){
var key='';
key =parseMetadata(xmp, 'rdf:li');
if(key == '')break;
xmp=xmp.substr(xmp.search("/rdf")+ 7 );
if(key != '') keyList.push(key);
}
addKeyWord(keyList.toString(),newKey);
function parseMetadata(xmp, tag) {
var re = new RegExp('<' + tag + '>(.+)</' + tag + '>');
var m = xmp.match(re);
if (!m) {
re = new RegExp("<[^:]+:" + tag + ">(.+)</[^:]+:" + tag + '>');
m = this.xmp.match(re);
}
return (m ? m[1] : '');
};
function addKeyWord(Keys,newKey) {
var desc19 = new ActionDescriptor();
var ref8 = new ActionReference();
ref8.putProperty( charIDToTypeID('Prpr'), charIDToTypeID('FlIn') );
ref8.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
desc19.putReference( charIDToTypeID('null'), ref8 );
var desc20 = new ActionDescriptor();
var list3 = new ActionList();
if (Keys.length>0){Keys=Keys.split(',');
Hope you're safe and away from those fires.