Parse[1]PHP curl ile facebook videolarının indirme linkini almak icin yazdıgım parse url kodları peki bu ne işe yarayacak diyebilirsiniz bu betik yanında curl dosya indirme fonksiyonu kullanıp videoları bilgisayarınıza yada sunucunuza cekebilirsiniz.

<?php
set_time_limit (0);
//Keykubad.com facebook video download curl php
function curl_cek($url){
$useragent = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
$referer = 'https://www.google.com/accounts/ServiceLogin?service=youtube';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_REFERER, $referer);
curl_setopt ($ch, CURLOPT_USERAGENT, $useragent);
$rmx = curl_exec($ch);
curl_close($ch);
return $rmx;
}
function file_download($link,$dosya_adi=NULL){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION , TRUE);
$dosya=curl_exec($ch);
curl_close($ch);</code>

if($dosya_adi==NULL){
$dosya_adi=explode("/",$link);
$dosya_adi=array_reverse($dosya_adi);
$dosya_adi=$dosya_adi[0];
}

$fp = fopen($dosya_adi,'w');
fwrite($fp, $dosya);
fclose($fp);
}
$video=curl_cek("https://www.facebook.com/photo.php?v=206230139559713");
$videosu = "#sd_src(.*?)thumbnail_src#si";
$parcala=preg_match_all($videosu,$video,$linkcek);
foreach($linkcek[1] as $cekim){
$cekim=str_replace ("\u002522\u00253A\u002522https","http",$cekim);
$cekim=str_replace ("\u002522\u00252C\u002522","",$cekim);
$cekim=str_replace ("\u00253A\u00255C\u00252F\u00255C\u00252F","://",$cekim);
$cekim=str_replace ("\u00255C\u00252F","/",$cekim);
$cekim=str_replace ("\u00253F","?",$cekim);
$cekim=str_replace ("\u00253D","=",$cekim);
$cekim=str_replace ("\u002526","&amp;",$cekim);

}

//https://fbcdn-video-a.akamaihd.net/hvideo-ak-prn2/v/1210329_206230309559696_1056433056_n.mp4?oh=cfa0adf9a2d405182d2fde8c6ba096b3&amp;oe=5253103B&amp;__gda__=1381174812_0072c1253467444b2ab87c9663993d4f
file_download($cekim,'dosya.mp4');
?>
Yazar

2012 yılında yeni kimliği ve yeni bilgilerle sizlere teknoloji,web programlama,tasarim,güvenlik,internet ve programlar hakkında detaylı bilgiler vermek amaçlı kurulmuş kişisel web sayfamdır.

11 Yorumlar

  1. Merhabalar,

    Öncelikle yazdığınız kod çok şişme yaradı ve görüş açımı genişletti, teşekkürler. Videoları alma konusunda herhangi bir sıkıntım yok çok şükür ancak bu şekilde resimlerin yolunu da çekebilirmiyiz.

    // –> $videosu = “#sd_src(.*?)thumbnail_src#si”;

    Yukarıdaki satırda sd_src ile başlayan videoları çekiyoruz ben ise thumbnail_src ile başlayan resimleri almak istiyorum. İlgili alanın açıklamasını yaparsanız memnun olurum..

    Teşekkürler..

    • keykubad Yanıtla

      Merhaba tabiki alınır ben size parçalama yapacagınız yeri veriyim aynı indirme linki yaptıgım kod gibi parçalama yapın

      Kod
      thumbnail_src\u002522\u00253A\u002522https\u00253A\u00255C\u00252F\u00255C\u00252Ffbcdn-vthumb-a.akamaihd.net\u00255C\u00252Fhvthumb-ak-prn2\u00255C\u00252F1096453_206230339559693_206230139559713_32814_600_b.jpg\u002522\u00252C\u002522thumbnail_height

      $videosu = “#thumbnail_src(.*?)thumbnail_height#si”;

      bunuda bu şekilde degişip url üzerindeki hex kodları str_replace fonksiyon ile yaptıgım gibi bozuk çıktıları temizleyin.Yapamazsanız yazın hazır halde vermedim kodları vaktim az çünkü tekrar bakarım.

  2. ALLAH razı olsun, istediğimi yaptım verdiğiniz satırla ama yinede

    $videosu = “#thumbnail_src(.*?)thumbnail_height#si”;

    bu satırın mantığını zamanınız olursa anlatabilirmisiniz. Yada link falanda olabilir..

    Teşekkürler..

    • keykubad Yanıtla

      Kod direk çalıştımı işiniz görüldümü ?
      Görülmediyse çalışan halini yapıp veriyim.

      $videosu = “#thumbnail_src(.*?)thumbnail_height#si”;

      bu parçalama yani ingilizce açıklaması “regular expression” kısa adı “regexp” php bot yapımlarında kullanılan tekniktir.
      Siteye girip bizim belirlediğimiz aralıktaki istediğimiz içeriği almaya yarar ama face yada youtube yada büyük firmalar bu tarz şifreleme yaparak veriyi korurlar.Biz burda o sifrelemeyide algılanabilir hale str_replace ile getiriyoruz.Bunla ilgili videolar nette mevcut ama ben basit ve yalın şekilde sesli bir video boş bir vaktimde cekerim.İşinizi gördüyse ne mutlu…

      • Dün geceden beri uğraşıyordum onun için sadece belirttiğiniz satır ile istediğim veriyi direk aldım teşekkür ederim. Aslında bende o şekilde aramalar yaptım netde ama tam istediğim tarzda bir içerik yada makaleye erişememiştim. Bu konulara çok yabancı değilim ama herhangi bir siteden veri çekmeyeli çok oldu. Facebook’tan veri çekmek başlangıç için biraz zor oldu ama hemen hemen hallettim sayılır. İlginiz için teşekkür ederim..

  3. Merhabalar,

    Burada şekliyle verileri çekip veritabanına kaydediyorum ancak dosya sonra site içerisinde embed kod ile görüntülemeye çalıştığımda “video not found or access denied” hatası alıyorum. Sebebini biliyormusunuz acaba?

    • keykubad Yanıtla

      Merhaba
      Video urlsi yanlış olabilir embed kodunu ve sitenizden bir örnek video linki yazın.ayrıca sql kayıt verilerinide yazarsanız sevinirim, bi inceleyeyim.

  4. Merhabalar,

    Örnek video : http://www.odevtube.com/666-rockci-papagan.html

    Embed kodu :

    $vlink = str_replace(‘&’,’&’,$video[“embed”]); // & değişimi için..

    <param name="movie" value="https://phpwcms.googlecode.com/svn-history/r381/trunk/template/lib/jw_media_player/player.swf?file=&image=&skin=https://phpwcms.googlecode.com/svn-history/r381/trunk/template/lib/jw_media_player/skins/modieus.swf“><embed src="https://phpwcms.googlecode.com/svn-history/r381/trunk/template/lib/jw_media_player/player.swf?file=&image=&skin=https://phpwcms.googlecode.com/svn-history/r381/trunk/template/lib/jw_media_player/skins/modieus.swf” quality=”high” bgcolor=”#ffffff” name=”mymovie” allowfullscreen=”true” allowscriptaccess=”sameDomain” type=”application/x-shockwave-flash” pluginspage=”http://www.adobe.com/go/getflashplayer” align=”middle” height=”474″ width=”696″>

    Veritabanı embed içeriği : https://scontent.xx.fbcdn.net/hvideo-ash3/v/853861_238787796259390_1071317199_n.mp4?oh=eba1a90805d185b85a06225edadb8aeb&oe=52C0A878

    Teşekkür ederim..

    • keykubad Yanıtla

      Merhaba arkadaşım bu indirme urlsini embed olarak kullanamazsın sunucuna ceker videoyu direk url kullanılmaz sunucuna cektirip sonra cektirdigin urlden embed yapman lazım bu sekilde çalışmaz. Kusura bakmayın biraz yogundum geç cevap attım..

      • Estağfurullah,

        Bazı sitelerde bu şekilde kullanıldığını gördüm. Hatta girilen facebook video linkiyle video bulunup oynatılıyor ve oradaki kodları incelediğimde bu şekilde bir yapı ile karşılaşıyorum. Ayrıca sayfanın embed kısmını alıp kendi sayfama olduğu ekleyince çalıştığını da gördüm. Anlamadığım nokta aynı linkin başka web sitesinde çalışıp bende neden hata verdiği. Nereyi atlıyorum acaba? Siteye panelden bu eklemeyi yaparken oluşturulan linke tıklıyor ve yukarıdaki facebook bağlantısıyla videoyu doğrudan tarayıcıdan oynatabiliyorum. Ancak aynı linki sayfamda çağırmak istediğimde hata veriyor..

        Derdimi anlatabildim mi bilmiyorum ama..

        Teşekkürler,
        Kolay gelsin..

Bir yorum Yaz

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Pinle