Many thanks to your posting StoneSoup,
Thanks to your clear description, I have cleared up the mess of TV Shows in the Sharing pane on my iPad. I have many hundreds of TV shows, so I wrote a little applescript to do the job. It is gereral enough that it ought to help anyone with this problem.
If you'd like to try it, just open Applescript editor on your Mac, create a new empty script and paste the following in the window (NB copy everything from "-- CleanUp..." down to "--end of script"). Press run and it should clear up your TV shows in iTunes. It will list the show names where it has changed one or more episodes in the results pane. You can run it each time you have added new TV shows which may miss some of the metadata needed by the iPad Videos app.
I note that I didn't need to change the year field, as StoneSoup suggests, but I do also copy Album into Sort Album due to a recomendation I read elsewhere. As a minimum it needs TV shows with a name & show set. It will also use season number and episode num or track num if they are set, to fill in the rest of the required fields.
I hope this can be of help.
Cheers
Guy
-- CleanUp TV Show metadata
-- Guy Brooker, Feb 2012
tell application "iTunes"
set changeList to {}
set shows to tracks whose (video kind is TV show)
repeat with trk in shows
set trkShow to show of trk
set trkSeason to season number of trk
set trkN to track number of trk
set trkEN to episode number of trk
if trkN is not equal to trkEN then
if (trkEN is equal to 0) and (trkN is not equal to 0) then
set episode number of trk to trkN
if trkShow is not in changeList then set changeList to changeList & trkShow
end if
if (trkN is equal to 0) and (trkEN is not equal to 0) then
set track number of trk to trkEN
if trkShow is not in changeList then set changeList to changeList & trkShow
end if
end if
if (album artist of trk) is "" then
set album artist of trk to trkShow
if trkShow is not in changeList then set changeList to changeList & trkShow
end if
if (artist of trk) is "" then
set artist of trk to trkShow
if trkShow is not in changeList then set changeList to changeList & trkShow
end if
if (episode ID of trk) is "" then
set eID to "E" & (text -3 thru -1 of ("000" & trkEN))
if trkSeason is greater than 99 then
set episode ID of trk to ("S" & (text -4 thru -1 of ("0000" & trkSeason)) & eID)
else
set episode ID of trk to ("S" & (text -2 thru -1 of ("00" & trkSeason)) & eID)
end if
if trkShow is not in changeList then set changeList to changeList & trkShow
end if
if (album of trk) is "" then
set showSeason to trkShow
if trkSeason is not equal to 0 then
set showSeason to trkShow & ", Season " & trkSeason
end if
set album of trk to showSeason
if trkShow is not in changeList then set changeList to changeList & trkShow
end if
if (sort album of trk) is "" then
set showSeason to (album of trk)
set sort album of trk to showSeason
if trkShow is not in changeList then set changeList to changeList & trkShow
end if
end repeat
{"CHANGES:", changeList}
end tell
-- end of script