My home cinema system

Sono un appassionato di cinema e mi piace godermi un bel film in alta definizione sul mio televisore comodamente seduto sul divano. Il mio sistema cinema è composto dal mio TV, un lettore multimediale di rete, un minicomputer Linux e un hard disk. La mia TV Sony KDL-46HX755 è connessa ad un lettore di rete via cavo HDMI, il lettore è connesso in rete ad un mini computer Linux basato sulla scheda Raspberry PI.

 

Raspberry Pi

 Raspberry Pi

Western Digital Live TV

Western Digital Live TV

 

Il sistema è semplice, il mini computer Linux si comporta in parte come un semplice NAS ma nella realtà la condivisione dei file via Samba è la funzionalità più semplice. Questo mini computer, basato sulla scheda Raspberry PI, consuma appena 3W ed è equipaggiato con un programma chiamato PyLoad. Questo software è un particolare download manager HTTP, scritto in Python, con un consumo di memoria e CPU bassissimi. Questo download manager supporta anche servizi di download premium e automatizza il download di liste di url contenenti parti di film.

PyLoad mi permette di creare code di download di film dalla rete, con nomi originali ed eventuale password per gli archivi. La magia di tutto questo è l’automatizzazione del processo di download -> scompattamento -> archiviazione del film. Questo è possibile tramite un file shell che viene invocato automaticamente da PyLoad all’evento di “pacchetto finito”. Questo evento viene invocato ogni qual volta che tutte le url di un pacchetto sono scaricate correttamente. Il codice dello script è il seguente:

#!/bin/bash

urlencode () {
    tab="`echo -en "\x9"`"
    i="$@"
    i=${i//%/%25}  ; i=${i//' '/%20} ; i=${i//$tab/%09}
    i=${i//!/%21}  ; i=${i//\"/%22}  ; i=${i//#/%23}
    i=${i//\$/%24} ; i=${i//\&/%26}  ; i=${i//\'/%27}
    i=${i//(/%28}  ; i=${i//)/%29}   ; i=${i//\*/%2a}
    i=${i//+/%2b}  ; i=${i//,/%2c}   ; i=${i//-/%2d}
    i=${i//\./%2e} ; i=${i//\//%2f}  ; i=${i//:/%3a}
    i=${i//;/%3b}  ; i=${i//</%3c}   ; i=${i//=/%3d}
    i=${i//>/%3e}  ; i=${i//\?/%3f}  ; i=${i//@/%40}
    i=${i//\[/%5b} ; i=${i//\\/%5c}  ; i=${i//\]/%5d}
    i=${i//\^/%5e} ; i=${i//_/%5f}   ; i=${i//\`/%60}
    i=${i//\{/%7b} ; i=${i//|/%7c}   ; i=${i//\}/%7d}
    i=${i//\~/%7e}
    echo "$i"
    i=""
}

# costanti
RAR_COMMAND=unrar
FILM_PATH=/media/disco_esterno/film
MAIL_RECIPIENTS="mario.rossi@gmail.com"

# argomenti dello script
PACKAGE_NAME=$1
PACKAGE_LOCATION=$2
PACKAGE_PASSWORD=$3

echo "Package name: $PACKAGE_NAME"
echo "Package location: $PACKAGE_LOCATION"
echo "Package password: $PACKAGE_PASSWORD"

# inizio della procedura
echo "1/4 unrar dei pacchetti scaricati..."
FIRST_RAR_FILE=`find "$PACKAGE_LOCATION" -maxdepth 1 -name "*.rar" | sort | head -1`

echo "    rar file da scompattare: $FIRST_RAR_FILE"

if [ -z "$PACKAGE_PASSWORD" ]
then
    echo "    unzio senza password"
    RAR_RESULT=`$RAR_COMMAND e "$FIRST_RAR_FILE" "$PACKAGE_LOCATION"`
else
    echo "    unzip con password: $PACKAGE_PASSWORD"
    RAR_RESULT=`$RAR_COMMAND e -p$PACKAGE_PASSWORD "$FIRST_RAR_FILE" "$PACKAGE_LOCATION"`
fi

echo "2/4 sposto il film '$PACKAGE_NAME' dentro a '$FILM_PATH'"
MKV_FILE_NAME=`find "$PACKAGE_LOCATION" -maxdepth 1 -name "*.mkv"`

# controllo l'esistenza del file appena scompattato
if [ -f "$MKV_FILE_NAME" ]
then
    mv "$MKV_FILE_NAME" "$FILM_PATH/$PACKAGE_NAME.mkv"

    if [ -f "$FILM_PATH/$PACKAGE_NAME.mkv" ]
    then
        echo "3/4 rimuovo i file rar..."
        rm -fR "$PACKAGE_LOCATION"

        echo "4/4 mando mail di conferma..."
        PACKAGE_NAME_ENCODED=$(echo -n "$PACKAGE_NAME" | perl -pe's/([^-_.~A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg');
        echo "nel frattempo puoi leggere qualche info su http://www.google.it/search?q=site:mymovies.it%20$PACKAGE_NAME_ENCODED" | mail -s "[pyLoad] $PACKAGE_NAME pronto" "$MAIL_RECIPIENTS"
    else
        # mando email per segnalare problema su spostamento file MKV
        echo "Errore spostamento file $FILM_PATH/$PACKAGE_NAME.mkv" | mail -s "[pyLoad] $PACKAGE_NAME errore" "$MAIL_RECIPIENTS"
    fi

    echo "FINITO"
else
    echo "FINITO CON ERRORI"
    # mando email per segnalare problema su extract RAR
    echo "$RAR_RESULT" | mail -s "[pyLoad] $PACKAGE_NAME errore" "$MAIL_RECIPIENTS"
fi

Per adattarlo al proprio ambiente è necessario cambiare la variabile FILM_PATH con il path dove saranno archiviati i film.

Il lettore Western Digital Live TV dispone di un sistema interno che scarica e associa metadati ai file dei film. Questo vuol dire che se i file hanno un nome file corrispondente al nome del film originale verrà mostrata la locandina, la durata, l’anno, il regista, il cast, la trama ecc… Il nome del file è assicurato dallo script che rinomina il file scaricato con il nome originale del film (nome del pacchetto PyLoad).

Il risultato finale è il seguente:

Archivio film

I film vengono messi in coda attraverso l’interfaccia di gestione web di PyLoad e quando scaricati, saranno disponibili per la visione direttamente dalla TV.

Costruzione del tavolo dello studio – finale

La realizzazione del tavolo dello studio è terminata ormai da diverso tempo. Ho abbandonato completamente l’aggiornamento del blog perchè mi sono trovato occupato in altre mille cose. Il tavolo è finito e attualmente fa il suo sporco lavoro all’interno dello studio :-) . In linea di massima sono soddisfatto del risultato, ovviamente avrei sperato in un piano più resistente, il Paulownia è molto tenero e poco resistente ai graffi ma la tavola è stata fissata con delle staffe e questo mi permetterà di sostituirlo in futuro senza grossi problemi.

La struttura del tavolo è molto stabile e resistente, peccato per il colore paglierino che ha assunto il legno dopo essere stato trattato con la finitura trasparente: avrei preferito un colore più neutro. A questo però ero stato preparato da un amico falegname che mi aveva avvertito sulla necessità di impregnare, anche se di poco, il legno per contrastare la variazione di colore verso il giallo del fondo.

Hacking cantinetta di Marino fa mercato

Durante un giro per acquisti a Viterbo abbiamo comprerato una cantinetta in legno grezzo di Abete. Abbiamo trovato il kit da montare da “Marino fa mercato”, un magazzino che ha un po di tutto sulla strada tra Montefiascone e Viterbo. Siamo stati invitati dal prezzo del kit: solamente 33 euro. Ho pensato che con qualche modifica si avrebbe trasformato quei pezzi grezzi di abete in una bella cantinetta in stile contemporaneo.

La cantinetta appena acquistata si presentava in questa maniera:
2013-06-22 10.01.18 2013-06-22 16.08.03

e questo è come si presenta dopo averla accorciata, abbassata e stucccata pronta per essere verniciata con uno smalto opaco bianco:

2013-06-24 19.44.15 2013-06-25 08.14.30 2013-06-27 08.05.03

e questa è la fase finale della verniciatura con smalto opaco bianco:
2013-06-30 11.07.39 2013-06-30 11.07.47 2013-07-01 09.53.58

Impianto a goccia per Surfinie e Petunie

Abbiamo da poco acquistato 5 piantine di Surfinie e Petunie, le abbiamo invasate e potate senza pietà come consigliano i veri giardinieri. Questo tipo di fiori necessitano un’annaffiatura costante specialmente d’estate. Non amano il ristagno di acqua ma ne vogliono comunque tantissima altrimenti si possono indebolire e quindi essere attaccate dagli afidi. Per ovviare al problema della continua necessità di acqua senza ristagno ho pensato di realizzare un rudimentale impianto a goccia. I materiali per a realizzazione sono i seguenti:

  • bottiglia di acqua da 2 L.
  • tubo gomma da 1/4 pollice
  • sgocciolatore da 1/4 di pollice
  • micro rubinetto da 1/4 di pollice
  • supporto in legno ricavato da una tavola di abete per il fai da te con spessore 1,8 cm.

La bottiglia di acqua utilizzata ha una sezione quadrata ma non ha molta importanza, l’importante è che sia da 2L così da garantire l’autonomia sufficiente e la pressione adeguata per gli sgocciolatori. Il supporto è alto 70 cm, così facendo la bottiglia si troverà a circa 10 cm di altezza rispetto al vaso e anche questo particolare dovrebbe aumentare l’energia potenziale dell’acqua e di conseguenza la pressione all’interno degli sgocciolatori. Tutti i materiale utilizzati, tranne ovviamente la bottiglia, sono stati acquistati presso un normale negozio per il fai da te.

I vari blocchi del supporto in legno sono stati incollati con comune colla vinilica (Vinavil) e fissati con viti a legno: