Sorry, I meant ...
(?P<eptitle>.*)\..{3,4} not ...
(?P<eptitle>)\..{3,4}. Without the "any number of any character" there could be no match for <eptitle>. I suppose that results in the expression doing nothing, and the whole filename is therefore treated as a
Title by default.
Your solution of ...
(?P<eptitle>[^.]+) means "one or more character not a period." That, of course, will match everything up to a period, whether in the episode title or the beginning of the extension—and the rest is ignored.
BTW, this whole business is not so complicated if you consider it's almost impossible
not to match "(YEAR)" or "0x00" or "S00 E00". So if these are used in filename patterns to separate a movie title from other information or a series title from an episode title (or other information), it's difficult to go wrong.
Second, there's no need to get the episode title from the filename if that is being downloaded anyway.
This may not always be true. When updating episodes as they're released, the IMDb plugin uses the episode title to search for the record (even though the season and episode number are known). This is not the case for The TVDb. I download from both, so I get the episode title from there first, and then the IMDb is able to use that in it's search. If an episode title is provided, but the IMDb hasn't yet recorded one (i.e., it's still using something like "Episode #2.19"), that record probably won't be found. I suppose that doesn't matter, however, because it probably doesn't have anything of value. So, when updating episodes as they are released from the IMDb only, it may very well be helpful to get the episode title from the filename.
For updating episodes
not recently released, it's more efficient to update the series record. This will add the URL's of all available episodes, and then no search will be necessary to find them.