I think the two limit values in this code are still a little confusing.  The above constant of 20 is the video pool size which is different than the number of videos to show on the page.  However, the methods in this class have a parameter named $numRequired that is used for both of these limits.

I think having a constructor like this might be better:

    const DEFAULT_VIDEO_POOL_SIZE = 20;
    public $video_pool_size = self::DEFAULT_VIDEO_POOL_SIZE;
    
    public function __construct( $param ) {
        if ( array_key_exists('pool_size', $param) ) {
            $this->video_pool_size = $param['pool_size'];    
        }
    }

This way you could eliminate the $numRequired argument to getVideoLimit