Help Releases Support

Language

Buy Now

Metadata and Templates / Template Variables

Metadata and Templates

Template Variables

Template variables insert information from each item, the current job, or the current date and time into filenames, folders, Apple Photos albums, and metadata text.

Where Variables Are Supported

Depending on the tool and destination, variables are available in:

  • Ingest filename and destination templates
  • Workflow subfolder, filename, and Apple Photos album templates
  • Quick Transfer and Quick Rename templates
  • IPTC template text fields

The variable picker in a template field shows the variables available in the current version of PhotoCuller.

Reusable Filename and Folder Templates

On Mac, open the { } menu beside a supported filename or folder field. Choose Save Current as Preset…, name the pattern, and save. Choose its name from the same menu to reuse it. Manage Presets… lets you edit, duplicate, rename, or delete patterns; manager edits save automatically.

On iPad and iPhone, use the bookmark menu in the template editor, or Settings > Filename & Folder Templates.

Filename and folder presets are separate. Choosing one copies its pattern into the field; later preset edits do not rewrite saved workflows. These presets store patterns, not the job values in a Session Variable Preset. Check the destination preview before running.

Basic Syntax

Put each variable in braces and combine it with static text:

{Year}/{MonthPadded}/{FileName}

Example output:

2026/02/DSCF1234

Native variable names are case-sensitive. In Filename, enter the filename stem only; PhotoCuller preserves or adds the appropriate file extension.

For capture-date variables, PhotoCuller uses the best date available in this order: EXIF capture date, IPTC date created, XMP create date, then the selected file’s creation date. Variables that require EXIF camera metadata remain unavailable when that metadata is missing.

Missing Values

In path and filename output, an unavailable variable normally resolves to Unknown. Use default when you need a different fallback:

{CameraModel | default:"NoCamera"}

You can mix variables and static text freely. Use / for nesting in Subfolder.

Practical Examples

Date and client folder structure

{Year}/{MonthPadded}-{MonthName}/{Session.Client}

Sequence-based delivery naming

{Session.Client}_{FullDate}_{Sequence}

High-speed sports naming

{FullDate}_{Session.ProjectName}_{TimeSort}{SubSecond | first:2}

Example output: 2025-04-05_Football_14304512

Mixed metadata naming

{CameraModel}_{ISO}_{FileName}

Variable Modifiers

Modifiers extract or transform part of a resolved value. Add them inside the braces after a pipe, in the order they should run:

{FileName | first:3 | upper}

For DSC_0001, this produces DSC.

ModifierEffect
pad:NAdd leading zeros to reach a minimum of N digits
first:NKeep the first N characters
last:NKeep the last N characters
from:NKeep text starting at character N (1-based)
chars:N-MKeep the inclusive character range N through M (1-based)
drop first:NRemove the first N characters
drop last:NRemove the last N characters
lowerConvert to lowercase
upperConvert to uppercase
titleConvert to title case
replace:"find" "replacement"Replace matching text
default:"text"Replace a missing, empty, or Unknown value
unknown:"text"Alias for default

Examples:

{FileName | first:8}
{Session.Client | replace:" " "_" | upper}
{CameraModel | default:"NoCamera"}

Use pad:N for leading zeros, where N is the minimum number of digits. For example, {ImageNumber | pad:3} turns 1 into 001 and 42 into 042. Values already at least N digits long are not shortened: 1234 stays 1234 with pad:3. A rename template such as Photo_{ImageNumber | pad:3} combines the grid’s image number with zero padding.

The variable picker includes a modifier editor, so you do not need to type modifier syntax manually.

Photo Mechanic Compatibility

PhotoCuller translates most common Photo Mechanic-style lowercase variables and legacy modifiers automatically. For example:

{year4}-{month0}-{day0}_{job}_{filenamebase:0,8}

is equivalent to:

{FullDate}_{Session.ProjectName}_{FileName | first:8}

Common Photo Mechanic aliases include {filenamebase}, {year4}, {month0}, {day0}, {job}, {model}, and {rating}. A few niche or application-specific Photo Mechanic variables are not supported, so always verify the live preview before running a production ingest or rename.

Inline Code Replacement Lookup

Look up a value from a named code replacement table with:

{CodeReplacement:TableName:Value}

Add #N to select a later TSV output column:

{CodeReplacement:cities:city_sf#2}

The lookup value can itself be a variable:

{CodeReplacement:clients:{Session.Client}}
{CodeReplacement:clients:{Session.Client}#2}

If the table or code is unavailable, the lookup token remains unchanged. See Code Replacements for table setup and delimiter-based replacements.

Capture Date and Time

These values describe the selected item’s best available capture date. Padded month and day variables are useful when filenames must sort chronologically.

VariableDescriptionExample
{Year}Four-digit year2025
{YearShort}Two-digit year25
{MonthNumber}Month without padding4
{MonthPadded}Two-digit month04
{MonthShort}Abbreviated month nameApr
{MonthName}Full month nameApril
{MonthNameAP}AP-style abbreviated monthApr.
{Day}Day without padding5
{DayPadded}Two-digit day05
{FullDate}Date as YYYY-MM-DD2025-04-05
{DateSort}Date as YYYYMMDD20250405
{DateSortDashed}Date as YYYY-MM-DD2025-04-05
{DateMilitary}Military-style date05APR25
{Hour}Two-digit 24-hour clock hour14
{Hour12}12-hour clock hour without padding2
{Hour12Padded}Two-digit 12-hour clock hour02
{Hour24}Two-digit 24-hour clock hour14
{Minute}Two-digit minute30
{Second}Two-digit second45
{SubSecond}EXIF sub-second value, preserving its stored precision123
{AMPM}AM or PMPM
{Time}Time as HH-MM-SS14-30-45
{TimeSort}Time as HHMMSS143045
{TimeSortDashed}Time as HH-MM-SS14-30-45
{TimeSortLong}Time as HHMMSSmmm, using milliseconds available in the capture date143045000
{DateTime}Date and time as YYYY-MM-DD_HH-MM-SS2025-04-05_14-30-45
{DayOfWeek}Full weekday nameSaturday
{DayOfWeekShort}Abbreviated weekday nameSat
{WeekOfYear}Two-digit week of year14
{Quarter}Calendar quarterQ2

Current Date and Time

These variables use the date and time when PhotoCuller renders the template, not the item’s capture date.

VariableDescriptionExample
{Today}Current date as YYYY-MM-DD2026-01-02
{TodaySort}Current date as YYYYMMDD20260102
{TodayYear}Current four-digit year2026
{TodayYearShort}Current two-digit year26
{TodayMonth}Current month without padding1
{TodayMonthPadded}Current two-digit month01
{TodayMonthName}Current full month nameJanuary
{TodayMonthShort}Current abbreviated monthJan
{TodayMonthNameAP}Current AP-style monthJan.
{TodayDay}Current day without padding2
{TodayDayPadded}Current two-digit day02
{TodayDayOfWeek}Current full weekday nameFriday
{TodayDayOfWeekShort}Current abbreviated weekdayFri
{TodayMilitary}Current military-style date02JAN26
{Yesterday}Previous date as YYYY-MM-DD2026-01-01
{Tomorrow}Next date as YYYY-MM-DD2026-01-03
{Now}Current time as HH-MM-SS03-04-05
{NowTimeSort}Current time as HHMMSS030405
{NowHour24}Current two-digit 24-hour clock hour03
{NowHour12}Current 12-hour clock hour without padding3
{NowHour12Padded}Current two-digit 12-hour clock hour03
{NowMinute}Current two-digit minute04
{NowSecond}Current two-digit second05
{NowAMPM}Current AM or PMAM
{NowTimeSortLong}Current time as HHMMSSmmm030405123
{NowSubSecond}Current three-digit millisecond value123

File and Item Properties

VariableDescriptionExample
{FileName}Original filename without extensionDSC_0001
{FileExtension}Selected file’s extensionRAF
{FileType}RAW for RAW files, otherwise the extensionRAW
{FileSize}Total size of the item’s files in readable units27MB
{FileSizeBytes}Total size of the item’s files in bytes28311552
{ModifiedDate}File modification date as YYYY-MM-DD2025-04-06
{ModifiedDateSort}File modification date as YYYYMMDD20250406
{ModifiedTime}File modification time as HH-MM-SS07-08-09
{ModifiedTimeSort}File modification time as HHMMSS070809
{ModifiedDateTime}File modification date and time2025-04-06_07-08-09
{Width}Image width in pixels6240
{Height}Image height in pixels4160
{PixelCount}Width multiplied by height25958400
{MaxDimension}Longer image dimension in pixels6240
{Megapixels}Pixel count in megapixels26.0
{AspectRatio}Reduced aspect ratio (: in display, x in paths)3x2
{Rating}Star rating; rejected items use -13
{IsRejected}1 when rejected, otherwise 00
{ColorLabel}XMP color-label nameRed
{IsFlagged}1 when flagged, otherwise 01
{IsFavorite}1 when favorited, otherwise 00
{IsLocked}1 when the selected file is locked1
{FrameNumber}Trailing digits from the original filename0001
{MediaType}Photo or VideoPhoto

Folder and Path

These path variables are available for files opened from folders or mounted drives.

VariableDescriptionExample
{Folder}Containing folder name100FUJI
{FolderNum}Leading digits from the containing folder100
{FolderPath}Full containing folder path/Volumes/SD/DCIM/100FUJI
{FilePath}Full original file path/Volumes/SD/DCIM/100FUJI/DSC_0001.RAF
{ParentFolder}Parent of the containing folderDCIM

Camera and Capture Settings

VariableDescriptionExample
{CameraMake}Camera manufacturerFujifilm
{CameraModel}Camera modelX-T5
{LensModel}Lens modelXF 33mm F1.4
{LensMake}Lens manufacturerFujifilm
{Firmware}EXIF software or firmware valueFirmware 1.20
{SerialNumber}Camera serial number12345678
{ISO}ISO speed400
{Aperture}F-numberf2.8
{ShutterSpeed}Exposure time (/ in display, - in paths)1-250
{FocalLength}Focal length33mm
{FocalLength35}35mm-equivalent focal length50mm
{ExposureComp}Exposure compensation-0.7
{MeteringMode}Metering modeSpot
{ExposureProgram}Exposure programAperture Priority
{Flash}Flash statusFired
{WhiteBalance}White-balance modeAuto
{ColorSpace}Color spacesRGB
{Orientation}EXIF orientationNormal
{Software}EXIF software valueAdobe Lightroom
{ApexAperture}APEX aperture value3
{ApexTime}APEX time value8
{ExposureValue}Exposure value adjusted for ISO11.9
{ExposureValue100}Exposure value at ISO 10010.9
{UserComment}EXIF user commentKodak Portra 400

Video Details

Use these variables to name or describe clips. Examples below show filename output.

VariableMeaningExample
{VideoDuration}Duration in hours-minutes-seconds00-01-23
{VideoDurationSeconds}Duration in seconds83.4
{VideoFrameRate}Frames per second29.97
{VideoCodec}Video compression formatHEVC
{VideoBitRate}Estimated data rate100.0Mbps
{VideoHasAudio}1 if an audio track is present, 0 if absent1
{VideoWhiteBalance}Recorded white-balance temperature5500K
{VideoShutterAngle}Recorded shutter angle180deg

Available values depend on the clip and source. Use a fallback such as {VideoFrameRate;Unknown} when a value may be missing. For capture date, camera, and location, use the existing date, camera, and GPS variables above and below. A Live Photo is still Photo for {MediaType}, even though it includes a video.

GPS and Location

GPS values come from EXIF. The Taken values come from the photo’s IPTC location fields.

VariableDescriptionExample
{GPSLatitude}Latitude with six decimal places48.856600
{GPSLongitude}Longitude with six decimal places2.352200
{GPSAltitude}Altitude in whole metres35m
{GPSCoordinates}Latitude and longitude48.856600,2.352200
{HasGPS}1 when latitude and longitude exist, otherwise 01
{TakenLocation}Sublocation, city, state, and countryFort Point, San Francisco, California, United States
{TakenCity}IPTC citySan Francisco
{TakenState}IPTC state or provinceCalifornia
{TakenCountry}IPTC countryUnited States
{TakenCountryCode}IPTC country codeUS

Image Numbers

VariableDescriptionExample
{ImageNumber}Image number shown in the grid42

Use {ImageNumber} in rename templates, such as Photo_{ImageNumber}, to match filenames to the image numbers shown in the grid. Unlike {Sequence}, which generates an incrementing number for the current run or scope, {ImageNumber} uses the grid’s image number.

Sequence Variables

VariableDescriptionExample
{Sequence}Incrementing item number for the current run or scope0001
{IngestSequence}Incrementing source/card number during ingest0001
{Total}Total item count in the current run or ingest scope150

The Sequence starts at value controls both the first number and zero padding:

Sequence starts atExample output
11, 2, 3
0101, 02, 03
001001, 002, 003
00010001, 0002, 0003

During a multi-source ingest, Sequence Scope controls whether {Sequence} and {Total} restart for each source or continue across the complete ingest. {IngestSequence} is unaffected by that setting: it advances once per selected source and remains the same for every item from that source.

Session Variables

Session variables are values you enter once for a job and reuse across all items. PhotoCuller detects the session variables used by a template and prompts for their values before running it.

VariableDescriptionExample
{Session.ProjectName}Project nameWedding2025
{Session.Photographer}Photographer nameJohnDoe
{Session.Location}Job locationParis
{Session.Client}Client nameSmithFamily
{Session.Event}Event typeBirthday
{Session.FilmStock}Film stockKodak Portra 400
{Session.FilmISO}Film ISO400
{Session.Custom1}Custom field 1MyValue
{Session.Custom2}Custom field 2MyValue
{Session.Custom3}Custom field 3MyValue

You can also type a custom alphanumeric key such as {Session.Team}. PhotoCuller uses the key itself as the field label.

Session Variable Presets

Use the Presets menu in a Session Variables section to reuse values across jobs:

  • Save Current as Preset… saves the currently filled non-empty values
  • Update Current Preset overwrites the active preset
  • Clear Values empties the current fields
  • Manage Presets… lets you rename or delete presets and inspect their values

Applying a preset replaces the current session values with the preset’s saved values.

IPTC Date and Time

IPTC date-part variables use IPTC Date Created when present, falling back to the item’s best available capture date. {IPTC.DateCreated} itself is only populated when IPTC Date Created exists.

VariableDescriptionExample
{IPTC.DateCreated}IPTC date created as YYYY-MM-DD2025-06-15
{IPTC.Year}Four-digit year2025
{IPTC.YearShort}Two-digit year25
{IPTC.Month}Month without padding6
{IPTC.MonthPadded}Two-digit month06
{IPTC.MonthName}Full month nameJune
{IPTC.MonthShort}Abbreviated monthJun
{IPTC.MonthNameAP}AP-style monthJun.
{IPTC.Day}Day without padding15
{IPTC.DayPadded}Two-digit day15
{IPTC.DayOfWeek}Full weekday nameSunday
{IPTC.DayOfWeekShort}Abbreviated weekdaySun
{IPTC.Time}Time as HH-MM-SS14-30-45
{IPTC.TimeSort}Time as HHMMSS143045
{IPTC.DateSort}Date as YYYYMMDD20250615
{IPTC.Hour12}12-hour clock hour without padding2
{IPTC.Hour12Padded}Two-digit 12-hour clock hour02
{IPTC.Hour24}Two-digit 24-hour clock hour14
{IPTC.Minute}Two-digit minute30
{IPTC.Second}Two-digit second45
{IPTC.AMPM}AM or PMPM
{IPTC.WireDate}News-wire style dateSunday, Jun. 15, 2025

IPTC Content and Classification

Lists of keywords, codes, and names appear as text separated by commas.

VariableDescriptionExample
{IPTC.Title}TitleGolden Gate at Dusk
{IPTC.Headline}HeadlineSan Francisco Landmarks
{IPTC.Caption}Caption or descriptionThe Golden Gate Bridge at sunset.
{IPTC.Keywords}Keywordslandscape, bridge, sunset
{IPTC.AltText}Accessibility alt textA bridge at dusk
{IPTC.ExtendedDescription}Accessibility extended descriptionDetailed description text
{IPTC.Genres}Genre controlled-vocabulary namesPhotojournalism, Fine Art
{IPTC.IntellectualGenre}Intellectual genreFeature Photo
{IPTC.Category}Legacy categorysp
{IPTC.SceneCodes}IPTC scene codes011800, 011900
{IPTC.SubjectCodes}IPTC subject codes15008000
{IPTC.Instructions}InstructionsEmbargo until 2025-01-01
{IPTC.JobId}Job IDJOB-2025-001
{IPTC.DescriptionWriter}Caption writerJohn Editor

IPTC Creator and Contact

{IPTC.Creator} uses the first creator name when the item contains more than one.

VariableDescriptionExample
{IPTC.Creator}First creator nameJane Smith
{IPTC.CreatorJobTitle}Creator job titlePhotographer
{IPTC.Copyright}Copyright notice© 2025 Jane Smith
{IPTC.ContactEmail}Work email[email protected]
{IPTC.ContactPhone}Work phone+1 555 0100
{IPTC.ContactWebsite}Websitehttps://example.com
{IPTC.ContactAddress}Address123 Main St
{IPTC.ContactCity}Contact citySan Francisco
{IPTC.ContactCountry}Contact countryUSA
{IPTC.ContactPostalCode}Postal code94105
{IPTC.ContactRegion}State or regionCA
{IPTC.CreditLine}Credit linePhoto by Jane Smith / Agency
{IPTC.Source}SourceReuters
{IPTC.UsageTerms}Rights usage termsEditorial use only

IPTC Locations, People, and Events

VariableDescriptionExample
{IPTC.Sublocation}SublocationFort Point
{IPTC.City}CitySan Francisco
{IPTC.ProvinceState}State or provinceCalifornia
{IPTC.Country}CountryUnited States
{IPTC.CountryCode}Country codeUS
{IPTC.LocationsCreated}Formatted locations createdFort Point, San Francisco, CA, US
{IPTC.LocationsShown}Formatted locations shownGolden Gate, San Francisco, CA, US
{IPTC.PersonNames}Person namesAlice, Bob
{IPTC.PersonsWithDetails}Names from detailed person recordsAlice Johnson, Bob Smith
{IPTC.OrganizationNames}Organization namesACME Corp, Press Agency
{IPTC.OrganizationCodes}Organization codesACME, PA
{IPTC.EventName}Event nameSan Francisco Marathon
{IPTC.EventIds}Event IDsEVT-001, EVT-002

IPTC Rights, Releases, and Supply Chain

VariableDescriptionExample
{IPTC.WebStatementOfRights}Web statement of rights URLhttps://example.com/rights
{IPTC.DataMining}Data-mining permission statusProhibited
{IPTC.CopyrightOwners}Copyright-owner namesJane Smith, Agency Inc.
{IPTC.Licensors}Licensor namesGetty Images, Shutterstock
{IPTC.ImageSuppliers}Image-supplier namesReuters, AP Images
{IPTC.ImageSupplierIds}Image-supplier identifiersreuters-id, ap-id
{IPTC.ImageSupplierImageId}Supplier’s image IDRTR2025-001234
{IPTC.ImageCreators}Image-creator namesJane Smith, John Doe
{IPTC.ImageCreatorIds}Image-creator identifierscreator-1, creator-2
{IPTC.ImageCreatorImageId}Creator’s image IDCREATOR-IMG-001
{IPTC.Contributors}Contributor namesAlice Editor, Bob Retoucher
{IPTC.OtherConstraints}Other constraintsNot for commercial use
{IPTC.DigitalImageGUID}Digital image GUID550e8400-e29b-41d4-a716-446655440000
{IPTC.ModelReleaseStatus}Model release statusUnlimited
{IPTC.ModelReleaseIds}Model release IDsMR-001, MR-002
{IPTC.PropertyReleaseStatus}Property release statusNot Applicable
{IPTC.PropertyReleaseIds}Property release IDsPR-001
{IPTC.ModelAges}Model ages25, 30
{IPTC.MinorModelAgeDisclosure}Minor-model age disclosure25 or Over
{IPTC.AdditionalModelInfo}Additional model informationModel info

IPTC Products, Artwork, Registry, and Dimensions

VariableDescriptionExample
{IPTC.Products}Product namesAcme Widget, Widget Pro
{IPTC.ArtworkOrObjects}Artwork or object titlesStarry Night, Mona Lisa
{IPTC.AboutCvTerms}About controlled-vocabulary namesArchitecture, Travel
{IPTC.RegistryEntries}Registry item IDsREG-001, REG-002
{IPTC.MaxAvailableWidth}Maximum available width6240
{IPTC.MaxAvailableHeight}Maximum available height4160

IPTC AI and Provenance

VariableDescriptionExample
{IPTC.DigitalSourceType}Digital source typeDigital Capture
{IPTC.AISystemUsed}AI system usedStable Diffusion
{IPTC.AISystemVersionUsed}AI system version2.1
{IPTC.AIPromptWriterName}AI prompt writerJane Smith
{IPTC.AIPromptInformation}AI prompt informationA bridge at golden hour

See Also