从URL中获取真正的视频URL

Get the real video URL from a url

本文关键字:URL 的视频 获取      更新时间:2023-09-26

我正试图从一个不显示真实文件名的URL中获得真实的文件URL。

我的url是这样的http://video.premium.com/file/ee7bfec921cfbe16e6f08e282992b99670a00ca3/3

如果我能得到真正的文件url,我可以通过网络播放器直接在线流式传输它,但它需要。mp4或其他文件格式播放,只是url http://video.premium.com/file/ee7bfec921cfbe16e6f08e282992b99670a00ca3/3不起作用。

但是当我使用VLC媒体播放器打开URL时,它可以工作。不能与在线flash或其他播放器一起使用。

这可能吗?怎么做呢?

对于curl,使用this:它跟随重定向直到找到端点。在包含的代码中,我使用了goo。Gl将url缩短为随机图像。您将看到输出是原始链接(它将输出任何数量的重定向及其url),以及最终重定向到实际文件的结果。我想这就是你要找的。我最初并没有写这个,但是一段时间前在某个地方发现了它,并在需要时进行了调整,再次多次使用它。它似乎在许多地方都很适合。很高兴把它传递下去。我认为这可能有助于实现你所寻找的。

<?php
function follow_redirect($url){
   $redirect_url = null;

   if(function_exists("curl_init")){
      $ch = curl_init($url);
      curl_setopt($ch, CURLOPT_HEADER, true);
      curl_setopt($ch, CURLOPT_NOBODY, true);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      $response = curl_exec($ch);
      curl_close($ch);
   }
   else{
      $url_parts = parse_url($url);
      $sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80));
      $request = "HEAD " . $url_parts['path'] . (isset($url_parts['query']) ? '?'.$url_parts['query'] : '') . " HTTP/1.1'r'n";
      $request .= 'Host: ' . $url_parts['host'] . "'r'n";
      $request .= "Connection: Close'r'n'r'n";
      fwrite($sock, $request);
      $response = fread($sock, 2048);
      fclose($sock);
   }

   $header = "Location: ";
   $pos = strpos($response, $header);
   if($pos === false){
      return false;
   }
   else{
      $pos += strlen($header);
      $redirect_url = substr($response, $pos, strpos($response, "'r'n", $pos)-$pos);
      return $redirect_url;
   }
}
$url = 'http://goo.gl/66VJB';

echo '<ol>';
while(($newurl = follow_redirect($url)) !== false){
   echo '<li>', $url, '</li>';
   $url = $newurl;
}
echo '</ol>';

echo '<a href="', $url, '">', $url, '</a>';
?>
输出:

  1. http://goo.gl/66VJB
http://1.bp.blogspot.com/_XE0TDW07Noo/TOSVQXZtgAI/AAAAAAAAELo/aG80jZ7u_fo/s1600/aptitude_test.gif