You are here

public function MediaInternetBrightcoveHandler::parse in Brightcove Video Connect 7.7

Same name and namespace in other branches
  1. 7.2 brightcove_media/MediaInternetBrightcoveHandler.inc \MediaInternetBrightcoveHandler::parse()
  2. 7.3 brightcove_media/MediaInternetBrightcoveHandler.inc \MediaInternetBrightcoveHandler::parse()
  3. 7.4 brightcove_media/includes/MediaInternetBrightcoveHandler.inc \MediaInternetBrightcoveHandler::parse()
  4. 7.6 brightcove_media/includes/MediaInternetBrightcoveHandler.inc \MediaInternetBrightcoveHandler::parse()

Parse the video id from an embedcode.

Parameters

$embedCode:

Return value

null|string

3 calls to MediaInternetBrightcoveHandler::parse()
MediaInternetBrightcoveHandler::claim in brightcove_media/includes/MediaInternetBrightcoveHandler.inc
Set the claim attribute.
MediaInternetBrightcoveHandler::getFileObject in brightcove_media/includes/MediaInternetBrightcoveHandler.inc
Returns a file object which can be used for validation
MediaInternetBrightcoveHandler::validate in brightcove_media/includes/MediaInternetBrightcoveHandler.inc
Validate the embedCode.

File

brightcove_media/includes/MediaInternetBrightcoveHandler.inc, line 15
Internet handler for Brightcove videos.

Class

MediaInternetBrightcoveHandler
@file Internet handler for Brightcove videos.

Code

public function parse($embedCode) {

  // Special handling for the shortened urls.
  if (preg_match('#^http://bcove.me/[a-z0-9]+$#i', $embedCode)) {
    $resp = drupal_http_request($embedCode);
    if ($resp) {
      $full_url = $resp->redirect_url;
      $matches = NULL;
      preg_match('#&bctid=([0-9]+)#i', $full_url, $matches);
      if (isset($matches[1])) {
        return file_stream_wrapper_uri_normalize("brightcove://{$matches[1]}");
      }
    }
  }

  // Using regexes are right here, because brightcove provides badly
  // formatted html files.
  $regexes = [
    '#^([0-9]+)$#i',
    '#name="@videoPlayer" value="([0-9]+)"#i',
    '#@videoPlayer=([0-9]+)&#i',
  ];
  foreach ($regexes as $regex) {
    $matches = NULL;
    preg_match($regex, $embedCode, $matches);
    if (isset($matches[1])) {
      return file_stream_wrapper_uri_normalize("brightcove://{$matches[1]}");
    }
  }
  return NULL;
}