• 20-06-2009, 03:49:06
    #1
      
    $gir = DosyaAl("http://208.117.236.69/get_video_info?video_id=".$_GET[k]);
    parse_str($gir);
    $Videourl = "http://208.117.236.69/get_video.php?video_id=".$_GET[k]."&t=".$token;
    arkadaşlar youtubedan video çekmeyeçalışıorum..
    olacak gibi ama şu $token değerinde problem var. problemde şu;
    site içine gelen $gir ile içine girdiğim dosyadaki token değeri yaptığım kodlamayla site içine gönderdiği token değerleri farklı bu neden kaynaklanıyor. bunu nasıl çözebiliriz...
    soruyu örnekleyecek olursam:
    YouTube - AJDA PEKKAN FLU GIBI videosunun
    get_video_info dosyasını indirelim
    http://208.117.236.69/get_video_info...id=H_2WHkpsT5w dosyayı indirip
    bu dosyayı açtığımızda token=vjVQa1PpcFOINPMDCpD8NuuSl3COia3q1JXBhTCcbVw= olduğu görülecektir..
    http://208.117.236.69/get_video.php?...3q1JXBhTCcbVw= adresinden video erişim sağlandı.
    ama bu token değeri site içine bu değerle dönmüyor
    token=vjVQa1PpcFPb3sH95CzUUEgMZ3u4nrrfgSLCsmIUDcs= gibilerinden sürekli değişken bir değer gönderiyor. bunu nasıl düzeltebiliriz...
  • 20-06-2009, 04:52:22
    #2
    sanırım aşağıdaki kod işinizi görecektir. youtube id yazarak çağırdığınız da sizi direk flv adresine yönlendirecektir. bir nevi proxy gibi de kullanabilirsiniz

    verdiğiniz örneğe göre kullanırsak youtube.php?v=H_2WHkpsT5w şeklinde kullandığınızda sizi aşağıdaki gibi flv urlsine yönlendirecektir.

    hxxp://v24.lscache5.googlevideo.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip% 2Cipbits%2Citag%2Cburst%2Cfactor&itag=18&ipbits=0& signature=8B157C11943A4B6466EBEC1158ADA696C2B6E599 .7263B291975D2339074445C4FC10B2C36E6E49B8&sver=3&e xpire=1245484800&key=yt1&factor=1.25&burst=40&id=1 ffd961e4a6c4f9c


    <?php
    $videoid=$_GET["v"];
    $format = $_GET["fmt"];
    if(empty($format)) $format = 18;
    $content= file_get_contents("http://youtube.com/get_video_info?video_id=$videoid");
    parse_str($content);
    $url = "http://www.youtube.com/get_video.php?video_id=" . $videoid . "&t=" . $token. "&fmt=".$format;
    $headers = get_headers($url);
    
    foreach($headers as $h){
    if(strpos($h,"googlevideo.com")!=false){
    $url = substr($h,10);
    break;
    }
    }
    
    header("Location: $url");
    ?>
  • 20-06-2009, 05:49:25
    #3
    hocam anlamadığım bi şekilde foreach döngüsünde hata çıkıor..
    Warning: Invalid argument supplied for foreach() in /home/yyy/xxx.com/ttvideo.php on line 12
    birde host yurtdışı lokasyonlu olması gerekmezmi bunun içinn
  • 20-06-2009, 08:55:53
    #4
    Üyeliği durduruldu
    ttvideo.php on line 12. satırı kopy edersen yardım edebiliriz.
  • 20-06-2009, 13:55:03
    #5
    napster4 adlı üyeden alıntı: mesajı görüntüle
    hocam anlamadığım bi şekilde foreach döngüsünde hata çıkıor..
    Warning: Invalid argument supplied for foreach() in /home/yyy/xxx.com/ttvideo.php on line 12
    birde host yurtdışı lokasyonlu olması gerekmezmi bunun içinn

    evet hostunuzun yurtdışında olması gerekiyor, aksi halde aşağıdaki satır bilgiyi çekemeyeceği için kod çalışmayacaktır.

    ;
    $content= file_get_contents("http://youtube.com/get_video_info?video_id=$videoid");
  • 20-06-2009, 14:02:13
    #6
       <?php
     ob_start();
     include("includes/ayar.php");
    $videoid=$_GET["k"];
    //$format = $_GET["fmt"];
    if(empty($format)) $format = 18;
    $content= DosyaAl("http://www.youtube.com/get_video_info?video_id=$videoid");
    parse_str($content);
    $url = "http://www.youtube.com/get_video.php?video_id=".$videoid . "&t=".$token."&fmt=".$format;
    $headers = get_http_header($url);
    
    foreach($headers as $h){
    if(strpos($h,"googlevideo.com")!=false){
    $url = substr($h,10);
    break;
    }
    }
    echo $url;
    header("Location: $url");
    ob_end_flush();
    ?>
    12inci satır
    foreach($headers as $h){
    victories yazdığı cevapta $headers = get_header($url); satırındaki get_headers().. fonksiyonu bende çalışmadı içinde şöyle bir yapı kullandımm..
    $headers = get_http_header($url)
    get_http_header fonksiyonuda
    function get_http_header( $url ){
        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_URL, $url );
        curl_setopt( $ch, CURLOPT_HEADER, 1 );
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt( $ch, CURLOPT_NOBODY, 1 );
        $ret = curl_exec( $ch );
        curl_close( $ch );
        return $ret;
    }
    şeklinde yaptımm..

    header("Location: $url");
    satırındada şöyle bir hata var.
    Warning: Cannot modify header information - headers already sent by (output started at /home/yyyy/xxx.com/ttvideo.php:1) in /home/yyyy/xxx.com/ttvideo.php on line 19
    kullandığım host dreamhost....
  • 20-06-2009, 14:37:25
    #7
    verdiğim kodları scriptinize entegre etmek yerine ayrı bir dosya olarak kullanın,

    mesela youtube.php?v=H_2WHkpsT5w şeklinde tarayıcıdan çağırdığınız da size download penceresi çıkarıyor mu?

    eğer getiriyorsa flashplayerda file= kısmı için direk php dosyasını kullanın örneğin

    victories

    &fmt değişkeni ile oynayarak hem normal hem hd görüntü alabilirsiniz.

    sayfanın kaynak kodunu inceleyin lütfen.
  • 20-06-2009, 17:02:11
    #8
    victories adlı üyeden alıntı: mesajı görüntüle
    verdiğim kodları scriptinize entegre etmek yerine ayrı bir dosya olarak kullanın,
    mesela youtube.php?v=H_2WHkpsT5w şeklinde tarayıcıdan çağırdığınız da size download penceresi çıkarıyor mu?
    eğer getiriyorsa flashplayerda file= kısmı için direk php dosyasını kullanın örneğin
    victories
    &fmt değişkeni ile oynayarak hem normal hem hd görüntü alabilirsiniz.
    sayfanın kaynak kodunu inceleyin lütfen.
    hocam dediğiniz gib yaptım ama
    foreach($headers as $h){
    satırınDA
    Warning: Invalid argument supplied for foreach() in /home/yyyy/xxx.com/ttvideo.php on line 16
    şeklinde hata ile karşılaşıyorum...bu satırı geçemediği içinde proxy gibi göremior sunucu, diye tahmin ediyorum..
  • 20-06-2009, 17:32:30
    #9
    sunucudan kaynaklanıyor diye düşünüyorum, dilerseniz kendi sunucumdan yer açayım test edin kodlarınızı