richiedi subito informazioni chiamando al numero +39 080 4837098

Prelevare e scaricare un video da Youtube con php

27 giu 2012

Dopo varie richieste quello che vi propongo oggi è un frammento di codice semplificato che vi permette di scaricare un video in formato flv direttamente da Youtube.
Non ho fatto le varie convalide dei campi e non ho curato piccolezze varie che potete tranquillamente personalizzarvi.
Premetto che ad oggi funziona perfettamente, non so se tra qualche mese o qualche anno continuerà a funzionare, perchè potrebbero cambiare le caratteristiche di Youtube stesso, eventualmente segnalatemelo che provvedo ad adeguare lo script.

Spero vi sia utile.

<?php
if(isset($_POST['url']) == 'POST'){
	//mi assicuro che il parametro url non sia vuoto
	$url    = (isset($_POST['url']) && !empty($_POST['url'])) ? $_POST['url'] : '';
	//mi assicuro che ci sia il titolo e gli faccio una piccolissima sanificazione onde evitare spazi vuoti
	$titolo = (isset($_POST['titolo']) && !empty($_POST['titolo'])) ? str_replace(array(" "), array("-"), $_POST['titolo']) : false;
	
	if($url != ''){
		echo "Inserisci un URL corretto.";
	}
	else{
		//prendo il contenuto della pagina passato come parametro
		$source = file_get_contents($url);
		$source = urldecode($source);

		$res_1 = explode('url_encoded_fmt_stream_map": "url=', $source);
		$res_2 = explode('\u0026quality', $res_1[1]);
		
		//nomino il mio file
		$file = $titolo.'.flv';
		
		//restituisco il file al browser
		header("Cache-Control: public");
		header("Content-Description: File Transfer");
		header("Content-Disposition: attachment; filename=".$file);
		header("Content-Type: video/flv");
		header("Content-Transfer-Encoding: binary");
		
		readfile($res_2[0]);
		
		exit;
	}
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="" id="">
	Titolo: <input type="text" name="titolo" id="titolo" /> - URL Youtube: <input type="text" name="url" id="url"> 
	<input type="submit" name="submit" value="Download">
</form>

Categoria: PHP
Autore: Francesco

Lascia un commento

Nome: (obbligatorio)


Email: (obbligatoria - non sarà pubblica)


Sito:
Commento: (obbligatorio)

Invia commento


ATTENZIONE: il tuo commento verrà prima moderato e se ritenuto idoneo sarà pubblicato