Script php per scaricare video da Youtube

Nessun commento »

Questo post proverà a spiegare il procedimento che permette il download dei video da youtube. Ho realizzato uno semplice script php fruibile in questa pagina dimostrativa.

Per iniziare la spiegazione dobbiamo innanzi tutto analizzare la struttura di una pagina video youtube:

http://youtube.com/watch?v=wtzlyzjSCkU

watch viene chiamata servlet e cioè un programma residente sul server di youtube, che si occupa di farci visualizzare la pagina di youtube che siamo abituati a vedere.

Il punto interrogativo indica che tutto quello che segue nell’indirizzo sono delle informazioni (valori) che vengono passate alla servlet.

v=wtzlyzjSCkU è un codice univoco che distingue un video da un altro, che la servlet prende ed elabora per mostrarci la pagina del video. Chiameremo questo codice id video.

Youtube ci mette a disposizione anche un’altra servlet “get_video” che è quella che ci permette di scaricare il video da youtube. Ma non è molto semplice da usare. Per prelevare un video dobbiamo passare due valori alla servlet: il primo lo conosciamo già (id video), il secondo viene chiamato codice di sessione ed è una stringa di caratteri che cambia sempre ad ogni visualizzazione della pagina youtube.

Questo codice di sessione può essere reperito nel codice sorgente della pagina youtube. Collegandosi all’indirizzo:

http://youtube.com/get_video?video_id=[id video]&t=[codice sessione]

è possibile scaricare il video. Qui c’è il codice sorgente dello script php che esegue tutti i passaggi sopra elencati

$message = ;

if( isset($_POST[‘yurl’]) && isset($_POST[‘download’]) ) {
  $url = $_POST[‘yurl’];
  if( preg_match(‘/(v=)([0-9A-Za-z_-]{11})/’, $url, $match) ) {
    $video_id = $match[2];
    $page = file_get_contents(‘http://youtube.com/watch?v=’.$video_id);
    if( $page ) {
      if( preg_match(‘/(&t=)([0-9A-Za-z_-]+)/’, $page, $match) ) {
        $t = $match[2];
        header(‘Location: http://youtube.com/get_video?video_id=’.$video_id.‘&t=’.$t);
      }
      else
        $message = ‘La pagina di youtube non è valida’;
    }
    else
      $message = ‘non riesco a trovare l\’indirizzo che hai inserito’;
  }
  else
    $message = ‘Indirizzo di youtube non valido’;
}

Rimando sempre alla pagina dimostrativa per scaricare lo script.

PhPstats

3 Commenti »

Era da molto tempo che avevo intensione di installare phpstats ed oggi finalmente me lo sono ricordato. Voglio lasciare il servizio offerto da ShinyStat non perchè non sia buono, ma perchè avendo una versione free non ho accesso a molte funzioni sul monitoraggio di questo blog. Con phpstats mi trovo benissimo ed ho un controllo completo sul blog, lo consiglio a tutti quelli che avessero intensione di controllare al 100% il proprio sito, o come nel mio caso il blog.

Alcune feature:

  1. Controllo provenienze da siti
  2. Controllo provenienze da motori di ricerca
  3. Controllo chiavi di ricerca
  4. Controllo SO, browser dei visitatori
  5. Controllo paesi di provenienza

Per le mie esigenze è il massimo! :D

Generare Password con php

Nessun commento »

Niente di speciale, in un momento in cui non sapevo che fare ho scritto questa funzione in php che genera una password casuale alfanumerica:

function get_password($len = 8) { // $len è il numero di caratteri della password
  $password = "";
  for ($i = 0; $i < $len; $i++) {
    $rand = rand(0,time());
    if ($rand % 2)
      $password .= chr (rand(97,122)); // genera un carattere tra a-z minuscolo
    else
      $password .= rand(0,9); //genera un numero tra 0 a 9
  }
  return $password;
}

E se non volete complicarvi troppo la vita si potrebbe ottenere un risultato quasi analogo con questa riga di codice che non genererà mai caratteri uguali, e fra parentesi è il metodo che usa wordpress per generare le password durante l’ installazione.