Earlier I wrote an Applescript that goes online to TV.com and finds the episode titles for TV show video files. While that seemed to work properly, TV.com changed their format and my Applescript went kaput. Since I really wanted to have this process automated, I wrote a bash script to do the same thing with the command line.
The result is a Ubuntu bash script that renames all the formatted files in a folder with the actual episode titles. Right now it requires Linux because it uses wget and XMLStarlet to download the file data, but I may release an additional script that works with other systems.
The entire script is made possible by the excellent XML feed service by TVRage.com.
XMLStarlet is a small command-line utility that can process XML files and text. It is required to traverse the XML structure of the TVRage.com data. To download this utility in Ubuntu, simply use the repositories.
sudo apt-get install xmlstarlet
Change paths where appropriate.
- Save the script to a known folder, change into that folder, and make it executable by issuing the following command
chmod a+x ./tvrenamer.sh
- Change the current directory to the folder that contains the video files.
cd Television/Season\ 1
- Rename all the files in the folder to use the format
- Call the script and append the name of the show to the end of the command.
- Watch as the shows all magically change their name.
Downloading show data for 'Simpsons'...
Downloading episode guide...
Simpsons - S08E01 - Treehouse of Horror VII.avi
Simpsons - S08E02 - You Only Move Twice.avi
Simpsons - S08E03 - The Homer They Fall.avi
Simpsons - S08E04 - Burns, Baby Burns.avi
Simpsons - S08E05 - Bart After Dark.avi
Simpsons - S08E06 - A Milhouse Divided.avi
Simpsons - S08E07 - Lisa's Date with Density.avi
Simpsons - S08E08 - Hurricane Neddy.avi
Simpsons - S08E09 - El Viaje Misterioso de Nuestro Jomer (The Mysterious Voyage of Homer).avi
Simpsons - S08E10 - The Springfield Files.avi
If you wish to access the script simply by typing the name (tvrenamer, for example) simply issue the following two commands:
cp /path/to/script/tvrenamer.sh /usr/local/bin/tvrenamer
sudo chmod a+x /usr/local/bin/tvrenamer
From this point, you simply need to use
tvrenamer "TV Show".
The script reads all files in the folder, but will only rename files that are in the S**E** format. TV show titles must have escaped spaces to properly search for the show, or be surrounded in ” quotes.