error = true; $myObj->msg = $ErrorExaction; $myObj->madeBy = "A.El-zahaby"; $myObj->instagram = "egy.js"; $myJSON = json_encode($myObj,JSON_PRETTY_PRINT); echo $myJSON; exit; } function get_log($dump){ if (isset($_GET['log'])) var_dump($dump).'\n\n\n'; } if(isset($_GET['url']) && $_GET['url'] != ""){ parse_str( parse_url( $_GET['url'], PHP_URL_QUERY ), $vars ); $id=$vars['v']; $dt=file_get_contents("https://www.youtube.com/get_video_info?video_id=$id&el=embedded&ps=default&eurl=&gl=US&hl=en"); if (strpos($dt, 'status=fail') !== false) { $x=explode("&",$dt); $t=array(); $g=array(); $h=array(); foreach($x as $r){ $c=explode("=",$r); $n=$c[0]; $v=$c[1]; $y=urldecode($v); $t[$n]=$v; } $x=explode("&",$dt); foreach($x as $r){ $c=explode("=",$r); $n=$c[0]; $v=$c[1]; $h[$n]=urldecode($v); } $g[]=$h; $g[0]['error'] = true; $g[0]['instagram'] = "egy.js"; $g[0]['apiMadeBy'] = 'El-zahaby'; echo json_encode($g,JSON_PRETTY_PRINT); }else{ $x=explode("&",$dt); $t=array(); $g=array(); $h=array(); foreach($x as $r){ $c=explode("=",$r); $n=$c[0]; $v=$c[1]; $y=urldecode($v); $t[$n]=$v; } $streams = explode(',',urldecode($t['url_encoded_fmt_stream_map'])); // if(empty($streams[0])){ get_error('ops! this video has something wrong! :( '); } if(empty($streams[0])){ get_log($streams); } foreach($streams as $dt){ $x=explode("&",$dt); foreach($x as $r){ $c=explode("=",$r); if ($c[0] == 'itag'){ // reference: https://superuser.com/q/1386658 switch ($c[1]){ case '18': $h['mimeType'] = "mp4"; $h['width'] = "640"; $h['height'] = "360"; $h['qualityLabel'] = '360p'; break; case '22': $h['mimeType'] = "mp4"; $h['width'] = "1280"; $h['height'] = "720"; $h['qualityLabel'] = '720p'; break; case '43': $h['mimeType'] = "webm"; $h['width'] = "640"; $h['height'] = "360"; $h['qualityLabel'] = '360p'; break; default: $h['mimeType'] = null; $h['width'] = null; $h['height'] = null; $h['qualityLabel'] = ''; } } $n=$c[0]; /* => */ $v=$c[1]; $h[$n]=urldecode($v); } $g[]=$h; } echo json_encode($g,JSON_PRETTY_PRINT); // var_dump( $g[1]["quality"],true); } }else{ get_error("Ops, there is no youtube link!"); }