tvnamer is a utility renames files from some.show.s01e03.blah.abc.avi to Some Show - [01x03] - The Episode Name.avi (gets the episode name from thetvdb.com, via tvdb_api)
The current stable version of tvnamer (1.0) is part of Github.com/dbr/tvdb_api
For the next version, it has been split into it's own repository on Github.com/dbr/tvnamer
You can easily install tvnamer via easy_install
easy_install tvnamer
This installs the tvnamer command-line tool (and the tvdb_api module as a requirement)
You may need to use sudo, depending on your setup:
sudo easy_install tvnamer
From the command line, simply run:
tvnamer the.file.s01e01.avi
For example:
$ tvnamer scrubs.s01e01.avi #################### # Starting tvnamer # Processing 1 files # ..got tvdb mirrors # Starting to process files #################### # Processing scrubs (season: 1, episode 1) TVDB Search Results: 1 -> Scrubs # http://thetvdb.com/?tab=series&id=76156 Automatically selecting only result #################### Old name: scrubs.s01e01.avi New name: Scrubs - [01x01] - My First Day.avi Rename? ([y]/n/a/q)
Enter y then press return and the file will be renamed to "Scrubs - [01x01] - My First Day.avi". You can also simply press return to select the default option, denoted by the surrounding []
If there are multiple shows with the same (or similar) names, you will be asked to select the correct one - "Lost" is a good example of this:
$ python tvnamer.py lost.s01e01.avi #################### # Starting tvnamer # Processing 1 files # ..got tvdb mirrors # Starting to process files #################### # Processing lost (season: 1, episode 1) TVDB Search Results: 1 -> Lost # http://thetvdb.com/?tab=series&id=73739 2 -> Lost in Space # http://thetvdb.com/?tab=series&id=72923 [...] Enter choice (first number, ? for help):
To select the first result, enter 1 then return, to select the second enter 2 and so on. The link after # goes to the relevant [thetvdb.com][tvdb] page, which will contain information and images to help you select the correct series.
You can rename multiple files, or an entire directory by using the files or directories as arguments:
$ tvnamer file1.avi file2.avi etc $ tvnamer . $ tvnamer /path/to/my/folder/ $ tvnamer ./folder/1/ ./folder/2/
You can skip a specific file by entering n (no). If you enter a (always) tvnamer will rename the remaining files automatically. The suggested use of this is check the first few episodes are named correctly, then use a to rename the rest.
Note, tvnamer will only descend one level into directories unless the -r (or --recursive) flag is specified. For example, if you have the following directory structure:
dir1/
file1.avi
dir2/
file2.avi
file3.avi
..then running tvnamer dir1/ will only rename file1.avi, ignoring dir2/ and its contents.
If you wish to rename all files (file1, file2 and file3), you would run:
tvnamer --recursive dir1/
There are various flags you can use with tvnamer, run..
tvnamer --help
..to see them, and a short description of each.
The most interesting are most likely --batch, --selectfirst and --always:
--selectfirst will select the first series the search found, but will not automatically rename any episodes.
--always will ask you select the correct series, then automatically rename all files.
--batch will not prompt you for anything. It automatically selects the first series search result, and automatically rename all files. Use carefully!