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]
<?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","&",$cekim);
}
//https://fbcdn-video-a.akamaihd.net/hvideo-ak-prn2/v/1210329_206230309559696_1056433056_n.mp4?oh=cfa0adf9a2d405182d2fde8c6ba096b3&oe=5253103B&__gda__=1381174812_0072c1253467444b2ab87c9663993d4f
file_download($cekim,’dosya.mp4′);
?>
[/php]
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..
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.
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..
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..
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?
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.
Merhabalar,
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..
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..
Merhaba
Aklıma gelen player ile ilgili sıkıntı olabilir.
Bana gonderdigin url : https://scontent.xx.fbcdn.net/hvideo-ash3/v/853861_238787796259390_1071317199_n.mp4?oh=eba1a90805d185b85a06225edadb8aeb&oe=52C0A878 sitene eklemissin ama url zaten calısmıyor.Çalışan bi video ekletmeyi dene bide player ile ilgili sıkıntı yoksa.mail adresine skype adresimi yazıyorum ekle istersen ordan yardımcı olmaya çalışayım.