Quantcast
Channel: Active questions tagged youtube-api - Stack Overflow
Viewing all articles
Browse latest Browse all 3640

signature issue when I want to get a direct URL from YouTube via PHP

$
0
0

after research to how i get direct URL from YouTube videos like this one asking : How to get direct URL of video from YouTube URL? [closed]

i finally made a simple script to generate a direct URL from YouTube video with php and it works just fine, but not with all videos

it doesn't work with "signature" videos,

this is my code:

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");    //var_dump(explode("&",$dt));    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']));        foreach($streams as $dt){             $x=explode("&",$dt);            foreach($x as $r){                $c=explode("=",$r);                $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{    @$myObj->error = true;    $myObj->msg = "there is no youtube link";    $myObj->madeBy = "El-zahaby";    $myObj->instagram = "egy.js";    $myJSON = json_encode($myObj,JSON_PRETTY_PRINT);    echo $myJSON;}

example of issue : https://you-link.herokuapp.com/?url=yt.com?v=csy7cF1T2vksignature error YouTube API

update:

the code on : gist.github

any solution ? thanks a lot


Viewing all articles
Browse latest Browse all 3640

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>