• 11-12-2012, 22:41:51
    #1
    200K video arasında 3-5 bin artık çalışmayan(kaldırılan vs) video olabiliyor,ve bunları tek tek kontrol edip kaldırmak imkansız gibi,

    hatırladığım kadarı ile (yanlış olabilir),bu çalışmayan videoları, thumb 'ları üzerinden kontrol edilmesi gibi bir yöntem vardı ? ama bulamadım ?

    veya sizlerin bildiği bir yöntemi paylaşmanız mümkünmü ?
  • 12-12-2012, 14:36:33
    #2
    youtube linklerinin tamamı id üzerinden çalışır. youtube id lerini alıp, curl ile header kontrolü yparsanız çıkan sonuca göre videoyu kaldırabilirsiniz.
  • 12-12-2012, 16:10:39
    #3
    phpmelody scriptinde var bu özellik, php bilginiz varsa kodları inceleyip scriptinize uyarlayabilirsiniz.
  • 13-12-2012, 01:22:05
    #4
    cevaplarınız için çok teşekkür ediyorum ;

    get_video_info yu bi alabilsem "status=fail" ile halletcemde , cık olmadı, curl ile de olmadı , file_get_contents ile yapabilirmiyimki ? denemedim ama ? get_video_info yu alıp parçalayınca iş bitecek de ? de si var bide işde
  • 13-12-2012, 01:39:30
    #5
    aşağıdakinin paylaşımlı sunucular dahil her yerde çalışması lazım.

    headers = get_headers('http://gdata.youtube.com/feeds/api/videos/' . $youtubeid);
    if (!strpos($headers[0], '200')) {
        echo "video silinmis veya ulke kisitlamasi var";
        return false;
    }

    curl ile denemek istersen (kodu çok önce pc ye kaydetmiştim nerde aldığımı hatırlamıyorum.

    if(isset($_GET['id'])){
    $check = "http://gdata.youtube.com/feeds/api/videos/".$_GET['id'];
    $ch = curl_getinfo(); // create cURL handle (ch)
    if (!$ch) {
        die("Couldn't initialize a cURL handle");
    }
    // set some cURL options
    $ret = curl_setopt($ch, CURLOPT_URL,            $check);
    $ret = curl_setopt($ch, CURLOPT_HEADER,         0);
    $ret = curl_setopt($ch, CURLOPT_QUOTE,           0);
    $ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    $ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    $ret = curl_setopt($ch, CURLOPT_TIMEOUT,        30);
    
    // execute
    $ret = curl_exec($ch);
    
    if (empty($ret)) {
        // some kind of an error happened
        die(curl_error($ch));
        curl_close($ch); // close cURL handler
    } else {
        $info = curl_getinfo($ch);
        curl_close($ch); // close cURL handler
    
        if (empty($info['http_code'])) {
                die("No HTTP code was returned");
        } else {
            // echo results
            if($info['http_code'] == 200){
            echo "<br/>Video Exsist";}else{ echo "</br>Video Dose NOT Exsist"; }
        }
    
    }
    }
    daha basitçe aşağıdaki şekilde xml çekip status kontrol edebilirsin.

    $check = simplexml_load_file("http://gdata.youtube.com/feeds/api/videos/".$_GET['id']);
  • 13-12-2012, 01:48:30
    #6
    kardeşim çok teşekkür ederim , cevabın ilgin alakan için , hallettim sayende
  • 13-12-2012, 20:10:05
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    youtubenin mobil sürümden yola çıkarak video adresinin kaynağında " .3gp " deyimini aratarak videonun çalışıp, çalışmadığını anlayabiliriz.