/**
  * get list of videos
  * @param string $sort [recent/popular/trend]
  * @param integer $page
  * @param array $providers
  * @param string $category
  * @param array $options
  * @return array $videos
  */
 public function getVideos($sort, $page, $providers = [], $category = '', $options = [])
 {
     wfProfileIn(__METHOD__);
     if ($sort == 'premium') {
         $sort = 'recent';
         $filter = 'premium';
     } else {
         $filter = 'all';
     }
     if ($this->app->checkSkin('wikiamobile')) {
         $limit = self::VIDEOS_PER_PAGE_MOBILE;
         $providers = $this->wg->WikiaMobileSupportedVideos;
         $thumbOptions = ['useTemplate' => true, 'fluid' => true, 'forceSize' => 'small', 'img-class' => 'media', 'dataParams' => true];
     } else {
         $limit = self::VIDEOS_PER_PAGE;
         $providers = empty($providers) ? [] : explode(',', $providers);
         $thumbOptions = ['fluid' => true, 'showViews' => true, 'fixedHeight' => self::THUMBNAIL_HEIGHT, 'hidePlayButton' => true];
     }
     // get video list
     $mediaService = new MediaQueryService();
     $videoList = $mediaService->getVideoList($sort, $filter, $limit, $page, $providers, $category);
     $videoOptions = ['thumbWidth' => self::THUMBNAIL_WIDTH, 'thumbHeight' => self::THUMBNAIL_HEIGHT, 'postedInArticles' => self::POSTED_IN_ARTICLES, 'thumbOptions' => $thumbOptions, 'getThumbnail' => array_key_exists('getThumbnail', $options) ? $options['getThumbnail'] : true];
     // get video detail
     $videos = [];
     $helper = new VideoHandlerHelper();
     foreach ($videoList as $videoInfo) {
         $videoDetail = $helper->getVideoDetail($videoInfo, $videoOptions);
         if (!empty($videoDetail)) {
             $byUserMsg = WikiaFileHelper::getByUserMsg($videoDetail['userName'], $videoDetail['timestamp']);
             $viewTotal = wfMessage('videohandler-video-views', $this->wg->Lang->formatNum($videoDetail['viewsTotal']))->text();
             $videos[] = ['title' => $videoDetail['fileTitle'], 'fileKey' => $videoDetail['title'], 'fileUrl' => $videoDetail['fileUrl'], 'thumbnail' => $videoDetail['thumbnail'], 'timestamp' => wfTimeFormatAgo($videoDetail['timestamp'], false), 'updated' => $videoDetail['timestamp'], 'viewTotal' => $viewTotal, 'byUserMsg' => $byUserMsg, 'truncatedList' => $videoDetail['truncatedList'], 'duration' => $videoDetail['duration'], 'thumbUrl' => $videoDetail['thumbUrl'], 'embedUrl' => $videoDetail['embedUrl']];
         }
     }
     wfProfileOut(__METHOD__);
     return $videos;
 }