Attiva Web - Realizzazione siti internet, ecommerce

Prelevare e scaricare un video da Youtube con php

    • 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>
      Francesco // 27-06-2012 // PHP

    Lascia un commento

    Invia commento


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