FileBot
About FileBot
FileBot is a media renamer. You drop a folder of badly named episode or movie files onto it, it works out what each file actually is by asking TheMovieDB, TheTVDB or AniDB, and it renames and files everything into whatever folder structure you want. Subtitles and artwork ride along, but the renaming is the point.
What separates it from a pattern renamer is that it reads the content rather than the filename. A file called “s02e07.720p.x264-GROUP.mkv” sitting in a folder named after a show becomes “Show Name – S02E07 – Episode Title.mkv” because FileBot looked the episode up, not because you typed the title. If you run Plex, Kodi or Jellyfin, that lookup is the difference between a library that scans clean and one full of “Unknown” tiles.
Matching files against TheMovieDB, TheTVDB and AniDB
Drop files into the Original Files list, click Fetch Data and pick a database, and the New Names list fills with proposals. Series detection uses the folder name, the filename and any nfo file it finds, then queries the database and lines episodes up by season and episode number, by airdate, or by absolute number for anime. You can force a different episode order (Airdate, DVD or Absolute) when a show is numbered differently across databases.
Here is the mistake that catches nearly everyone. In the graphical interface matching is opportunistic by default, meaning that if an exact match is not found it picks the closest one. When you rename an episode the day it airs and the database entry does not exist yet, FileBot happily assigns the file to the next episode along and you do not notice until the credits roll. Strict mode refuses to guess and simply skips the file, which sounds worse and is much safer. Either wait a day or two after broadcast, or turn strict on for anything recent.
The naming format, from the plex preset to full expressions
The naming scheme is an expression made of bindings in curly braces. {n} is the series or movie name, {s00e00} produces S01E01, {t} is the episode title, {y} the year. The built-in {plex} binding emits the entire folder path the Plex naming guide asks for, and there are matching {kodi}, {emby} and {jellyfin} presets, so most people never write a format at all.
The bindings go much further than names. {vf} gives you 1080p, {vc} the codec library, {hdr} reads HDR10 or Dolby Vision off the stream, {af} the channel count, {group} the release group, {crc32} the checksum. These come from the same media metadata reader that power users already run by hand, so a format like {n} ({y}) {vf} {hdr} names a file “Dune (2021) 2160p Dolby Vision” from the stream itself rather than from whatever the uploader claimed.
The format language underneath is Groovy, so anything conditional (add the edition only if there is one, strip trailing punctuation) means pasting an expression from the format thread, though the live preview softens the learning curve.
Actions beyond renaming, and the undo history
Rename is one of several actions. Move puts files into your library folder, including across drives, Copy leaves the originals alone, and Symlink or Hardlink give you a clean library tree while the originals keep seeding. The conflict setting decides what happens when the target already exists. A generic tool like Bulk Rename Utility can rename a thousand files a second but knows nothing about seasons, so this is where the two part ways.
Pressing Rename commits without a confirmation dialog. The New Names list is your preview and you are expected to read it, which is exactly why the opportunistic matching described above bites people. The safety net is the History panel, which records every rename batch and can revert one with a click, including moves.
Subtitles from OpenSubtitles
Drop video files onto the Subtitles panel, hit Download, and FileBot looks each one up on OpenSubtitles by file hash, which returns subtitles cut for that exact release rather than for a different rip of the same episode. When the hash finds nothing you fall back to a name search and pick from a list. A built-in viewer opens srt, ass, sub or sami files, and a converter rewrites any of them to SubRip in UTF-8, which fixes the garbled accented characters that old single-byte encodings produce on most players.
Two catches. An OpenSubtitles account is required and must be entered once, and the OpenSubtitles service itself goes down or throttles from time to time, at which point FileBot reports a login failure that has nothing to do with you. Timing and styling are out of scope here, so a mistimed file still needs a dedicated subtitle editor.
The command line and the amc script
Everything the interface does, the command-line tool does too. One command with a database, an output folder, a format and an action processes a whole tree, and it is what people run on a server every night. On the command line matching is strict by default, the opposite of the graphical side, so you will end up adding the non-strict switch to most scripts and then living with the guessing that implies.
The amc script (Automated Media Center) is the reason FileBot sits on so many home servers. Pointed at a download folder it extracts archives, sorts films from series, then renames and moves everything, fetches artwork and writes nfo files, keeps an exclude list so processed files are never touched twice, and then tells Plex or Kodi to rescan. Torrent and Usenet clients can call it as a post-processing command, so the library updates itself while you sleep.
If you already run Sonarr for television it does much of this for you, but amc handles the films, the anime and the odd manual download that fall outside it.
Conclusion
FileBot is for people who keep a media library rather than a downloads folder, and especially for anyone running Plex, Kodi or Jellyfin who is tired of fixing matches by hand. Casual users with a dozen films will find the presets do everything they need in three clicks. Server owners will end up living in amc and never open the window again.
The trade is that it trusts you. It will rename a hundred files to the wrong episodes as cheerfully as to the right ones if you let it guess, and undoing that is a click but noticing it is not. Read the preview, use strict mode on fresh releases, and this software will keep a library tidy for years with almost no attention.
Pros & Cons
- Matches against TheMovieDB, TheTVDB and AniDB with anime numbering translation
- Plex, Kodi, Emby and Jellyfin naming presets need zero configuration
- Format bindings read resolution, HDR type and codec from the stream
- Hardlink and symlink actions keep torrents seeding from a clean library
- History panel reverts any rename or move batch
- The amc script automates the whole download-to-library pipeline
- Opportunistic matching silently picks the wrong episode when the database entry is new
- Custom formats require Groovy once you leave the presets
- Rename commits with no confirmation dialog
- Subtitle fetching depends on an OpenSubtitles account and an API that is not always up
- The rename action is locked until a license is entered
Frequently asked questions
Almost always because the episode was not in the database yet and opportunistic matching picked the nearest existing one. Wait a day or two after the air date, or switch to strict mode so FileBot skips files it cannot match exactly instead of guessing.
Yes. OpenSubtitles requires a login, entered once in the preferences or with the fn:configure script on the command line. If it worked yesterday and fails today with a login error, the service is usually the problem, not your password.
Yes. The History panel lists every batch, including moves to other folders, and a revert puts the files back under their original names and locations.
Yes. Use AniDB as the source and the built-in mapping tables translate absolute numbers to the season and episode structure Plex and Kodi expect, or the other way round.