Filename To Description

Script for Adobe Photoshop
Latest update 12/10/2023, version 3.4

More than once I’ve encountered projects using image filenames as a means to convey caption text. This practice leads to some incredibly long filenames. A recent project had filenames so long that once down a few subfolders, the path length exceeded the maximum my Windows server could handle. It was a mess to clean up, which became the reason to create this script.

Of course the proper way to store caption text is in the file’s metadata. A common practice is to store captions in the metadata field Description. That is what I’ve programmed this script to do.

  • Copy filename to metadata description
  • Option to remove number prefix
  • Option to add closing period if absent
  • Append to current description or replace
  • Regular expression replacement
  • Save and restore all settings
Filename To Description
Help me keep making new scripts by supporting my work. Click the PayPal button to contribute any amount you choose. Thank you. William Campbell

How-to Video

How to use the script

The interface has four sections: Images, Options, Regex replace, and Settings. Enable desired options and click the OK button to begin. During processing, a progress bar is displayed. To cancel, press the ESC key. Otherwise, when complete, the number of images processed is reported. If any errors occur, a log file is written to the user desktop.

Section 1: Images

The folder of images to process. Click the button Folder… to select the desired location. If the option Include subfolders is checked, all folders within the selected folder are also processed. For each image discovered, the filename is examined, transformed as instructed, and the resulting text is inserted into the file metadata field Description. NOTE: filenames are not altered, only copied to the file’s metadata. Use other tools to shorten filenames if desired (see more below).

Section 2: Options

Remove number prefix — recognizes filenames that begin with numbers and optionally a single dot or lowercase letter. For example "15 the filename", "15.3 the filename", "18a the filename", "20.5b the filename". When such a pattern is detected, the prefix is removed. Prefixes typically serve to inform the designer of chapters or sections where images belong, information not ultimately preserved or used in captions. If intended to appear in captions, disable the option and number prefixes are included in the description text.

Append closing period if absent — the text copied to the description does not include the file extension, nor the separating dot (period) between it and the file name. Unless the filename has two dots (one acting as full stop, the next the name/extension separator), the text will lack a period. Enable this option to add one if missing.

Append to current metadata description (rather than replace) — if enabled, the current description is preserved, and text from the file name is added at the end of the current description. When disabled, the current metadata description is replaced.

Section 3: Regex replace

Also known as GREP. This section provides entry of up to three Find/Replace pairs, and for each, the switches g (greedy) and i (case-insensitive). The defined replacements are performed in the order shown on screen. Leave blank any (or all) not needed, otherwise enter a valid regular expression in one or all, along with a valid replacement expression for each. Filenames are tested against the expressions and transformed accordingly. For example, to remove parenthetical information (perhaps instructions to the designer, more information that doesn’t belong in a filename). In this example, the regular expression (.*)\([^)]*\)\W*(.*) finds and captures text near other text wrapped in parenthesis. The Replace expression $1$2 is the text captured less the parenthetical. The result is "(Put this in chapter one) Lake at sunset.tif" becomes "Lake at sunset" (the script already ignores the file extension). For only a parenthetical at the beginning of the filename, swap the first capture group for a start of line instruction: ^\([^)]*\)\W*(.*) and replacement $1 in that case. The range of possible replacements is extensive for users familiar with regular expressions.

Section 4: Settings

The current options may be saved and restored later. Select from the Load drop-down list to choose saved settings, and the current options are updated. Click the Delete button, and the saved settings selected in the Load drop-down list are permanently removed. Click the Save button, provide a name for the settings, and the current options are preserved. If the name already exists, the user may choose to replace the saved settings. Or click the checkbox Replace settings, and choose the settings to replace.

The script provides default saved settings named [Default]. These settings cannot be deleted but may be updated to the current values. Save settings, click the checkbox Replace settings, and choose [Default].

Next steps

This script is the first step toward resolving long filenames meant to convey photo captions. With the captions now preserved, the next step is to shorten the filenames. If the images are not yet placed in a layout, use a file renaming utility to truncate the filenames. A popular utility for macOS is A Better Finder Rename, and for Windows, Better File Rename. However, if the images have been placed into a page layout, renaming the files by any means causes the links to become broken and time-consuming to resolve. Fortunately, if the layout application is InDesign, there is a solution. See the InDesign scripts Links Shorten Filenames and Links GREP Rename. Also see the InDesign script Links Remove Number Prefix, which may be useful as well. After preserving the captions in the file metadata using this script, use the related InDesign scripts to shorten the filenames and update each link.

Help me keep making new scripts by supporting my work. Click the PayPal button to contribute any amount you choose. Thank you. William Campbell
Filename To Description

Change log: filename-to-description.txt

For help installing scripts, see How to Install and Use Scripts in Adobe Creative Cloud Applications.

IMPORTANT: scripts are developed for the latest Adobe Creative Cloud applications. Many scripts work in CC 2018 and later, even some as far back as CS6, but may not perform as expected, or run at all, when used in versions prior to 2018. Photoshop features Select Subject and Preserve Details 2.0 definitely fail prior to CC 2018 (version 19) as the features do not exist in earlier versions. For best results use the latest versions of Adobe Creative Cloud applications.

IMPORTANT: by downloading any of the scripts on this page you agree that the software is provided without any warranty, express or implied. USE AT YOUR OWN RISK. Always make backups of important data.

IMPORTANT: fees paid for software products are the purchase of a non-exclusive license to use the software product and do not grant the purchaser any degree of ownership of the software code. Author of the intellectual property and copyright holder William Campbell retains 100% ownership of all code used in all software products regardless of the inspiration for the software product design or functionality.