Silent Sifter 2.5 Preview – Token Options

In Silent Sifter 2.5, we’ve added a feature we call Token Options, to give you even more customization options for your folder structures and file renaming.

Silent Sifter 2.5 Preview - Token Options

With token options, you can apply a chain of options to each token, to modify how or if Silent Sifter replaces the token.

But before we jump in on Token Options, let me refresh your memory on Tokens.

Tokens

Tokens are the various bits of metadata we gather about each file, that you can assemble into your

The customized folder structure and file renaming options both recognize the same list of available tokens. When a token is inserted into a custom pattern, Silent Sifter will replace the token with the respective data from the media file. You can chain many tokens together, using the delimiters for the given pattern semantics.

For example, if the FileType token is specified, then Silent Sifter will replace ‘FileType’ in the custom pattern with the type of the file being processed, i.e, ‘Video’ or ‘Photo’. Then you assemble a list of tokens together to form your folder structure or filename. For more information on tokens, take a look at the bottom of this post.

Here are a few more examples:

Type Pattern Result
Folder Date:yyyy|String: – |Date:MMM 2012 – Feb
Folder Date:yyyy/Date:MM|String:_|Date:dd 2012/02_14
FileName OrigFileName|String:.|FileExt IMG_1234.JPG
FileName Date:yyyy|String:_|Date:MM|String:_|Date:dd|String:.|FileExt 2012_08_12.JPG

Token Options

So now that we’ve refreshed your memory on Tokens, what is the new bit?

We’ve added Token Options in Silent Sifter 2.5; token options are optional parameters that you can provide for each token, to tell Silent Sifter how to process the token value before inserting it into the filename or folder structure.

For example, if you specify the token FileType, you may decide you prefer that ‘Photos’ be called ‘Images’. In which case, you could provide a replace() option, so that ‘Photos’ would always be replaced by ‘Images’, like this:

FileType:replace(Photos,Images)

Another example is if you wanted to create a folder structure using file extensions, but some of your files have uppercase extensions and others have lowercase extensions. You could do this by specifying that the FileExt token should always be changed to lowercase, like this:

FileExt:lowercase

Additionally, you can chain multiple options together, by comma delimiting them, and they will be processed in the order you specify, from left to right passing the result from one option to the next.

For example, if you wanted to put all photos taken with any Canon camera into a ‘Canon Cameras’ folder and all photos taken with any Nikon camera into a ‘Nikon Cameras’ folder, you could normalize the CameraMake token, like this:

CameraMake:before( ),lowercase,replace(canon,Canon Cameras),replace(nikon,Nikon Cameras)

Here are a few examples of how a CameraMake value would change with each sequential token option:

CameraMake before( ) lowercase replace(canon,Canon Cameras) replace(nikon,Nikon Cameras)
Canon SD 550 Canon canon Canon Cameras Canon Cameras
CANON SD100 CANON canon Canon Cameras Canon Cameras
Nikon D80 Nikon nikon nikon Nikon Cameras

Keep in mind that you can add as many token options as you want, in any sequence or combination, and you start to realize the possibilities are infinite.

So what token options are there? Here is a list, with examples and explanations of each:

[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The prev Option”]

Return blank if the previous token in the token chain was blank

You can tell Silent Sifter to include the token only if the previous token was not blank.

i.e. ‘String:_:prev’ would return ‘_’ if the previous token was not blank, and blank if the previous token was blank.

Usage Input Result
Duration|String:_:prev 12m24s 12m24s_
Duration|String:_:prev (blank) (blank)
CameraMake|String: taken:prev Canon SD 550 Canon SD 550 taken
CameraMake|String: taken:prev (blank) (blank)

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The uppercase Option”]

Change token text to uppercase

Usage Input Result
OrigFileName:uppercase mov_1234 MOV_1234
Resolution:uppercase 1920×1080 1920X1080
Date:MMM:uppercase Aug AUG

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The lowercase Option”]

Change token text to lowercase

Usage Input Result
OrigFileName:lowercase MOV_1234 mov_1234
CameraMake:lowercase Canon SD 550 canon sd 550
Date:MMM:lowercase Aug aug

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The before Option”]

Return all text in the token before the first instance of the given text

Usage Input Result
OrigFileName:before(_) MOV_1234 MOV
CameraMake:before( ) Canon SD 550 Canon
Date:MMM:before(ug) Aug A

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The after Option”]

Return all text in the token after the first instance of the given text

Usage Input Result
OrigFileName:after(_) MOV_1234 1234
CameraMake:after( ) Canon SD 550 SD 550
Date:MMM:after(A) Aug ug

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The remove Option”]

Remove any instances of the given text from the token

Usage Input Result
OrigFileName:remove(_) IMG_1234_001 IMG1234001
CameraMake:remove( ) Canon SD 550 CanonSD550
ParentFolder:remove(2012) 2012Files Files

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The replace Option”]

Replace all instances of the given text in the token with a substitute text value

Usage Input Result
OrigFileName:replace(IMG,Image): IMG_1234 Image_1234
Resolution:replace(x, by ) 1920×1080 1920 by 1080
ParentFolder:replace(Bday,Birthday) My Bday My Birthday

[/fusion_toggle]

Summary

We developed token options in response to many requests from our users for features that enable them to force case, modify text, and so on. It’s a flexible framework, that puts the power to create highly customized organization in your hands. Silent Sifter 2.5 will be available the App Store in May.

What will you use token options for? Let us know in the comments!

More information:

More about Tokens

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The FileType Token”]

The type of file

Examples:

Usage Input Result
FileType IMG_1234.JPG Photo
FileType MOV_1234.MOV Video

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The FileExt Token”]

The file extension of the file.

The file extension is taken from the filename, so if there is no extension, it will not return a value.

Examples:

Usage Input Result
FileExt IMG_1234.JPG JPG
FileExt MOV_1234.MOV MOV
FileExt Birthday.AVI AVI
FileExt Batman.MPG MPG
FileExt icon64x64.gif gif

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The Resolution Token”]

The widthxheight value for the photo or video, if available.

The resolution is taken from EXIF data if available. If no EXIF data is available, the resolution is detected through other means, and in some cases where the file is extremely new, resolution will not be available.

Examples:

Usage Input Result
Resolution icon.gif 64×64
Resolution IMG_1234.JPG 4000×3000
Resolution MOV_1234.MOV 1920×1080

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The Duration Token”]

The minutes and seconds of duration for a video file.

Examples:

Usage Input Result
Duration MOV_1234.MOV 12m24s

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The CameraModel Token”]

The EXIF camera model value for photos, if available.

Examples:

Usage Input Result
CameraModel IMG_1234.JPG Canon SD550
CameraModel DSC_1234.JPG Nikon D80

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The CameraMake Token”]

The EXIF camera make value for photos, if available.

Examples:

Usage Input Result
CameraMake DSC_1234.JPG NIKON CORPORATION

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The ParentFolder Token”]

The immediate parent folder that the file was contained in originally in it’s source location.

Examples:

Usage Input Result
ParentFolder ~Pictures/IMG_1234.JPG Pictures
ParentFolder ~Downloads/IMG_1234.JPG Downloads
ParentFolder ../Sally Bday/IMG_1234.JPG Sally Bday

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The ConditionalParentFolder Token”]

The parent folder name, if and only if the parent folder name starts with the string ‘SS->’.

The value returned will be the folder name with ‘SS->’ removed, or if there is no ‘SS->’, no value will be returned.

Examples:

Usage Input Result
ConditionalParentFolder ../SS->San Diego/IMG_1234.JPG San Diego

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The OrigFileName Token”]

The original name of the file, with the file extension removed.

Examples:

Usage Input Result
OrigFileName IMG_1234.JPG IMG_1234

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The String Token”]

A text string of your choosing.

Examples:

Usage Input Result
String:_ IMG_1234.JPG _
String:dave IMG_1234.JPG dave

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The Date Token”]

The date that the file was created, formatted based on your specification.

Silent Sifter uses the best available create date, which may be any one of EXIF original date, file last modified date, file created date, depending on the file and what is available.

The date can be formatted in numerous ways, based on the Unicode standard for date formatting. To learn more about all of the date formatting options that can be provided, take a look at the standard: Unicode Date Standard.

Note that this Date token is localized – which means that OSX attempts to make it display the way you would expect for your country. Sometimes, this means that the format is not what you would expect, which is why we provide the DateUL token.

Examples (for English speaking countries, if your Mac is operating in another language, your results may vary):

Usage Input Result
Date:yyyy IMG_1234.JPG created on 8/1/2012 2012
Date:MMM IMG_1234.JPG created on 8/1/2012 Aug
Date:HHmmss IMG_1234.JPG created at 14:07:36 140736

[/fusion_toggle]

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_toggle title=”The DateUL Token”]

Exactly the same as Date, with the exception that this date will not be localized, which can have more predictable behavior for English speaking countries.

Examples:

Usage Input Result
DateUL:yyyy IMG_1234.JPG created on 8/1/2012 2012
DateUL:MMM IMG_1234.JPG created on 8/1/2012 Aug
DateUL:HHmmss IMG_1234.JPG created at 14:07:36 140736

[/fusion_toggle]

[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]