About
You can easily define your own episode and movie naming schemes. It uses Groovy expressions, which means that you can do pretty much anything, especially if you know a little bit about programming. You even get media info bindings. You can find predefined format expressions for all kinds of scenarios in the forums. Ready for you to just copy & paste.
Examples
{n} - {s00e00} - {t}Dark Angel - S03E01 - Labyrinth
V:/TV Shows/{n}/Season {s}/{sxe} - {t}V:\TV Shows\Dark Angel\Season 3\3x01 - Labyrinth
{n.space('.').lower()}.{s}{e.pad(2)}dark.angel.301
{n} ({y}){" CD$pi"}The Man from Earth (2007) CD1
{n} [{y}] {vf} {af}The Man from Earth [2007] 720p 6ch
Advanced Examples
{n.upperInitial().space('.')}.{y}.{source}.{vc}{'-'+group}The.Man.From.Earth.2007.DVDRip.XviD-ALLiANCE
{n} ({y}) by {director} [{genres[0]}, {certification}, {rating}]The Terminator (1984) by James Cameron [Action, PG-13, 8.5]
{n.space('_')}_-_{e.pad(2)}_[{resolution}_{vc}_{ac}][{crc32}]Juuni_Kokuki_-_01_[1280x720_XviD_MP3][3E16AF40]
{n.space('.')}.{'s'+s.pad(2)}e{e.pad(2)}.{t.space('.')}.{vf}.{vc}.{ac}Firefly.s01e01.Serenity.720p.x264.ac3
{n} [{airdate.format('yyyy.MM.dd')}] {t}The Daily Show [2010.01.05] George Lucas
E:/Complete/{n} ({y}){'/Season '+s}/{s+'x'}{e.pad(2)} - {t}Rename and move files. The directory structure is completely up to you.
{n.replaceTrailingBrackets()} - {s+'x'}{e.pad(2)} - {t.replaceAll(/[!?.]+$/).replaceAll(/[`´‘’ʻ]/, "'")My personal favorite. Pretty much 1x01, normalizing accents, and lots of other cleanup operations.
.lowerTrail().replacePart(', Part $1')}
Binding Reference source
| Name | Description | Example |
|---|---|---|
| n | series/movie name | Dark Angel |
| y | series/movie year | 2009 |
| s | season number | 3 |
| e | episode number | 1 |
| t | episode title | Labyrinth |
| airdate | episode airdate | 2009-06-01 |
| absolute | absolute episode number | 42 |
| special | special number | 1 |
| ny | name (year) | Avatar (2009) |
| sxe | season / episode numbers | 1x01 |
| s00e00 | season / episode numbers | S01E01 |
| plex | Plex Naming Standard | <path> |
| imdbid | imdb id | tt0756683 |
| vc | video codec | x264 |
| ac | audio codec | ac3 |
| cf | container format | mkv |
| vf | standard video format | 720p |
| hpi | exact video format | 384p |
| af | audio channels | 6ch |
| channels | audio channels | 5.1 |
| resolution | video size | 1280x720 |
| bitdepth | video bitdepth | 10 |
| kbps | bitrate in kb/s | 320 kbps |
| khz | sampling rate | 44.1 kHz |
| minutes | Duration in minutes | 42 |
| ws | widescreen tag | WS |
| hd | UHD/HD/SD video | HD |
| s3d | Stereoscopic 3D tag | 3D SBS |
| source | source medium | BluRay |
| group | release group | ALLiANCE |
| crc32 | crc32 checksum | 3E16AF40 |
| gigabytes | Filesize in gigabytes | 4.2 |
| fn | original filename | Serenity |
| ext | file extension | mkv |
| episode | episode object | <default episode name> |
| movie | movie object | <default movie name> |
| pi | movie part index | 1 |
| pn | movie part count | 2 |
| lang | language tag | eng |
| subt | subtitle tags | .eng.forced |
| collection | movie set | Avatar Collection |
| director | movie director | James Cameron |
| actors | list of actors | [Sam Worthington, Zoe Saldana, ...] |
| genre | primary genre | Science Fiction |
| genres | list of genres | [Science Fiction, Action, ...] |
| languages | list of spoken languages | [eng] |
| certification | content rating | PG-13 |
| rating | movie rating | 8.5 |
| info | extended metadata | <any movie / series info> |
| omdb | OMDb info | <any movie / series info> |
| home | user home folder | /Users/Alice |
| file | file object | <file path> |
| dim | video dimensions | <width and height> |
| media | general media info object | <any general media parameter> |
| video | video streams | <any video parameter> |
| audio | audio streams | <any audio parameter> |
| text | subtitle streams | <any subtitle parameter> |
Function Reference source
pad(length, padding = "0")Pad strings or numbers with given characters ('0' by default).
match(pattern)Get a substring matching the given pattern or break.
matchAll(pattern)Get a list of substrings matching the given pattern or break.
space(replacement)Replace all spaces (e.g. "Doctor Who" ➔ "Doctor_Who").
colon(replacement)Replace all colons (e.g. "Sissi: The Young Empress" ➔ "Sissi - The Young Empress").
slash(replacement)Replace all slashes (e.g. "V_MPEG4/ISO/AVC" ➔ "V_MPEG4.ISO.AVC").
upperInitial()Upper-case all initials (e.g. "The Day a new Demon was born" ➔ "The Day A New Demon Was Born").
lowerTrail()Lower-case all letters that are not initials (e.g. "Gundam SEED" ➔ "Gundam Seed").
acronym()Get acronym, i.e. first letter of each word. (e.g. "Deep Space 9" ➔ "DS9").
roman()Replace numbers 1..12 with roman numerals (e.g. "Star Wars: Episode 4" ➔ "Star Wars: Episode IV").
before(pattern)Get the substring before the given pattern or the original value.
after(pattern)Get the substring after the given pattern or the original value.
replaceAll(pattern, replacement = "")Replace or remove all occurrences of the pattern.
replaceTrailingBrackets(replacement = "")Replace trailing parenthesis including any leading whitespace (e.g. "The IT Crowd (UK)" ➔ "The IT Crowd").
replacePart(replacement = "")Replace part identifier (e.g. "Today Is the Day (1)" ➔ "Today Is the Day, Part 1").
ascii()Convert Unicode to ASCII. (e.g. "Österreich" ➔ "Osterreich" or "カタカナ" ➔ "katakana").
transliterate(identifier)Apply any ICU script transliteration. e.g. "中国".transliterate("han-latin") ➔ "zhōng guó".
Need some help getting started? Check the forums.