Kayıt: Mar 18, 2005 Mesajlar: 2176 Konum: istanbul-tokat
Tarih: 2007-08-28, 00:11:49 Mesaj konusu: youtube indirici getten gelen youtube video id sini indirir.
youtube indirici getten gelen youtube video id sini indirir.
Kod:
<?code //code yi başlattık
if(empty($_GET[id])) die("Id yi boş gönderemezsiniz");//id boş ise ekrana hata verdirdik ve scriptin alt kısmının çalışmasını engelledik die() fonk ile
function dosya_al($url) {//dosya al fonksiyonunu tanımlıyoruz $url deişkenini alarak
if(function_exists('curl_init')) {//curl fonksiyonu sunucuda mevcut kurulu ise curl ile alıyor yoksa file_get_contents ile alıyor
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt ($ch, CURLOPT_REFERER, $url);
$veri = curl_exec($ch);
curl_close($ch);
} else {
$veri = file_get_contents($url);
}
return $veri;//veri değişkeni fonksiyondan çıktı olarak veriliyor
}
function indir($id) { //youtube indir fonk. tanımlanyor
$url="http://www.youtube.com/watch?v=".$id;//sayfa atanıyor
$gelen=dosya_al($url);//dosya al fonksiyonuna gidip sayfa çekiliyor
$bic=explode('SWFObject("/player2.swf?hl=en&',$gelen); $bic=explode('"',$bic[1]);
$title=explode('<title>',$gelen); $title=explode('</title>',$title[1]);//preg_match ile yapabilirdik ama ne biliyim zamanında explode ile yapmış koymuşum o yüzden değişmeye gerek duymadım bu explode satırlarınıda
//SWFObject("/player2.swf?hl=en& buradan başla" a kadar olan kısmı al dedik
//ikinci explode ise sayfanın titlesini yani videonun adını aldık
$veri[baslik]=$title[0];//explode nin [0] . çıktısı video adı
$veri[link]=$bic[0]; // video deep adresi &t= olan kısmı mühimdi
return $veri;// veri arrayına dönüş yaptırdık
}
$gidiyok=indir($_GET[id]);//indir fonksiyonuna id yi gönderdik ve videp deep link ile video adını aldık
ob_start();//header lerle işlem yapacağımız için ekşin yaptık burayıda
ini_set('zlib.output_compression', 'Off');//zlip çıktı sıkıştırmasını kapadık
header('Content-Description: File Transfer');//sayfa açıklaması nı atadık
header("Pragma: public");// cache cont dikkat ederseniz youtubeden videoyu izlediyseniz ve bu indiriciye sonra tıklarsanız mesala user videoyu izledi bğeendi indirmek istedi haşırt diye cacheden 1-2 sn de video iner
header("Expires: 0");// geçerlilik
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/force-download");// bir tip code nin content typleri mesala resim basacaksanız image/jpeg , png gif gibi video ise karakter düzenlemesi yapacaksanız
// header("Content-Type: text/html; charset=utf-8"); gibi text/xml vs. gibi atamalar yapılabilir biz burada dosya indirtmek için download yaptık içerik tipini
header("Content-Disposition: attachment; filename=\"www.biseyret.com-".$gidiyok[baslik].".flv\";");// içeriğe aldığımız dosya adını ve başınada site adımızı ekledik inecek dosyayı sayfaya atadık
header("Content-Transfer-Encoding: binary");// transfer tipini atadık
header("Content-Length: ".@filesize($dadi));//indirme sayfasında çıkacak dosya boyutu şukadardır bilgisinede verdik
readfile("http://youtube.com/get_video?$gidiyok[link]") or die("Dosya Bulunamadı");// indirme olayıda burada tamama erdi
?>
iyi oldu galiba
bu dosyayı indir.code diye kayıt edin
indir.code?id=youtube_video_id
gibi videoyu indir diye link verebilirsiniz şayet şöyle bişi varsa hostunuzda youtube video id sini
http://www.youtube.com/v/NCO6y2ML7kw
$link değişkeninde diye düşünelim
son video id sini almak için
Kod:
$idx=split('/',$link);
$video_id=$idx[4];
4. slashes(/) ten sonrası nı video_id değişkenine atamasını
söyledik
link verirkende
<a href='indir.code?id=<?=$video_id;?>' title='$title videosunu indir'>
$title İndir</a>
gibi linklendirebilirsiniz araya img falan koyup ona link verirseniz
vs.vs. herşey mümkün
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız