I'm a little confused by this part.  I think for timeupdate you are keeping a list of listeners, but why for that event in particular?  And then I suppose you are just deregistering all possible listeners with each element, when only one listener actually applies.  Which feels odd... but I suppose is fine, and it avoids the need to keep references to the videos themselves, which is good.