Can we assume this only attempts to solve the case where the last variable received a valid video clip, just fails to return it?
Consider the case where a script is calling functions that are under construction.
Code:
mySource = avisource("blah")
a = mySource.SomeCompletelyAwesomeFunction()
return a
Here 'not a clip' is useful, because it tells me my function is not returning a valid clip.
Another approach would be to make the existing 'not a clip' message more informative. It could tell the user what the current return value is, or point out the line providing the return.