Started out as just a directory walker and file renamer.
Then I decided that movies leave too much variability and I didn't have time to figure out a way to do perfect matches - particularly this is the first python script I've ever written from scratch. So...I started out with a shell and got it setup to grab a dir name, clean it up, and search IMDB for possible matches. Decided - based on my demo setup - that 5 options should cover 99% of movies and set it up where you select one of the top 5 for what the actual movie is.
Then I decided renaming files was useful also...and realized I'd need to be sure to handle CD1 & CD2 subdirectories. So...I did that.
Then I decided that I didn't want to have to wait for files to move between selecting what movie was what if there are multiple movies that need to be renamed (my setup is a WHS box so moving files around can sometimes take a few mins if it's a large file). So I rewrote all the renaming defs/functions to generate an array of the original names and an array of the new names and then rename/move everything after all the movies have been selected. Then I had to write up a function to go back after the renaming and clean up all the dirs from which movies were grabbed from.
Then I added logging. (again...this is my first python script and first program in...wow...9 years...sheesh...been awhile since college).
One of the defs actually has arguments that I have zero reason for using now, but I included them purely because I'm debating moving over non-movie files or parsing them to try to find a IMDB id...
Next steps are to set it up to either take command-line arguments or read from a config file. And I'd like to do some better name checking - I was going to take a look at your script and see how you're doing the better optimized matching.
All of this was possible since I'm in the process of switching jobs and basically have nothing to do for the next few days...I start there next monday though and everything will most likely stop.