Google drive üzerinde işlenmiş ve herkese açık videoları kalite seçimine göre alabilmenize yarayacak bir fonksiyon paylaşmak istedim. Fonksiyon alttaki gibidir. Elde edilen cookie ile curl bağlantısı sağladığınızda video/mp4 mime type dosyaya erişim sağlayabilirsiniz.
<?php
## www.kerimyilmaz.com.tr
## 04.18
function getDriveLink($link)
{
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec($ch);
preg_match_all('/^Set-Cookie:s*([^;]*)/mi', $result, $matches);
$cookies = array();
foreach($matches[1] as $item) {
parse_str($item, $cookie);
$cookies = array_merge($cookies, $cookie);
}
$cc = 'Domain=.docs.google.com; Path=/; Secure; ';
foreach($cookies as $k=>$c)
{
if($k == "DRIVE_STREAM")
{
$cc .= ''.$k.'='.$c.'; ';
}
}
$e = explode('url_encoded_fmt_stream_map',$result);
$e1 = explode('","',$e[1]);
$e2 = explode('"]',$e1[1]);
$p = urldecode($e2[0]);
$str=str_replace("u003d",'=',$p);
preg_match('#url=(.*?)quality=hd1080#',$str,$r1080);
$rx = @explode('u0026',$r1080[1]);
$ret = array();
$p1080 = $rx[0];
if($p1080 != "")
{
$ret["1080p"] = array(
'url' => $p1080,
'cookie' => $cc,
);
}
preg_match('#url=(.*?)quality=large#',$str,$r720);
$rx = @explode('u0026',$r720[1]);
$p720 = $rx[0];
if($p720 != "")
{
$ret["720p"] = array(
'url' => $p720,
'cookie' => $cc,
);
}
preg_match('#url=(.*?)quality=large#',$str,$r480);
$rx = @explode('u0026',$r480[1]);
$p480 = $rx[0];
if($p480!="")
{
$ret["480p"] = array(
'url' => $p480,
'cookie' => $cc,
);
}
preg_match('#url=(.*?)quality=medium#',$str,$r360);
$rx = @explode('u0026',$r360[1]);
$p360 = $rx[0];
if($p360!="")
{
$ret["360p"] = array(
'url' => $p360,
'cookie' => $cc,
);
}
return $ret;
}
$out = getDriveLink("https://drive.google.com/file/d/0BwGXXWj-fxjIODI2WTlsT2d4YTA/view");
var_dump($out);