Follow me not!


Youtube Downloader Menggunakan PHP

24 May 2007 02:16:06 WIB, under category PHP

Script ini akan membaca halaman Youtube lalu mencari link menuju file video-nya. Lalu, file video tersebut tinggal di download menggunakan download manager. Mungkin sudah ada yang pernah baca listing di bawah ini, saya memang sudah menyebarkannya kemana-mana he.he.

Script ini membutuhkan CURL. Kenapa CURL? Karena kebanyakan webhosting sudah mendisable remote [php]fopen()[/php]. Ok, segera saja kita mulai. Ada lima fungsi di sini, mari kita bahas satu-persatu.

Yang pertama, membaca isi halaman web youtube yang menampilkan video. Di halaman ini, tercantum petunjuk di mana file video sebenarnya tersimpan. Makanya kita harus baca dulu isi halaman youtube-nya:[code]
function get_content_of_url($url){
$ohyeah = curl_init();
curl_setopt($ohyeah, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ohyeah, CURLOPT_URL, $url);
$data = curl_exec($ohyeah);
curl_close($ohyeah);
return $data;
}
?>
[/code]

Yang kedua, kita ambil string yang mengandung petunjuk di mana lokasi file video sebenarnya tersimpan:[code]
function get_flv_link($string) {
if (preg_match('/\/player2\.swf\?(.*)", "a"/', $string, $match)) {
$url = $match[1];
return 'http://youtube.com/get_video.php?'.$url;
}
}
?>
[/code]

Selanjutnya, kita buat fungsi yang bertugas mengunjungi link tersebut. Jika link tersebut dibuka menggunakan browser, kita akan terlempar (forwarded) ke file video tersebut dan otomatis akan muncul dialog download file. Nah, kita manfaatkan CURL untuk mencari tahu di mana kita terlempar:[code]
function get_http_header($url){
$uh = curl_init();
curl_setopt($uh, CURLOPT_URL, $url);
curl_setopt($uh, CURLOPT_HEADER, 1);
curl_setopt($uh, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($uh);
curl_close($uh);
return $res;
}
?>
[/code]
Wait, fungsi ini hanya akan menampilkan HTTP Header. Kita ngga butuh semua, hanya butuh lokasi kemana kita ter-forward.

Nah, fungsi yang ini untuk membaca HTTP Header dan menampilkan lokasinya:[code]
function show_url($http_header){
$arai = explode("\n",$http_header);
foreach($arai as $ini){
if(eregi("location",$ini)) $url = $ini;
}
list($sampah,$hasil) = explode("Location:",$url);
return str_replace("\n","",trim($hasil));
}
?>
[/code]

Terakhir, kita sederhanakan semua fungsi di atas dan bungkus jadi satu fungsi:[code]
function download_youtube($url){
$data = get_content_of_url($url);
$next_url = get_flv_link($data);
$data = get_http_header($next_url);
return show_url($data);
}
?>
[/code]

Jadi deh…
Eit, lalu cara pakenya gimana?[code]
$url = "http://youtube.com/watch?v=SAQZ0BDXn48";
echo download_youtube($url);
?>
[/code]
gitu deh cara pakenya… Kalo pengen lihat demo bagaimana script ini bekerja, tinggal meluncur ke mobi.web.id aja. Cuma di sana udah dipercantik menggunakan ajax.

Well guys, sekian tutorial kita kali ini ^_*

 


17 Comments so far..

  1. funkshit
    24 May 2007, 05:19:21 WIB

    PErtamaxxx

    jadi fopen bisa disable toh
    puantesan saya sering nyoba pake fopen nda bisa . , , ,

    lanjoet juragan

  2. agung
    24 May 2007, 11:37:55 WIB

    kekeke.. ditulis jg tutorialnya. mantabs.. *two brams up* . jeng sandal, kalau fsockopen yang di-disable, gimana ngakalinnya yak?

    @pangsit
    yang dimatiin itu allow_url_fopen, fopen-nya ttp bisa jalan kok, cuma ngga bisa remote.

  3. Jauhari
    18 June 2007, 04:07:54 WIB

    Ancen pinter mas iki rek ;)

  4. Yogi
    02 July 2007, 05:01:26 WIB

    Wah keren nich, ternyata yg bikin orang Indonesia :D . Setelah bikin templatenya 1 jam akhirnya dites di http://www.wpranking.com/video/
    dan berhasil :D , tapi kadang link download yg digenerate panjang amat.

    Thanks buat scriptnya, kl bisa dikembangin lg buat download dari situs2 video lainnya :)

  5. sandal
    02 July 2007, 05:17:06 WIB

    @Yogi
    yupe. ke depannya memang bakal support situs2 video lainnya mas ^_*

  6. Yogi
    02 July 2007, 08:36:33 WIB

    Great :)
    Subscribe feednya deh biar tau kapan ada fitur baru lg :D

  7. EL
    26 July 2007, 22:48:44 WIB

    Thanks.. I’ve just created a new page for this tool on my blog here Also added a backlink to MoBiTools.. :)

    Waiting for the next updated version.. :D

  8. EL
    26 July 2007, 22:49:22 WIB

    Thanks.. I’ve just created a new page for this tool on my blog here Also added a backlink to MoBiTools.. :)

    Waiting for the next updated version.. :D

  9. hhhh
    30 July 2007, 19:09:19 WIB

    uuuuuuuuuuuu

  10. nurhadidi
    27 September 2007, 08:24:49 WIB

    ucapapan selamat buat kawan,di MAN CIWARINGIN-CIREBON ;semoga puasa kami di terima oleh swt amiiiiiiiiiiiiiiiiiiiiiii

  11. Toni McFarland
    09 December 2007, 09:54:58 WIB

    The best YouTube Video Downloader that I have found on the net is TubeSucker. I have done loaded maybe 15 of these things and TubeSucker is by far the best, just because of the way it works, and all of its features. It just does a lot more stuff. Check out the link above. I hope this helps some folks.

  12. augsutinus robert
    05 January 2008, 16:03:31 WIB

    yup

  13. Blek
    07 April 2008, 20:34:55 WIB

    keren mas script nya… kalau mau hosting images ke sini aja ya >>> http://linkget.co.cc

  14. ijul
    28 December 2009, 15:51:16 WIB

    aduh masih bingung, kode2nya harus disimpan dalam file apa?

    misalkan utube.php ato gimana…

    masih nubiw mas, tolongdong….

  15. andika
    02 August 2010, 22:10:02 WIB

    saya download film gratisan, tapi kenapa dibacanya hanya down php padahal sebelum download filenya tipe avi, tolong dong gimana cara merubahnya supaya bisa di buka pake media player sederhana.. tolong…tolong….tolong

RSS for comments TrackBack URL

Leave a comment or two

Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>