• 03-11-2020, 00:33:00
    #1
    Bildiğimiz üzere PHP Curl veya file_get_contents yöntemi ile YouTube araması yapmak YouTube'un son algoritma ve güvenlik önlemleri neticesinde sonuç almak zorlaştı. Yapılan sorgular ya captcha önlemine takılmakta ya da boş hata sayfasına otomatik olarak yönlendirilmekte. Aşağıdaki örnekte file_get_contents yöntemi ile doğrudan bağlanıldığında karşımıza çıkan hata sayfasını göreceksiniz.


    Yukarıdaki örnekte görüldüğü üzere YouTube'un güvenlik önlemi devreye girdiği için bizi direk kendi sunucumuzdaki hata sayfasına yönlendiriyor. Bu nedenle YouTube üzerinden veri çekemiyoruz. Şimdi bunu aşacak ve dahi sınırsız sorgu imkanı bize sunacak kodu sizler ile paylaşıyorum. Bu sayede YouTube'dan sınırsız sorgu ile arama yapabileceksiniz.

    Verdiğim kod ile YouTube'un yönlendirme isteğini iptal ediyoruz. Yönlendirme iptal edildikten sonra tüm veriler YouTube'un kendi bünyesindeki bir script kodunda json ile depolanıyor. Biz de bu depolanan verileri json_decode ile parse edip tüm verileri okuyoruz. Bu sayede YouTube'a tam erişim sağlamadan tüm verileri okumuş ve bizim işimize yarayan bölümleri php ile yazdırmış oluyoruz.

    <?php
    
    set_time_limit(0);
    error_reporting(0);
    $correctString = $_GET["video_title"];
    $youtubeUrl = "https://www.youtube.com/results?search_query=".urlencode($correctString)."&sp=EgIQAQ%253D%253D&hl=tr&gl=TR";
    $getHTML = file_get_contents($youtubeUrl);
    
    $data = str_replace("https://www.youtube.com/", "", $getHTML);
    
    preg_match('@var ytInitialData =(.*?)</script>@si', $data, $bilgi);
    $json = str_replace(array("};", "// scraper_data_end"), array("}", ""), $bilgi[1]);
    
    $youtube_data = json_decode($json); ?>
    
    <b>Toplam Sonuç</b> : <?php echo $youtube_data->estimatedResults;?><br /><br />
    
    <?php
    $say = "0";
    foreach($youtube_data->contents->twoColumnSearchResultsRenderer->primaryContents->sectionListRenderer->contents as $datas) {
    foreach($datas->itemSectionRenderer->contents as $datas2) {
    if($datas2->videoRenderer->videoId == "") { } else {
    $say++;
    $description = "";
    foreach($datas2->videoRenderer->descriptionSnippet->runs as $descriptions) {
    $description .= $descriptions->text;
    }
    
    ?>
    
    <b>Video Linki</b> : <?php echo "https://www.youtube.com/watch?v=".$datas2->videoRenderer->videoId."";?><br />
    <b>Video Resmi</b> : <?php echo "http://img.youtube.com/vi/".$datas2->videoRenderer->videoId."/mqdefault.jpg";?><br />
    <b>Video Title</b> : <?php echo $datas2->videoRenderer->title->runs[0]->text;?><br />
    <b>Video Açıklama</b> : <?php echo $description;?><br />
    <b>Video İzlenme</b> : <?php echo $datas2->videoRenderer->viewCountText->simpleText;?><br />
    <b>Video Süresi</b> : <?php echo $datas2->videoRenderer->lengthText->simpleText;?><br />
    <b>Channel Adı</b> : <?php echo $datas2->videoRenderer->longBylineText->runs[0]->text;?><br />
    <b>Channel ID</b> : <?php echo $datas2->videoRenderer->longBylineText->runs[0]->navigationEndpoint->browseEndpoint->browseId;?><br />
    <b>Channel Resim</b> : <?php echo $datas2->videoRenderer->channelThumbnailSupportedRenderers->channelThumbnailWithLinkRenderer->thumbnail->thumbnails[0]->url;?><br />
    -----------------------------------------------------------------------------------------------------------------<br /><br />
    
    <?php } } } if($say == "0") {echo "Herhangi Bir Sonuç Bulunamadı...";} ?>
    Demo: https://carsipazar.shop/youtube?video_title=Tarkan
    Kaynak Dosyaları ve YouTube Mp3 İndirme Kodlamaları: https://www.r10.net/ucretsiz-scriptl...siz-sorgu.html
  • 03-11-2020, 00:36:00
    #2
    Demo linki kırık
  • 03-11-2020, 00:37:10
    #3
    elinize saglık hocam
  • 03-11-2020, 00:37:15
    #4
    WebCodeOn adlı üyeden alıntı: mesajı görüntüle
    Demo linki kırık
    https://carsipazar.shop/youtube?video_title=Tarkan
    Bunu Deneyin. Kırık Değil

    doganemrex adlı üyeden alıntı: mesajı görüntüle
    elinize saglık hocam
    Rica Ederim...
  • 03-11-2020, 00:38:28
    #5
    sahibinden botu nasıl yapılır ?
  • 03-11-2020, 00:39:04
    #6
    Güzel yöntem teşekkürler
  • 03-11-2020, 00:40:04
    #7
    AppsTRDesign adlı üyeden alıntı: mesajı görüntüle
    https://carsipazar.shop/youtube?video_title=Tarkan
    Bunu Deneyin. Kırık Değil



    Rica Ederim...
    Teşekkürler. Mobilden çok kontrol edemedim. Link çalışıyor.
  • 03-11-2020, 00:42:52
    #8
    bero adlı üyeden alıntı: mesajı görüntüle
    sahibinden botu nasıl yapılır ?
    Üzerinde çalışıyorum

    emrtnm adlı üyeden alıntı: mesajı görüntüle
    Güzel yöntem teşekkürler
    Rica ederim. YouTube ne zaman önlem alsa bir açığını buluyoruz şükür

    WebCodeOn adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler. Mobilden çok kontrol edemedim. Link çalışıyor.
    Rica ederim test ettiğinize sevindim
  • 03-11-2020, 00:44:52
    #9
    elinize sağlık. iki sorum olacaktı;

    1- açıklama kısmının tamamını alabiliyor muyuz?
    2- arama sonuçlarını sayfa sayfa alabilir miyiz?

    teşekkürler.