It may be confusing that variable $this->existingVideos is set as a side effect of calling $this->isValidVideo.  It took me a few readings to figure this out, since $this->isValidVideo sounds like its just doing a check, not changing the state of the object.

Also, its a bit of a change to have a helper object keep state.  In the controller, $helper is keeping track of how many videos have been served instead of the controller keeping track.  I think this could lead to some hard to track bugs if the helper's internal state diverged from the controllers state.

I think a better tactic would be for the controller to pass in the number of videos it wants to these methods, e.g.,:

    getArticleRelatedVideos( $articleId, VideosModuleHelper::VIDEO_LIMIT - count( $videos ) )