FileBot

This article will show you how to install FileBot. FileBot can be used to automatically rename TV and movie files for your media libraries.

You'll need to execute some commands via SSH to use this software. There is a separate guide on how to connect to your slot via SSH. Commands are kept as simple as possible and in most cases will simply need to be copied and pasted into the terminal window (then executed by pressing the Enter key).

FileBot requires you to install Java first, as the server's version won't be recent enough.

Installation

Install FileBot by logging in via SSH, then copying and pasting the following:

wget -O ~/filebot.tar.xz https://downloads.sourceforge.net/project/filebot/filebot/FileBot_4.7.9/FileBot_4.7.9-portable.tar.xz
mkdir -p ~/filebot && tar xf ~/filebot.tar.xz -C ~/filebot
rm -rf ~/filebot.tar.xz

Installation notes

If your binary directory (~/bin) is not in PATH you'll need to configure FileBot to find the Java binary in ~/bin. This can be done with:

sed -i "s|java -Dunix|~/bin/java -Dunix|g" ~/filebot/filebot.sh

A better alternative is to simply add ~/bin to PATH with the following commands:

echo "PATH=~/bin:$PATH" > ~/.bashrc
source ~/.bashrc

Using FileBot

Running the FileBot script can be done with the following command:

~/filebot/filebot.sh

That command with no other options will display the usage guide:

FileBot 4.7.9 (r4984) / Java(TM) SE Runtime Environment 1.8.0_141 (headless)

 --mode [Rename, Subtitles, SFV] or     : Open GUI in single panel mode /
 [interactive]                            Enable CLI interactive mode
 -rename                                : Rename media files
 --db [TheTVDB, AniDB] or [TheMovieDB]  : Database
 or [AcoustID, ID3] or [xattr]             
 --order [Airdate, Absolute, DVD]       : Episode order
 --action [move, copy, keeplink,        : Rename action
 symlink, hardlink, reflink, test]         
 --conflict [skip, override, auto,      : Conflict resolution
 index, fail]                              
 --filter expression                    : Filter expression
 --format expression                    : Format expression
 -non-strict                            : Enable advanced matching and more
                                          aggressive guessing
 -get-subtitles                         : Fetch subtitles
 --q series/movie title                 : Force lookup query
 --lang 3-letter language code          : Language
 -check                                 : Create/Check verification files
 --output /path                         : Output path
 --encoding [UTF-8, Windows-1252]       : Output character encoding
 -list                                  : Fetch episode list
 -mediainfo                             : Get media info
 -revert                                : Revert files
 -extract                               : Extract archives
 -script [fn:name] or [dev:name] or     : Run Groovy script
 [/path/to/script.groovy]                  
 --log [all, fine, info, warning]       : Log level
 --log-file /path/to/log.txt            : Log file
 --log-lock [yes, no]                   : Lock log file
 -r                                     : Recursively process folders
 -clear-cache                           : Clear cached and temporary data
 -clear-prefs                           : Clear application settings
 -unixfs                                : Do not strip invalid characters from
                                          file paths
 -no-xattr                              : Disable extended attributes
 -version                               : Print version identifier
 -help                                  : Print this help message
 --def [name=value]                     : Define script variables

Example commands

The following command would instruct FileBot to search TheTVDB database for results and rename the files in ~/TV as per the results of the database search:

~/filebot/filebot.sh -rename --db TheTVDB "$HOME/TV"

There are a couple of things to note here:

  • You must put " around the path to your media;
  • The ~ character for HOME can confuse FileBot - use $HOME instead.

Troubleshooting

I get the error Exception in thread "main" java.lang.UnsupportedClassVersionError: net/filebot/Main : Unsupported major.minor version 52.0
Make sure that you've installed Java and that ~/bin is part of the PATH variable (see the installation notes above).
I get the error Multiple options: Advanced auto-selection requires -non-strict matching: []
Use the option -non-strict when running the FileBot script.

Uninstallation

rm -rf ~/filebot

External links