• 14-07-2010, 23:10:52
    #1
    curl ile bir çalışma yaptımda resmi nasıl gösterebilirim video yu nasıl oynatabilrim ?
    şimdiden teşekkür ederim
  • 15-07-2010, 13:49:41
    #2
    bir çzöüm yolu bulamadım daha
  • 15-07-2010, 13:52:09
    #3
    by_crazy adlı üyeden alıntı: mesajı görüntüle
    curl ile bir çalışma yaptımda resmi nasıl gösterebilirim video yu nasıl oynatabilrim ?
    şimdiden teşekkür ederim

    kodlarını koyarsan daha cabuk çözüme ulaşırsın zaten curl ile çalışma yaptıysan videoyu oynatabilir resimide gösterebilirsin ??
    sen videoyu downmu ettireceksin veya resimi direk linktenmi açıyorsun bilgiler ver bari
  • 15-07-2010, 14:23:06
    #4
    by_crazy adlı üyeden alıntı: mesajı görüntüle
    curl ile bir çalışma yaptımda resmi nasıl gösterebilirim video yu nasıl oynatabilrim ?
    şimdiden teşekkür ederim
    aşağıdaki kod youtube flvleri için, bunu almak istediğin videolara uyarlayabilirsin (örneğin çekeceğin video mp4 se header kısmını değişmen lazım.)

    aradığın kısım curl_setopt($ch, CURLOPT_WRITEFUNCTION,"progress_function"); dan sonra başlıyor

       <?php
    /*
    fmt 13 = 3gp Low Quality - 176x144 
    fmt 17 = 3gp Medium Quality - 176x144
    fmt 36 = 3gp High Quality - 320x240
    5 = flv Low Quality - 320x240
    34 = flv Medium Quality - 400x226
    18 = mp4 High Quality - 480x360
    22 = mp4 High Quality - 1280x720
    */
    
    $videoid=$_GET["v"];
    $format = $_GET["fmt"];
    if(empty($format)) $format = 36; //17
    $content= file_get_contents("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_headers($url,1);
    
    if(!is_array($headers['Location'])) {
    $url = $headers['Location'];
    }else {
    foreach($headers['Location'] as $h){
    if(strpos($h,"googlevideo.com")!=false){
    $url = $h;
    break;
    }
    }
    }
    if(isset($_GET["debug"])){
    print "URI: $url<br/>" ;
    echo "<pre>";print_r($headers);
    die("it's all folks!");
    }
    
    if (($format == 13) || ($format == 17) || ($format == 36))
    {
        $uzanti = "3gp";
    } else if (($format == 5) || ($format == 34))
    {
        $uzanti = "flv";
    } else if (($format == 18) || ($format == 22))
    {
        $uzanti = "mp4";
    }
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    curl_setopt($ch, CULROPT_REFERER, "http://www.google.com/");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_WRITEFUNCTION,"progress_function");
    
    $data = curl_exec($ch);
    
    $i = 0;
    
    function progress_function($ch,$str) {  
          global $i,$_GET,$uzanti;
        if($i == 0)
        {
            $info = curl_getinfo($ch);
            header('Content-type: video/x-flv');
            header("Content-Disposition: attachment; filename=\"divxklip-" . $_GET['v'] . ".".$uzanti."\"");
            header("Content-Length: " . $info['download_content_length']);
            $i = 1;
        }
    
        echo $str;  
        return strlen($str);
    }
    curl_close($ch);
    ?>
  • 15-07-2010, 14:28:56
    #5
    işin açığı youtubeden ben sadece smfye uyarladım ama video linklerini almıyordum sadece videonun bulundugu sayfayı alıyordum smf de otomatik olarak video eklentisi ile cevirip koyyordu siteye ama dns problemi var diye bıraktım direk bu sekilde hiç çalışma yapmadım

    konu üzerinde uzman arkadaşlar vardır umarım yardımcı olurlar
    senin istediğin proxy ile video oynatmak
  • 15-07-2010, 14:34:51
    #6
    ByTriSLaSiS adlı üyeden alıntı: mesajı görüntüle
    işin açığı youtubeden ben sadece smfye uyarladım ama video linklerini almıyordum sadece videonun bulundugu sayfayı alıyordum smf de otomatik olarak video eklentisi ile cevirip koyyordu siteye ama dns problemi var diye bıraktım direk bu sekilde hiç çalışma yapmadım

    konu üzerinde uzman arkadaşlar vardır umarım yardımcı olurlar
    senin istediğin sanırım proxy ile video oynatmak
    evet dedigin gibi
  • 15-07-2010, 16:52:55
    #7
    victories adlı üyeden alıntı: mesajı görüntüle
    aşağıdaki kod youtube flvleri için, bunu almak istediğin videolara uyarlayabilirsin (örneğin çekeceğin video mp4 se header kısmını değişmen lazım.)

    aradığın kısım curl_setopt($ch, CURLOPT_WRITEFUNCTION,"progress_function"); dan sonra başlıyor

       <?php
    /*
    fmt 13 = 3gp Low Quality - 176x144 
    fmt 17 = 3gp Medium Quality - 176x144
    fmt 36 = 3gp High Quality - 320x240
    5 = flv Low Quality - 320x240
    34 = flv Medium Quality - 400x226
    18 = mp4 High Quality - 480x360
    22 = mp4 High Quality - 1280x720
    */
    
    $videoid=$_GET["v"];
    $format = $_GET["fmt"];
    if(empty($format)) $format = 36; //17
    $content= file_get_contents("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_headers($url,1);
    
    if(!is_array($headers['Location'])) {
    $url = $headers['Location'];
    }else {
    foreach($headers['Location'] as $h){
    if(strpos($h,"googlevideo.com")!=false){
    $url = $h;
    break;
    }
    }
    }
    if(isset($_GET["debug"])){
    print "URI: $url<br/>" ;
    echo "<pre>";print_r($headers);
    die("it's all folks!");
    }
    
    if (($format == 13) || ($format == 17) || ($format == 36))
    {
        $uzanti = "3gp";
    } else if (($format == 5) || ($format == 34))
    {
        $uzanti = "flv";
    } else if (($format == 18) || ($format == 22))
    {
        $uzanti = "mp4";
    }
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    curl_setopt($ch, CULROPT_REFERER, "http://www.google.com/");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_WRITEFUNCTION,"progress_function");
    
    $data = curl_exec($ch);
    
    $i = 0;
    
    function progress_function($ch,$str) {  
          global $i,$_GET,$uzanti;
        if($i == 0)
        {
            $info = curl_getinfo($ch);
            header('Content-type: video/x-flv');
            header("Content-Disposition: attachment; filename=\"divxklip-" . $_GET['v'] . ".".$uzanti."\"");
            header("Content-Length: " . $info['download_content_length']);
            $i = 1;
        }
    
        echo $str;  
        return strlen($str);
    }
    curl_close($ch);
    ?>
    ya 2 sattatir incdeledim araştırdım dah açık şekli yok mu