/*
Made by [egyJs.com](https://www.instagram.com/egyjs/);
*/
install it on your localhost and try it :
/*
Made by [egyJs.com](https://www.instagram.com/egyjs/);
*/
install it on your localhost and try it :
<?php | |
/* | |
Made by [egyJs.com](https://www.instagram.com/egyjs/); | |
v2.0 | |
*/ | |
header('Access-Control-Allow-Origin: *'); | |
header('Content-Type: application/json'); | |
function get_error($ErrorExaction){ | |
$myObj = new stdClass(); | |
$myObj->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!"); | |
} |
first url,
i did not understand this
first url,
i did not understand this
I'm playing around with lhuxman-lhux's script and starting to figure it out... Not every itag is working in his code (he says it's still in development). The ones that are working for me are 299, 251, 313, 137, 248. You can see what those itags correspond to within his switch statement at the top of the script. There are more of them that work, but the ones I listed are for 1080p60, 1080p, 360p, and 4k.
Also, @lhuxman-lhux do you mind if I also fork this? This is really well made.
first url,
i did not understand this
I'm playing around with lhuxman-lhux's script and starting to figure it out... Not every itag is working in his code (he says it's still in development). The ones that are working for me are 299, 251, 313, 137, 248. You can see what those itags correspond to within his switch statement at the top of the script. There are more of them that work, but the ones I listed are for 1080p60, 1080p, 360p, and 4k.
Also, @lhuxman-lhux do you mind if I also fork this? This is really well made.
please contact me:
lhuxman19@gmail.com
Why I am getting no response.
Entered URL: http://youlink.epizy.com/?url=https://www.youtube.com/watch?v=QIKv7j0bTyM
Why I am getting no response.
Entered URL: http://youlink.epizy.com/?url=https://www.youtube.com/watch?v=QIKv7j0bTyM
Yeah the API doesn't seem to be working anymore... There arent any good alternatives I could find either...
So after all the research, I have done, I found a better solution and implemented and hosted it on Heroku...
Link: https://maadhav-ytdl.herokuapp.com/
Please let me know if any more features are needed. Thanks.
I hope it helps all others...
So after all the research, I have done, I found a better solution and implemented and hosted it on Heroku...
Link: https://maadhav-ytdl.herokuapp.com/
Please let me know if any more features are needed. Thanks.
I hope it helps all others...
This is really good, great work! Is it, by chance, open source? I may be able to add if the video has audio or not. I'd have to look at some old code of mine and see...
Edit: nevermind, seems like you got that already implemented. Might I suggest the "format" be an array just to make things easier?
Thanks! I have given the source code just below the title.
Anyway: https://github.com/Maadhav/youtube-downloader-API
Thanks! I have given the source code just below the title.
Anyway: https://github.com/Maadhav/youtube-downloader
Cool man! Big ups for making this.
@Maadhav
I just tried with the package you built.
$yt = new YouTubeDownloader();
$links = $yt->getDownloadLinks("https://www.youtube.com/watch?v=LJzCYSdrHMI");
var_dump($links); exit;
I am getting array(0) {}
as a result.
How can I get working url with above url ?
does this still work?
I love u <3 <3 u saved my life <3 its working
Thanks! I have given the source code just below the title.
Anyway: https://github.com/Maadhav/youtube-downloader-API
Great work man.. hopefully this remains working for a longer time.
I found an error when running on Repl.it:
[Tue Dec 15 22:14:00 2020] PHP Notice: Undefined index: url_encoded_fmt_stream_map in /home/runner/FreeYoutube/index.php on line 66 [Tue Dec 15 22:14:00 2020] PHP Notice: Undefined offset: 1 in /home/runner/FreeYoutube/index.php on line 102
@jazzy8 Can u send the repl.it public URL for the project u are trying to run?
I created a Javascript variant for anyone not wanting to rely on calling an external API, https://gist.github.com/JMV2112/f131f6d7c7782eb6e54c72f4da735ec0
this doesnt work
This no longer works 😞
first url,