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.
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]