• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
1

Script to Export and Import Keywords and Metadata

Community Beginner ,
Aug 02, 2005 Aug 02, 2005

Copy link to clipboard

Copied

I have a requirement to mass upload and download keywords and various metadata fields (i.e. File Name, Date Created, City, Country, Document, Title, etc.) into an external database from the Adobe Bridge. Ideally it would be compatible to .txt, .csv, etc type of database format. Currently I have to accomplish this task one at a time. I have an immediate need to upload 1000 plus pictures and various text fields into my website to share with others and be able to sell my pictures online.

My immediate is for exporting the metadata and keywords.

Does anyone know of a script that is aavailable?

Arnold
TOPICS
Scripting

Views

9.1K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 02, 2005 Aug 02, 2005

Copy link to clipboard

Copied

#target bridge

if (BridgeTalk.appName == "bridge")
{
// Let's create our menu
var menu = MenuElement.create( "command", "Export File List to Spreadsheet", "at the end of Tools");
menu.onSelect = function(m) {
try
{
// Let's ask what the name of the output file
var f = File.saveDialog("Export file list to:", "Comma delimited file:*.CSV");

// Write the column headings
f.open("w");
f.writeln("#,name,path,Author, Country, Location, CountryCode, Lens");

// Let's get a list of all the visible thumbnails
var items = app.document.visibleThumbnails;

for (var i = 0; i < items.length; ++i) { var item = items; f.writeln(i + 1, ",\"", item.name, "\",\"", item.path.replace(/\"/g, "\"\""), "\",\"", ListMetadata(item), "\",\"", "\"" ); } f.close(); } catch(e) { } } menu.onDisplay = function(m) { m.enabled = app.document.contentPaneMode == "filesystem" && app.document.visibleThumbnails.length > 0;
}
}

function ListMetadata(tn)
{
md = tn.metadata;
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varAuthor = md.Author + "\",\"" + md.Country + "\",\"";

md.namespace = "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/" ;
varLocation = md.Location + "\",\"" + md.CountryCode + "\",\"" ;

md.namespace = "http://ns.adobe.com/exif/1.0/aux/";
varLens = md.Lens ;

return varAuthor + varLocation + varLens ;

}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 22, 2011 Sep 22, 2011

Copy link to clipboard

Copied

hey john  or anyone for that matter can u write me a quick script that just exports the file name and the photo rating for each photo in bridge to csv.. i tried altering an existing script but it never worked.. i would appreciate it if i could name the csv and save it to a specific location but its not too important as beggers cant be choosers and just being able to export both those things to the same location in a csv would be killer thank you in advance.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Sep 22, 2011 Sep 22, 2011

Copy link to clipboard

Copied

LATEST

There are several scripts that will do.

The first field is always the filename

http://www.scriptsrus.talktalk.net/Extract%20Metadata.htm

There are a couple of scripts here that should as well...

http://www.ps-scripts.com/bb/viewtopic.php?f=19&t=2365&sid=7cbc4e7da597d9e83c6c833fe5cb787a

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 03, 2005 Aug 03, 2005

Copy link to clipboard

Copied

John,

Thank you for your script. I was able to figured out how to add the additionals fields to the script you provided me. It took me a while since I am not a programmer.

Thanks again,

Arnold

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 03, 2005 Aug 03, 2005

Copy link to clipboard

Copied

Glad it helped Arnold - I hoped posting it "as is" would help you.

John

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 04, 2005 Aug 04, 2005

Copy link to clipboard

Copied

John,

I have been adding to and modifying the script you supplied to me the other day and was able to add 24 fields to the Export file. Below is the updated script I have been working for over 8 hours.

================================================

#target bridge

if (BridgeTalk.appName == "bridge")
{
// Let's create our menu
var menu = MenuElement.create( "command", "Export File List to Spreadsheet", "at the end of Tools");
menu.onSelect = function(m) {
try
{
// Let's ask what the name of the output file
var f = File.saveDialog("Export file list to:", "Comma delimited file:*.CSV");

// Write the column headings
f.open("w");
f.writeln("Seq Number,New File Name,New File Name Path,Original File Name,Org Dt & Tm,ISO,Exposure Time,F Stop,EV,Exposure Program,Meter Mode,Focal Length,Flash,Lens,Author, Author's Position,City,Country,Description,Title,Orientation,Width,Height,Rating,Label");

// Let's get a list of all the visible thumbnails
var items = app.document.visibleThumbnails;

for (var i = 0; i < items.length; ++i) { var item = items; f.writeln(i + 1, ",\"", item.name, "\",\"", item.path.replace(/\"/g, "\"\""), "\",\"", ListMetadata(item), "\",\"", "\"" ); } f.close(); } catch(e) { } } menu.onDisplay = function(m) { m.enabled = app.document.contentPaneMode == "filesystem" && app.document.visibleThumbnails.length > 0;
}
}

function ListMetadata(tn)
{
md = tn.metadata;
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varAuthor = md.Author + "\",\"" + md.AuthorsPosition + "\",\"" + md.City + "\",\"" + md.Country + "\",\"";

md.namespace = "http://ns.adobe.com/exif/1.0/aux/";
varLens = md.Lens + "\",\"" ;

md.namespace = "http://purl.org/dc/elements/1.1/";
vartitle = md.title + "\",\"" + md.description + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/mm/"
VarPreservedFileName = md.PreservedFileName + "\",\"" ;

md.namespace = "http://ns.adobe.com/exif/1.0/"
VarDateTimeOriginal = md.DateTimeOriginal + "\",\"" + md.ISOSpeedRatings + "\",\"" + md.ExposureTime + "\",\"" + md.FNumber + "\",\"" + md.ExposureBiasValue + "\",\"" + md.ExposureProgram + "\",\"" + md.MeteringMode + "\",\"" + md.FocalLengthIn35mmFilm + "\",\"" + md.Flash + "\",\"" ;

md.namespace = "http://ns.adobe.com/tiff/1.0/"
varOrientation = md.Orientation + "\",\"" + md.ImageWidth + "\",\"" + md.ImageLength + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/"
varRating = md.Rating + "\",\"" + md.Label ;

return VarPreservedFileName + VarDateTimeOriginal + varLens + varAuthor + vartitle + varOrientation + varRating;

}

==========================================

I still have 3 files I would like to add to this script but I hit a brick wall. Below are the 3 fields I would like to add this script:

1. File size
2. Did the flash fire?
3. Keywords (I need to take the multiple rows that the bridge stores them in and put them in the same record the other fields are in and separate the keywords by a space or some other character.

All help will be much appreciate. If you can't, maybe you can direct me to somebody who could help me.

Thanks again,

Arnold

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 04, 2005 Aug 04, 2005

Copy link to clipboard

Copied

Thanks for posting it Arnold. The keywords will be awkward, as they're going to be a multivalue field. So you'll need to calculate their "length" (count) and use that in a for loop like in the ListMetadata function, converting it into a comma separated string. I'd probably do it as a separate function, called from a line in ListMetadata. Depending on what you ultimately want to do, it may even be easier to export the filename and keywords as a separate file so it can be imported as another table into Access.

Isn't Flash under the exif properties? You may be able to get at it by setting the namespace to http://ns.adobe.com/exif/1.0/Flash/ and then looking for Fired.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 05, 2005 Aug 05, 2005

Copy link to clipboard

Copied

From my original ListMetadata function:
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varKeywords = ListKeywords(md) + "\",\"" ;

A new function:

function ListKeywords(md)
{
var varKeywords = "" ;
for (var i = 0; i < md.Keywords.length; ++i)
{
varKeywords = varKeywords + md.Keywords + ", ";
}
//strip off final comma and space
varKeywords = varKeywords.substring( 0, varKeywords.length-2);

return varKeywords ;
}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 05, 2005 Aug 05, 2005

Copy link to clipboard

Copied

John,

Thanks for your quick response. Below is the script I just modified this morning. When looking in the keyword field, it returns the word "undefined" for all records.

I tried that yesterday and it didn't work. When looking at the Advance file info on Adobe Bridge I see the below format which had 2 levels. All the others I used only had one. Since I am not a programmer, I need help on that part of the script.

==========================

EXIF Properties (exif,http://ns.adobe.com/exif/1.0/)
- exif:Flash
- exif:Fired: True

====================================

Any luck on determining how to obtain file size.

Again thank you so much for supporting me on my project,

Arnold

=====================
#target bridge

if (BridgeTalk.appName == "bridge")
{
// Let's create our menu
var menu = MenuElement.create( "command", "Export CSV File", "at the end of Tools");
menu.onSelect = function(m) {
try
{
// Let's ask what the name of the output file
var f = File.saveDialog("Export file list to:", "Comma delimited file:*.CSV");

// Write the column headings
f.open("w");
f.writeln("Seq Number,New File Name,New File Name Path,Original File Name,Org Dt & Tm,ISO,Exposure Time,F Stop,EV,Exposure Program,Meter Mode,Focal Length,Flash,Lens,Author, Author's Position,City,Country,Description,Title,Orientation,Width,Height,Rating,Label");

// Let's get a list of all the visible thumbnails
var items = app.document.visibleThumbnails;

for (var i = 0; i < items.length; ++i) { var item = items; f.writeln(i + 1, ",\"", item.name, "\",\"", item.path.replace(/\"/g, "\"\""), "\",\"", ListMetadata(item), "\",\"", "\"" ); } f.close(); } catch(e) { } } menu.onDisplay = function(m) { m.enabled = app.document.contentPaneMode == "filesystem" && app.document.visibleThumbnails.length > 0;
}
}

function ListMetadata(tn)
{
md = tn.metadata;
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varAuthor = md.Author + "\",\"" + md.AuthorsPosition + "\",\"" + md.City + "\",\"" + md.Country + "\",\"";

md.namespace = "http://ns.adobe.com/exif/1.0/aux/";
varLens = md.Lens + "\",\"" ;

md.namespace = "http://purl.org/dc/elements/1.1/";
vartitle = md.title + "\",\"" + md.description + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/mm/"
VarPreservedFileName = md.PreservedFileName + "\",\"" ;

md.namespace = "http://ns.adobe.com/exif/1.0/"
VarDateTimeOriginal = md.DateTimeOriginal + "\",\"" + md.ISOSpeedRatings + "\",\"" + md.ExposureTime + "\",\"" + md.FNumber + "\",\"" + md.ExposureBiasValue + "\",\"" + md.ExposureProgram + "\",\"" + md.MeteringMode + "\",\"" + md.FocalLengthIn35mmFilm + "\",\"" + md.Flash + "\",\"" ;

md.namespace = "http://ns.adobe.com/tiff/1.0/"
varOrientation = md.Orientation + "\",\"" + md.ImageWidth + "\",\"" + md.ImageLength + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/"
varRating = md.Rating + "\",\"" + md.Label ;

md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varKeywords = ListKeywords(md) + "\",\"" ;

function ListKeywords(md)
{
var varKeywords = "" ;
for (var i = 0; i < md.Keywords.length; ++i) { varKeywords = varKeywords + md.Keywords + ", "; } //strip off final comma and space varKeywords = varKeywords.substring( 0, varKeywords.length-2);
}

return VarPreservedFileName + VarDateTimeOriginal + varLens + varAuthor + vartitle + varOrientation + varRating + varKeywords;

}

==============================

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 06, 2005 Aug 06, 2005

Copy link to clipboard

Copied

You see to have placed the keywords function inside the existing function. Not sure if this is right - I put it outside.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 07, 2005 Aug 07, 2005

Copy link to clipboard

Copied

John,

I try to put it outside and it still didn't work. See below for my new script. I would reeally, really .... really appreciate if you could place the Keyword script in the correct location.

Thanks,

Arnold

=======================

#target bridge

if (BridgeTalk.appName == "bridge")
{
// Let's create our menu
var menu = MenuElement.create( "command", "Export CSV File", "at the end of Tools");
menu.onSelect = function(m) {
try
{
// Let's ask what the name of the output file
var f = File.saveDialog("Export file list to:", "Comma delimited file:*.CSV");

// Write the column headings
f.open("w");
f.writeln("Seq Number,New File Name,New File Name Path,Original File Name,Org Dt & Tm,ISO,Exposure Time,F Stop,EV,Exposure Program,Meter Mode,Focal Length,Flash,Lens,Author, Author's Position,City,Country,Description,Title,Orientation,Width,Height,Rating,Label,KeyWords");

// Let's get a list of all the visible thumbnails
var items = app.document.visibleThumbnails;

for (var i = 0; i < items.length; ++i) { var item = items; f.writeln(i + 1, ",\"", item.name, "\",\"", item.path.replace(/\"/g, "\"\""), "\",\"", ListMetadata(item), "\",\"", "\"" ); } f.close(); } catch(e) { } } menu.onDisplay = function(m) { m.enabled = app.document.contentPaneMode == "filesystem" && app.document.visibleThumbnails.length > 0;
}
}

function ListMetadata(tn)
{
md = tn.metadata;
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varAuthor = md.Author + "\",\"" + md.AuthorsPosition + "\",\"" + md.City + "\",\"" + md.Country + "\",\"";

md.namespace = "http://ns.adobe.com/exif/1.0/aux/";
varLens = md.Lens + "\",\"" ;

md.namespace = "http://purl.org/dc/elements/1.1/";
vartitle = md.title + "\",\"" + md.description + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/mm/"
VarPreservedFileName = md.PreservedFileName + "\",\"" ;

md.namespace = "http://ns.adobe.com/exif/1.0/"
VarDateTimeOriginal = md.DateTimeOriginal + "\",\"" + md.ISOSpeedRatings + "\",\"" + md.ExposureTime + "\",\"" + md.FNumber + "\",\"" + md.ExposureBiasValue + "\",\"" + md.ExposureProgram + "\",\"" + md.MeteringMode + "\",\"" + md.FocalLengthIn35mmFilm + "\",\"" + md.Flash + "\",\"" ;

md.namespace = "http://ns.adobe.com/tiff/1.0/"
varOrientation = md.Orientation + "\",\"" + md.ImageWidth + "\",\"" + md.ImageLength + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/"
varRating = md.Rating + "\",\"" + md.Label ;

return VarPreservedFileName + VarDateTimeOriginal + varLens + varAuthor + vartitle + varOrientation + varRating;

}

function ListKeywords(md)
{

var varKeywords = "" ;
for (var i = 0; i < md.Keywords.length; ++i) { varKeywords = varKeywords + md.Keywords + ", "; } //strip off final comma and space varKeywords = varKeywords.substring( 0, varKeywords.length-2);

md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varKeywords = ListKeywords(md) + "\",\"" ;

return varKeywords ;
}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 07, 2005 Aug 07, 2005

Copy link to clipboard

Copied

In ListMetadata, you dropped out the reference to ListKeywords. I just ran this and exported keywords as expected.

#target bridge

if (BridgeTalk.appName == "bridge")
{
// Let's create our menu
var menu = MenuElement.create( "command", "Export CSV File", "at the end of Tools");
menu.onSelect = function(m) {
try
{
// Let's ask what the name of the output file
var f = File.saveDialog("Export file list to:", "Comma delimited file:*.CSV");

// Write the column headings
f.open("w");
f.writeln("Seq Number,New File Name,New File Name Path,Original File Name,Org Dt & Tm,ISO,Exposure Time,F Stop,EV,Exposure Program,Meter Mode,Focal Length,Flash,Lens,Author, Author's Position,City,Country,Description,Title,Orientation,Width,Height,Rating,Label,KeyWords");

// Let's get a list of all the visible thumbnails
var items = app.document.visibleThumbnails;

for (var i = 0; i < items.length; ++i) { var item = items; f.writeln(i + 1, ",\"", item.name, "\",\"", item.path.replace(/\"/g, "\"\""), "\",\"", ListMetadata(item), "\",\"", "\"" ); } f.close(); } catch(e) { } } menu.onDisplay = function(m) { m.enabled = app.document.contentPaneMode == "filesystem" && app.document.visibleThumbnails.length > 0;
}
}

function ListMetadata(tn)
{
md = tn.metadata;
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varAuthor = md.Author + "\",\"" + md.AuthorsPosition + "\",\"" + md.City + "\",\"" + md.Country + "\",\"";
varKeywords = ListKeywords(md);

md.namespace = "http://ns.adobe.com/exif/1.0/aux/";
varLens = md.Lens + "\",\"" ;

md.namespace = "http://purl.org/dc/elements/1.1/";
vartitle = md.title + "\",\"" + md.description + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/mm/"
VarPreservedFileName = md.PreservedFileName + "\",\"" ;

md.namespace = "http://ns.adobe.com/exif/1.0/"
VarDateTimeOriginal = md.DateTimeOriginal + "\",\"" + md.ISOSpeedRatings + "\",\"" + md.ExposureTime + "\",\"" + md.FNumber + "\",\"" + md.ExposureBiasValue + "\",\"" + md.ExposureProgram + "\",\"" + md.MeteringMode + "\",\"" + md.FocalLengthIn35mmFilm + "\",\"" + md.Flash + "\",\"" ;

md.namespace = "http://ns.adobe.com/tiff/1.0/"
varOrientation = md.Orientation + "\",\"" + md.ImageWidth + "\",\"" + md.ImageLength + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/"
varRating = md.Rating + "\",\"" + md.Label ;

return VarPreservedFileName + VarDateTimeOriginal + varLens + varAuthor + vartitle + varOrientation + varRating + varKeywords;

}

function ListKeywords(md)
{

var varKeywords = "" ;
for (var i = 0; i < md.Keywords.length; ++i) { varKeywords = varKeywords + md.Keywords + ", "; } //strip off final comma and space varKeywords = varKeywords.substring( 0, varKeywords.length-2);

md.namespace = "http://ns.adobe.com/photoshop/1.0/";
varKeywords = ListKeywords(md) + "\",\"" ;

return varKeywords ;
}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 07, 2005 Aug 07, 2005

Copy link to clipboard

Copied

John,

I install the script you just provided me in the Adobe StartupScripts folder where I have been testing all my other updates. This recent script only gives me one record and stops on KeyWords field and has the word "undefined" in it. What am I doing wrong??

Arnold

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 08, 2005 Aug 08, 2005

Copy link to clipboard

Copied

There were a couple of errors in the script.

Bob
Adobe WAS Scripting

Try this, save it to your startup scripts folder:

#target bridge

if (BridgeTalk.appName == "bridge" ) {

// Let's create our menu
var menu = MenuElement.create( "command", "Export CSV File", "at the end of Tools");
menu.onSelect = function(m) {
try {
// Let's ask what the name of the output file
var f = File.saveDialog("Export file list to:", "Comma delimited file:*.CSV");

if ( !f ) { return; }

// Write the column headings
f.open("w");
f.writeln("Seq Number,New File Name,New File Name Path,Original File Name,Org Dt & Tm,ISO,Exposure Time,F Stop,EV,Exposure Program,Meter Mode,Focal Length,Flash,Lens,Author, Author's Position,City,Country,Description,Title,Orientation,Width,Height,Rating,Label,KeyWords");


// Let's get a list of all the visible thumbnails
var items = app.document.visibleThumbnails;

for (var i = 0; i < items.length; ++i) {
var item = items;
f.writeln(i + 1, ",\"", item.name, "\",\"", item.path.replace(/\"/g, "\"\""), "\",\"", ListMetadata(item), "\",\"", "\"" );
}

f.close();
} catch(e) {
}
}
}

function ListMetadata(tn) {

md = tn.metadata;
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
var varAuthor = md.Author + "\",\"" + md.AuthorsPosition + "\",\"" + md.City + "\",\"" + md.Country + "\",\"";

var varKeywords = ListKeywords(md);

md.namespace = "http://ns.adobe.com/exif/1.0/aux/";
var varLens = md.Lens + "\",\"" ;

md.namespace = "http://purl.org/dc/elements/1.1/";
var vartitle = md.title + "\",\"" + md.description + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/mm/"
var VarPreservedFileName = md.PreservedFileName + "\",\"" ;

md.namespace = "http://ns.adobe.com/exif/1.0/"
var VarDateTimeOriginal = md.DateTimeOriginal + "\",\"" + md.ISOSpeedRatings + "\",\"" + md.ExposureTime + "\",\"" + md.FNumber + "\",\"" +
md.ExposureBiasValue + "\",\"" + md.ExposureProgram + "\",\"" + md.MeteringMode
+ "\",\"" + md.FocalLengthIn35mmFilm + "\",\"" + md.Flash + "\",\"" ;

md.namespace = "http://ns.adobe.com/tiff/1.0/"
var varOrientation = md.Orientation + "\",\"" + md.ImageWidth + "\",\"" +
md.ImageLength + "\",\"" ;

md.namespace = "http://ns.adobe.com/xap/1.0/"
var varRating = md.Rating + "\",\"" + md.Label + "\",\"";

return VarPreservedFileName + VarDateTimeOriginal + varLens + varAuthor + vartitle + varOrientation + varRating + varKeywords;

}

function ListKeywords(md) {
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
var Keywords = md.Keywords;

var varKeywords = "" ;
for ( var i = 0; i < Keywords.length; ++i ) {
varKeywords = varKeywords + Keywords + ", ";
}
//strip off final comma and space varKeywords =
varKeywords.substring( 0, varKeywords.length-2);

return varKeywords ;
}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 08, 2005 Aug 08, 2005

Copy link to clipboard

Copied

Robert,

Thanks for your quick response. The script you modified works fine.

Can I impose on you to add to this script for the picture file size and flash elements (i.e. did strobe light fire, mode - auto, etc.)?

Thanks again,

Arnold

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guru ,
Sep 19, 2005 Sep 19, 2005

Copy link to clipboard

Copied

Super stuff Bob :)
heathrowe

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Nov 24, 2005 Nov 24, 2005

Copy link to clipboard

Copied

If I may kindly piggyback on all the work Bob & Arnold have done: I too have been looking for a way to be able to provide clients with the medadata for images from their shoot, and the script that you have just made looks like IT. I have never worked with scripts, and it would help me if you could post three things for me (or is there an easier way to get it to me?)
1: the final, corrected script you have worked out, and
2: where to go for an informative guide about scripts that will tell me, from the begining, how to make one, install this one, and troubleshoot them.
3. How I can download all 14 of your postings in one file, so I can try to trace your prosess? (Seems like this is a good tool for the next Bridge revision.)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Nov 25, 2005 Nov 25, 2005

Copy link to clipboard

Copied

Chris,

Barredrock software (www.barredrocksoftware.com) has a script for sale that is a generalized metadata exporter. It will do what you need in a more general case.

I don't know what they charge for it, but I don't think anything on their site is more that $15.

The only definitive guide is the bridge scripting guide that is on your CD, and download-able from Adobe Exchange. You can also purchase a hardcopy from Adobe Press.

At the bottom of the forum message display you'll see "Show All Messages" on the right side of the same bar that contains the "First, Previous, Next, Last" options.

Bob
Adobe Workflow Scripting

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Nov 25, 2005 Nov 25, 2005

Copy link to clipboard

Copied

Thanks Bob. Barredrock seems like just the ticket for my needs. That Scripting Guide is a little intimitating. ( I avoided having to learn dos by going Mac; avoided having to learn html with Dreamweaver; now will I have to confront scripting...?)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Nov 26, 2005 Nov 26, 2005

Copy link to clipboard

Copied

Chris,

Should you learn scripting? Well, it kinda depends on what you do and what you need. There are folks out there who will write scripts for you, some for free, some for money, but if you really need something now and it doesn't exist, knowing how to script could be invaluable to you. If the script wasn't available from Barred Rock, you'd be looking at having weeks of monkey-level work. (weeks because you'd drive yourself crazy if you tried to do it one sitting). To you, Barredrock's script is worth a lot.

To me (and I am very biased here), the most important features of CS2 and the CS2 products are Bridge and the new scripting feature set. Here's why...

Bridge is virtually completely scriptable. While there are a couple of exceptions, just about anything you might want to do is possible via the scripting interface. The more I get to know the folks who implemented these features, the more impressed I am with the depth of their original vision.

One of the features, BridgeTalk, allows scripts of arbitrary complexity to be executed on other Adobe products. Stated another way, you can write a script that will be executed from Bridge that will be sent from bridge to Photoshop (or InDesign, GoLive, Illustrator). That script will be executed in the target environment, and any results returned back to Bridge. You can also go from the point products to each other.

If you combine the two concepts, you have an environment that allows you to do almost anything. You can add features to Bridge via scripting, and anything you might need from any of the Adobe products is available to you. That is a fantastic concept. From a product line capability standpoint, Bridge is nothing less than sheer brilliance because it provides the hub necessary to do almost anything.

Think of anything you might have to do repetetively on a set of files. Go to photoshop to standardize image, size, resolution, color mode, etc. Take the new images and put them in a contact sheet in ID, or generate some HTML for a web gallery, or...

Adobe Stock Photos is a script. You're working in InDesign, and need a stock photo - you flip to Bridge, search, purchase, and place. It can't get much easier than that.

Since Bridge is in it's first incarnation, and it's early in the 1.0 product cycle, we're only now starting to see scripts for Bridge come available. As time progresses, the number of scripts available will only grow. I see the day coming when folks will be selecting from a mountain of scripts to make Bridge do exactly what they need in their daily work. Each user's Bridge installation will be uniquely tailored to their needs. This capability is only possible by scripting.

The example scripts we wrote (Contact Sheet for ID, Export to Flash, Import from Camera) were really just example scripts to show how automation features could be added to Bridge. Eventually (and experience tells us it will happen), people will take these examples and build some wonderful new widgets. It just takes time to get the ball rolling.

Should you take the time and effort to learn it? It depends on you and your needs. I can guarantee you that it will be time well-spent and you will not regret it. I would suggest purchasing a JavaScript book first. Once you understand the language, the scripting guide won't seem so formidable.

Bob
Adobe Workflow Scripting

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 24, 2006 Apr 24, 2006

Copy link to clipboard

Copied

John, Bob,

wow, I just got hot all over reading this thread. Arnold, thank you for starting it! I can't believe it, it is exactly the type of thing that I was looking for. It worked perfectly and sucked right up into my mySQL DB where I can also output it as XML. LOVELY!

I look forward to breaking the code apart a bit to see what you did and how you did it. I will look through the bridge scripting reference guide to figure out how to get it to work ONLY on images that are selected. I get really nervous looking at lines like: md.namespace = "http://ns.adobe.com/xap/1.0/mm/" which make me feel like we're somehow/for some reason pointing to a URL that may be broken in the future, but what do I know?

Thanks guys for such great work! Shoot, now another thing to learn!

-Alastair

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Apr 25, 2006 Apr 25, 2006

Copy link to clipboard

Copied

Alastair_Halliday@adobeforums.com wrote:
>
> I get really nervous looking at lines like: md.namespace = "http://ns.adobe.com/xap/1.0/mm/" which make me feel like we're somehow/for some reason pointing to a URL that may be broken in the future, but what do I know?
>
Don't worry. It's the URL that's important, not the content that may or may not
be at that URL.

-X

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Apr 27, 2006 Apr 27, 2006

Copy link to clipboard

Copied

thanks X. Hey, so where can I find a list of the variables that I can get access to? I know that The guys above have listed them in the code, but I want some documentation. Any idea?

-a

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 12, 2007 Jan 12, 2007

Copy link to clipboard

Copied

I am having trouble locating the extension on the site you had mentioned, about exporting metadata from Adobe Bridge to another application. If you have any further more discript detail to pick up the code, it would be extremely helpful!!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines