folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder $.Getjson Fonksiyonunu Return Döndürmüyor?



$.Getjson Fonksiyonunu Return Döndürmüyor?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    smart tv appları hakkında az çok bilgim var samsung tv için app akımı başlatmıştım donanımhaberde. 

    Şimdi direkt olarak mail.ru üzerinden o json dosyasını çekemiyorsan ki çekebileceğini de sanmıyorum cors zamazingosuna takılıyor, php ile bir server üzerinden json dosyasını çekip ayıklayarak xml veya rss olarak çıktı basıp applicationuna o şekilde çekebilirsin urlyi.

    Ayıkladığın urlyi tv açmıyorsa, ajaxla getireceğin urlyi de açmayacaktır zaten.

    Eğer url callback istiyor da 403 bastırıyorsa herhangi bir şekilde mail.ru sunucusundan callback alıp, urlye erişim yapabilmeyi deneyeceksin. 

    Eğer 403 hatası olmasa dahi gelen video smart tv playerında çalışmıyorsa htmlne player gömüp aldığın linki o playerda çalıştıracaksın. 

    Eğer smart tv html üzerinde swf ya da java playerlara olanak tanımıyorsa hiç bir şekilde mail.ru daki videoyu izlettiremezsin zaten codec meselesi yüzünden.

    Senin konu başlangıcında bahsettiğin json dosyasını çekip ayıklayamamak ama geldiğimiz nokta php ile ayıklasam da smart tv açmıyor meselesi. json dosyasını ajaxla çekicem diye uğraşma boşuna aldığın linki nasıl oynatacaksın ona yoğunlaş.

    jsonu direk çektiğinde hata vermeden oynatacak mı tv?

    -buraya büdüt: incelediğim kadarıyla evet oynatacak sonuçta mp4 codec problemi olmayacak, mail.ru oluşturduğu hash değerleri de json dosyasını çektiğin yere göre oluştuğu için tv direk oynatmaya başlayacak fakat cors zamazingosu nedeniyle takılıp kalıyoruz -

    Son verdiğin linke göre mail.ru callback istiyor o nedenle oynamıyor o url. Ona çözüm bulmaya çalış. 

    Örnek vereyim denemedim ama çalışacağını düşünüyorum; sunucu üzerinde bir php dosyan olur bu urlyi bulursun, yine bu urlyi get ile çeker çıktıyı stream ile basarsın o streamıda tvde çalıştırmayı denersin.

    pesimistzombie tarafından 22/Nis/15 17:34 tarihinde düzenlenmiştir

    :|
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Kanakan
    Kanakan's avatar
    Kayıt Tarihi: 21/Aralık/2014
    Erkek

    @pesimistzombie

    su asagidaki sekilde sunucu üzerindeki php kodlariyla url aliyorum.

    simdi bu urlyi get ile çeker çıktıyı stream ile basarsın o streamıda tvde çalıştırmayı denersin.
    Bu urlu simdi get ile cekiyorum  nstreamlmod player calistirmiyor?

    Nasil bir yol denemeliyim?Sanirim json dosyasi olusturdugu url adresini ya cookie yada ip adresine göre olusturuyor.Aldigim url o nedenle calismiyor gibime geliyor.Bir cözüm bulamadim.Iste ben JS ile kendi TV icinde bu url ondan dolayi almak istedim.Eger url ya Cookie yada IP adresine göre üretiliyorsa TV nin kendi IP adresine göre üretilsin diye...!

    function mailru($jsonlink)
    {   
    	     // gelen veri su sekilde http://videoapi.my.mail.ru/videos/mail/hdfullfilmizlesene/_myvideo/865.json
    		$json = file_get_contents($jsonlink);
            $obj = json_decode($json);
                   foreach($obj->videos as $video){
    			   if($video->key=='480p')
    			       echo $video->url;
    
    
       }
    }

    Gelen url söyle bir sey:
    http://cdn23.my.mail.ru/hv2/53923052.mp4?sign=9349ca1f753447c498513bc65ca1d5854c50d51d&slave[]=s:http://127.0.0.1:5010/53923052-hv2.mp4&p=f&expire_at=1429822800&touch=1429308370

     

    Birde dikkatimi ckene birsey var.Su json  linkini

    http://videoapi.my.mail.ru/videos/mail/hdfullfilmizlesene/_myvideo/865.json

    chrom browserde acip, icindeki bir Urlu kopi yapip, yine chrom Browsere yapistirinca Film aciliyor, ama baska bir Browserde örnegin IE veya Mozillada acmaya kalkinca acilmiyor.

    Kanakan tarafından 22/Nis/15 23:19 tarihinde düzenlenmiştir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    sunucu basit olarak hash üretip belirli bir süre erişim veriyor dosyaya. üretilen hash neye göre üretiliyor bilmiyorum ancak farklı tarayıcıda veya farklı adres üzerinden açılmaya çalışınca açılmıyor. 

    aynen düşündüğün gibi tv ile bu jsonu çekerek urlyi ayıklayıp çalıştırmaya çalışırsan sıkıntısız çalışacak ancak başka bir kaynakla urlyi alıp tvye verdiğin için açılmıyor.

    benim dediğim olay şuydu; php dosyanla jsonu çekersin, 480p urlyi alırsın get ile bulduğun urlyi yine çekersin bekleme yapmadan gelen datayı da header atayıp video dosyası gibi göstererek stream edersin. herşey php dosyasının üstünden geçeceği için de hash problemi yaşamazsın.

    ne kadar çalışır bilemiyorum tabi deneme yapmak lazım veya başka yol bulmak lazım. Haftasonu bakıp c650 tvde deneyim  bi eğer çözüm bulamazsan.


    :|
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Kanakan
    Kanakan's avatar
    Kayıt Tarihi: 21/Aralık/2014
    Erkek

    Sanırım bekleme süresi ile ilgili degil.

    Cünkü sabah chrom ile json urlu acip  aldigim Film adresini aksamda yine chrom ile denedim yine calisti.Ama baska Browserde calismiyor.

    Bir yerde sayfanin cookiesini alip su sekilde alinan Film url'un sonuna ekleyin demis.

    |Cookie=video_key=796c39cd8b6d4fe51d13034be36508ee4d146522 

     

    aynen bu sekilde

    var cerez = document.cookie;   cerezi alip ekledim ama yine calismadi !

     

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Kanakan
    Kanakan's avatar
    Kayıt Tarihi: 21/Aralık/2014
    Erkek

    Tamam hallettim arkadaslar yardimci olan arkadaslara tesekkürler

    Kanakan tarafından 23/Nis/15 18:00 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    php taraflı mı çözdün jquery taraflı mı çözdün? 


    :|
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Kanakan
    Kanakan's avatar
    Kayıt Tarihi: 21/Aralık/2014
    Erkek

    @pesimistzombie

    js tarafli cözdüm. Hic uzak sunucu veya baska script kullanmadan.Json dosyasini okuyup gerekli url adresini aldim.

    yanliz gelen url nedendir bir türlü playerde calismiyor.

    Url su asagidaki sekilde

    http://cdn29.my.mail.ru/hv2/53987433.mp4?sign=e04005e9be1be9667b49ff8926729d8792a049db&slave[]=s:http://127.0.0.1:5010/53987433-hv2.mp4&p=f&expire_at=1429909200&touch=1429718535

     

    Ayni buna benzer url'u  mozilla ile aliyorum onu Browsere yapistiriyorum o calisiyor.

    Ama SmartTv icinde JS ile aldigim url ne SmartTV deki Playerde calisiyor nede PC deki Browserde!!

    Bu neden oluyor olabilirki bir fikriniz varmi?

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    urldeki query nedeniyle televizyon oynatmıyor olabilir ama pcde çalışması lazım. java kodlarını atarsan özelden bi deneyim hafta sonu benim televizyonda. tv için özel application yaptın mı eğer nete erişimi olan ip üzerinden developer panelden yüklüyorsan ipyi at özelden daha iyi olur direk tvye yükleyerek denerim


    :|
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Kanakan
    Kanakan's avatar
    Kayıt Tarihi: 21/Aralık/2014
    Erkek

    su kodlarla json dosyasini okuyorum.


    Gelen veriyi parser edip url u aliyorum.
    url söyle örnegin:
    http://cdn52.my.mail.ru/hv/53872461.mp4?sign=b14a33e4c9ae294d7bb7c82be74b116ec9315fb1&slave[]=s%3Ahttp%3A%2F%2F127.0.0.1%3A5010%2F53872461-hv.mp4&p=f&expire_at=1429563600&touch=1429111682
    ama nedense Playerde calismiyor.

    Json dosyasini kendim browserde acip ordan urlu alirsam browserde calisiyor, ama baska bir browserde calismiyor.Sanirim cookies ile bir ilgisi var.

    var url='http://videoapi.my.mail.ru/videos/mail/hdfullfilmizlesene/_myvideo/866.json';
    var yazdir = oku(url);
    alert(yazdir);
    
    function oku(gelenlink){
     var resp;
        var xhr = new XMLHttpRequest();
     
               xhr.onreadystatechange = function(){
               if(xhr.readyState == 4 && xhr.status == 200)
               resp= xhr.responseText;
               else if(xhr.readyState == 4)
               alert("Error: returned status code " + xhr.status + " " + xhr.statusText);
               };
    xhr.open("GET",gelenlink, false);
    xhr.setRequestHeader("Content-Type", "application/json");
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader('Content-Type', 'text/plain; charset="utf-8"');
    xhr.setRequestHeader("Accept-Encoding", "identity");
    xhr.setRequestHeader("Accept-Language", "en-us,en;q=0.5");
    xhr.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    xhr.setRequestHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100627 Firefox/3.6.6");
    xhr.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
    xhr.setRequestHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
    xhr.setRequestHeader("Cookie", document.cookie);
    xhr.setRequestHeader("Connection", "close");
    xhr.send(null);
    //document.getElementById("m").innerHTML =resp;
    return resp;
    }

    Kanakan tarafından 24/Nis/15 17:26 tarihinde düzenlenmiştir
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    user agent vermesen? televizyon içinde döndürdüğünde tvnin kendi user agenti farklı olacaktır hash değerini kaybediyor olabilir bu nedenle

    sen tvde bunu nasıl çalıştırıyorsun? tvnin browser özelliği mi var application mı yaptın? denediğin tvnin modeli nedir?

    pesimistzombie tarafından 24/Nis/15 17:45 tarihinde düzenlenmiştir

    :|
Toplam Hit: 5454 Toplam Mesaj: 76