the.sandalian.com 

dan Yeni Setiawan pun menulis dengan penuh sukacita.. 

Youtube Downloader Menggunakan PHP

24 May 2007 02:16:06 WIB,under category PHP (6407 views)

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:


<?php
function get_content_of_url($url){ 
   
$ohyeah curl_init(); 
   
curl_setopt($ohyeahCURLOPT_RETURNTRANSFER1); 
   
curl_setopt($ohyeahCURLOPT_URL$url); 
   
$data curl_exec($ohyeah); 
   
curl_close($ohyeah); 
   return 
$data

?>

Yang kedua, kita ambil string yang mengandung petunjuk di mana lokasi file video sebenarnya tersimpan:


<?php
function get_flv_link($string) { 
        if (
preg_match('/\/player2\.swf\?(.*)", "a"/'$string$match)) { 
            
$url $match[1]; 
            return 
'http://youtube.com/get_video.php?'.$url
        } 

?>

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:


<?php
function get_http_header($url){ 
   
$uh curl_init(); 
   
curl_setopt($uhCURLOPT_URL$url); 
   
curl_setopt($uhCURLOPT_HEADER1); 
   
curl_setopt($uhCURLOPT_RETURNTRANSFER1); 
   
$res curl_exec($uh); 
   
curl_close($uh); 
   return 
$res

?>
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:


<?php
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)); 

?>

Terakhir, kita sederhanakan semua fungsi di atas dan bungkus jadi satu fungsi:


<?php
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); 
}
?>

Jadi deh...
Eit, lalu cara pakenya gimana?


<?php
$url 
"http://youtube.com/watch?v=SAQZ0BDXn48"
echo 
download_youtube($url);
?>
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 ^_*

 

15 comment

Comment

  1. funkshit
    24 May 2007 05:19:21
    PErtamaxxx

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

    lanjoet juragan
     
  2. agung
    24 May 2007 11:37:55
    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 Jun 2007 04:07:54
    Ancen pinter mas iki rek ;)
     
  4. Yogi
    02 Jul 2007 05:01:26
    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 Jul 2007 05:17:06
    @Yogi
    yupe. ke depannya memang bakal support situs2 video lainnya mas ^_*
     
  6. Yogi
    02 Jul 2007 08:36:33
    Great :)
    Subscribe feednya deh biar tau kapan ada fitur baru lg :D
     
  7. EL
    26 Jul 2007 22:48:44
    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 Jul 2007 22:49:22
    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 Jul 2007 19:09:19
    uuuuuuuuuuuu
     
  10. nurhadidi
    27 Sep 2007 08:24:49
    ucapapan selamat buat kawan,di MAN CIWARINGIN-CIREBON ;semoga puasa kami di terima oleh swt amiiiiiiiiiiiiiiiiiiiiiii
     
  11. Toni McFarland
    09 Dec 2007 09:54:58
    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 Jan 2008 16:03:31
    yup
     
  13. UHoKeHTuu
    12 Jan 2008 13:36:45 
  14. Radik
    21 Jan 2008 07:01:34 
  15. Blek
    07 Apr 2008 20:34:55
    keren mas script nya... kalau mau hosting images ke sini aja ya >>> http://linkget.co.cc
     
 
Name
Email « Gravatarized
Homepage
preview
Blog ini mendukung gerakan "NO NOFOLLOW" V^_^

HTML tags allowed: <a> <u> <b> <i> <s> <sub> <sup>