TRLink + YandexDisk api ile Download sayfası

gecemor

Python Developer
Yönetici
Moderator

Üyelik Yaşı
5 Ay
Mesajlar
338
Tepki Puanı
338
Ödül
56
Konum
Milky way
Herkese merhaba,

Öncelikle TRLink ekibine forum için "Hayırlı Olsun" dileklerimi iletmek istiyorum. Yalan yok bugüne kadar denediğim en stabil cpm oranı veren link kısaltma sitesinin, üyeleriyle daha interaktif olmak ve potansiyelini genişletmek adına böyle bir forum sitesi açması bence çok iyi oldu. Ben de yazılımla uğraşan biri olarak kendi forum sitemde kullandığım, indirmelerde özgün linkler üretip kısaltma yapmasi için yazdığım basit bir php scriptini, forum üyelerine alternatif olması ve forumdaki konulara katkı olması açısından paylaşmak istiyorum.

Temel Prensip
Sizin de bildiğiniz gibi kısalttığınız linkler reklamı geçtikten sonra bütün çıplaklığıyla reklamı geçen kişinin eline geçiyor. Bu durumda asıl linke ulaşan şahıs, sizin emek verip kendi kullanıcılarınıza sunduğunuz özgün linki, kendi sitesinde veya orada burada paylaşıma açıp ele ayağa düşürüyor. Hatta kendi link kısaltma servisinden geçirip sizin emeğinizle ekstra gelir elde etmeye çalışabiliyor. Hiç unutmam bundan 3 yıl önce python ile yazdığım bir android uygulaması sağda solda benim sitemdekinden daha çok popüler olmuştu. Ben reklamsız olarak direkt yandex disk linki vermiştim ama millet link kısaltmalara koyarak benim elde etmediğim kârı elde etmişlerdi :) Gerçi hoş, ben de kâr için yazmamıştım. Neyse... İşin mantığı;

1- ilk olarak yandex api kullanarak paylaşıma açtığınız yandex disk linkini dolaylı olarak kullanıma açmış oluyor, yani bu linkin başkaları tarafından indirilmeye çalışıldığında 403 Forbidden mesajı ile karşılaşacaklar.
2- Yandex api'den geçirdiğimiz bu linki en son TRLink apisini kullanarak kısaltıyoruz ve birbirinden farklı linkler üretmiş oluyoruz. Gerçek yandex disk linki de script içinde kalacağından güvende olacak.
Sonuç olarak hazırladığınız yandex disk içeriğini indirmek veya görüntülemek isteyen kişi mecburen TRLink kısaltması yapıp reklamı geçmek zorunda kalacak, gerçek linkiniz güvende olacak.

Kullanım:
Kullanacaklar, script içindeki $apps array'ini kendilerine göre düzenlemelidirler. Mesela;
"HotSpotPass.exe" => ["https://yadi.sk/d/asdasd", "5.54 MB"]
anlayacağınız üzere ilk olarak anahtara uygulamamızın veya sayfamızın görüntülenecek olan ismini yazıyoruz, daha sonra değerlere de linkini ve boyunu yazıyoruz. İsteyen tabiki kendine göre düzenleyebilir, ben kendime göre bu şekilde düzenlemiştim.

Daha sonra $api_token kısmında belirttiğim "TRLink api_token" yerine kendi api tokeninizi yazmalısınız. Nasıl alacağını bilmeyenler, trlink sayfasındaki geliştirici api menüsünde verilen örneklerden tokenlerini alabilir.

Bir de "sitenizin_linki" yazan yere de kendi domain veya ip'nizi yazmalısınız. Tabki bunları ayrıntılı olarak php de acemi olan arkadaşlar için anlatıyorum, az çok bilenler zaten ben demeden anlarlar, hatta benden daha iyi bilenler de daha iyilerini düzenleyebilirler.

Sonrasında ise hostinginizdeki public_html dizinine dosyaları veya varsa sanal sunucunuzun web dizinine atıp kullanabilirsiniz. Tabi isteyen istediği alt dizinlere veya alt domainlere atabilir.

Son olarak linke erişim şu şekilde olacaktır http://alan_adi_veya_ip/downloader.php?app=uygulama_adi yani sayfamızın adı downloader.php ise GET isteğindeki app anahtarinın karşılığına uygulama adımızı yazıyoruz gerisi artık kullanıcıda...

Örnek Link

Php Kodu:
PHP:
<?php


$apps = array(
                "uygulama_veya_icerik_adi"     => ["yandex_disk_linki", "boyut"],
                "baska_bir_uygulama"     => ["yandex_disk_linki", "boyut"],
             );    
       

function TRLink($url){
    $long_url    = urlencode($url);
    $api_token     = "TRLink api_tokeniniz";
    $api_url     = "https://tr.link/api?api={$api_token}&url={$long_url}&alias=&format=text";
    $link         = @file_get_contents($api_url);
    if( $link ){
        return $link;
    }else{
        return $url;
    }
}



function direct_link($url)
{
    $url2 = urlencode($url);
    $api = @json_decode(file_get_contents("https://cloud-api.yandex.net/v1/disk/public/resources/download?public_key=$url2"), TRUE);
    if (in_array("href", array_keys($api)))
    {
        return TRLink("http://sitenizin_linki/downloader.php?direct=" . base64_encode($api['href']));
    }else{
        return "Beklenmedik Bir Hata Oluştu";
    }
}



if (isset($_POST) and isset($_POST['dl']))
{
    $yandex = direct_link($apps[$_POST['dl']][0]);
    echo $yandex;
}


if (isset($_GET['direct']))
{
    $direct = base64_decode($_GET['direct']);
    header("location: $direct");
}


if (isset($_GET['app']))
{
    $app = $_GET['app'];
   
    if (in_array($app, array_keys($apps)))
    {
        ?>
        <html>
            <head>
            <title>Download > <?php echo $app;?></title>
            <script type="text/javascript" src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
            <link rel="icon" href="dl2.png">
            </head>
            <style>
                body {
                  align-items: center;
                  background-color: #495057;
                  background: radial-gradient(ellipse at top, #495057 25%, #33383d 47%, #111315 100%);
                  color: #dee2e6;
                  display: flex;
                  font-family: 'Roboto', sans-serif;
                  font-size: 20px;
                  font-weight: 400;
                  height: 70vh;
                  justify-content: center;
                }

                .field2 button {
                  background: #1a1a1b;
                  right: 0;
                  border: 0;
                  color: #ffffff;
                  width: auto;
                  height: 50px;
                  border-radius: 6px;
                  text-align: center;
                  padding-bottom: 5px;
                  padding-right: 20px;
                  font-size: 22px;
                  cursor: pointer;
                  -webkit-transition: width .3s ease, background .3s ease, opacity .3s ease;
                  transition: width .3s ease, background .3s ease, opacity .3s ease;
                  opacity: 1;
                  text-transform: uppercae;
                  pointer-events: auro;
                }
                .field2 button:hover {background: #9cbee0;color: #1a1a1b;}
                .field2 p {color: #85f39e; font-weight: bold; font-size: 25px }
               
                .lds-dual-ring {
                  display: inline-block;
                  width: 64px;
                  height: 64px;
                }
                .lds-dual-ring:after {
                  content: " ";
                  display: block;
                  width: 46px;
                  height: 46px;
                  margin: 1px;
                  border-radius: 50%;
                  border: 5px solid #fff;
                  border-color: #fff transparent #fff transparent;
                  animation: lds-dual-ring 1.2s linear infinite;
                }
                @keyframes lds-dual-ring {
                  0% {
                    transform: rotate(0deg);
                  }
                  100% {
                    transform: rotate(360deg);
                  }
                }
                </style>
            <body>
                <div class="field2">
                    <center>
                        <img src="dl.png" />
                        <p><?php echo $app;?></p><?php echo $apps[$app][1];?><br><br>
                        <div style="display:None;" id="spinner" class="lds-dual-ring"></div>
                        <button id="<?php echo $app;?>" onclick="get_url(this)">
                            <img src="dl2.png" /> Download
                        </button>
                    </center>
                </div>
            </body>
            <script>
                function get_url(app)
                {
                    spinner.style.display = "block";
                    app.style.display = "None";
                    $.post('downloader.php', {"dl":app.id})
                        .done(function(data){
                            document.location.href = data;
                    });
                }
               
            </script>
        </html>
    <?php
   
    }else{
        echo "uygulama bulunamadi";
    }
}

?>
Tüm dosyalar için link: https://yadi.sk/d/-QvujA8mhzbU0g
 

gecemor

Python Developer
Yönetici
Moderator

Üyelik Yaşı
5 Ay
Mesajlar
338
Tepki Puanı
338
Ödül
56
Konum
Milky way
ilgilenen tüm arkadaşlara teşekkürler, link kısatmalarını daha verimli kullanmak ve emek hırsızlarına karşı bir tedbir amacıyla TRLink kullanan herkese hediyem olsun. İsteyen kendi sistemine göre de düzenleyebilir, herkese iyi forumlar, iyi kazançlar...
 

Üyelik Yaşı
4 Ay
Mesajlar
367
Tepki Puanı
154
Ödül
56
Çok güzel bir çalışma olmuş hocam elinize sağlık. Yalnız video izletiyoruz biz yandexten onlarda sanırım indirme yapması gerek.

Bu özelik ile kimse yandex linkini görmüyor arkadaşlar, anlamayan kişiler için anlatıyorum. Mecburen sizin linkinizi kaydetmek ve sizin linkinizi paylaşmak zorunda kalıyor kişi.
 

gecemor

Python Developer
Yönetici
Moderator

Üyelik Yaşı
5 Ay
Mesajlar
338
Tepki Puanı
338
Ödül
56
Konum
Milky way
Çok güzel bir çalışma olmuş hocam elinize sağlık. Yalnız video izletiyoruz biz yandexten onlarda sanırım indirme yapması gerek.

Bu özelik ile kimse yandex linkini görmüyor arkadaşlar, anlamayan kişiler için anlatıyorum. Mecburen sizin linkinizi kaydetmek ve sizin linkinizi paylaşmak zorunda kalıyor kişi.
Teşekkürler, ne yalan söyleyeyim video izletmeyi hiç denemedim :) ama sanırım indirmeye geçebilir, belki izleme için de farklı bir link üretilebilir. Denemek gerek...
 

Son Eklenenler Yazılar

Üst