Articles plus anciens

Edit 6/05/2010 : Si vous utilisez Flexget v1.0x, cet article est osolète, se référer à  Téléchargement automatisé de séries avec Flexget



Avertissement :

Le but de ce post est de montrer comment il est possible d’automatiser le téléchargement de torrents. Ce n’est en aucun cas l’apologie du piratage.




Cet avertissement effectué passons à la description du problème.

Comment faire pour automatiser le téléchargement de séries via un flux RSS ?

Au moment où j’ai mis ce système en place la version de Deluge utilisé ne permettait pas de s’abonner à un flux RSS. J’ai donc dû trouver une alternative qui à l’usage se révèle non seulement efficace mais aussi supérieure.


Cette alternative s’appelle Flexget.



La phrase d’introduction du site de Flexget décrit bien son usage et son rôle :


« FlexGet is a program aimed to automate downloading or processing content (torrents, podcasts, etc.) from different sources like RSS-feeds, html-pages, various sites and more. « 


Soit grosso-modo en Français :


« Flexget est un programme ayant pour rôle d’automatiser le téléchargement ou le traitement de contenus (torrents, podcasts) à partir de différentes source comme les flux RSS, les pages HTML, de nombreux sites et plus encore »


Bref ce qu’il nous faut pour répondre à la problématique posée.

Flexget va à partir d’un flux RSS nous informant en quasi temps réél de la mise à disposition d’un torrent, télécharger ce même torrent.

Là où il surpasse les clients torrent ayant la capacité à s’abonner à ces même flux RSS, c’est qu’on pourra lui indiquer ses préférence (en terme de qualité de release) et qu’il ne téléchargera qu’un seul torrent pour un même épisode d’une même saison d’une série donnée.


En pré-requis il nous faut un flux RSS nous informant de la mise à disposition d’un torrent. Dnas le but de ne pas trop inciter au priatage je n’indiquerais volontairement pas ici où trouver ce genre de site…


Installation de flexget


Flexget à besoin du package permettant à Python de parser le YAML et de feedparser permettant de parser les flux RSS, on installera donc  :


sudo aptitude install python-yaml python-feedparser



Téléchargement de la dernière version de flexget (la 0.9.3.2 dans mon cas) :

wget http://download.flexget.com/0.9/FlexGet_0.9.3.2.zip


Dézippage de l’archive téléchargée :

unzip FlexGet_0.9.3.2.zip


Et voila flexget est installé, reste à le paramétrer.


Paramétrage de flexget


Le paramétrage se fait dans un fichier yml, ce dernier peut avoir le nom que l’on veut et être placé où l’on veut, dans mon cas ce fichier de configuration se nomme configFlexget.yml et est placé dans le répertoire de flexget (lui même dans le home de mon user).


Ouvrir le fichier et copier une configuration ressemblant à ceci :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
global:
  download: ~/downloads/torrentfiles
 
settings:
  series:
    timeframe:
      enough: hdtv
 
feeds:
  Serie1:
    rss: http://xxxxx.net/serie1.xml
    series:
      - Serie1
 
   Serie2:
    rss: http://xxxxx.net/serie2.xml
    series:
      - Serie2


Point important :

Le YML (ou YAML) est un language structuré (comme le XML) mais il est beaucoup moins verbeux (pas de balise ouvrante et fermante)

En contrepartie la hierarchie des éléments est réalisé via l’indentation à base d’espace (surtout pas de tabulation).

Il convient donc d’être très rigoureux sur l’edition des fichiers yml.


La section global permet comme son nom l’indique le paramètrage global de flexget quelque soit le plugin utilisé par la suite, elle sert uniquement à définir le répertoire où les téléchargements vont êtres stockés.

La ruse consiste ici à mettre le même chemin que celui paramétré dans Deluge paramètre « Auto Add folder » (cf. mon article Installation d’un client torrent – Deluge), ainsi flexget télécharge les torrents et Deluge commence automatiquement le téléchargement.


Section settings, on met ici le paramétrage spécifique au plugins utilisés, dans le ca présent pour le plugin series il existe 2 paramètrages :

 
  • timeframe \ hour : pas utilisé encore mais ça ne devrait pas tarder. Cela permet d’indiquer à flexget qu’il faut attendre un certain temps entre la mise à disposition d’un torrent et son téléchargement. L’utilité : attendre qu’une nouvelle release soit disponible.
  • timeframe \enough : ce paramètre est l’une des force de Flexget, il indique quelle qualité de release est suffisante. Les valeurs possibles sont 1080p, 1080, 720p, 720, hr, dvd, hdtv, dsr, dsrip. Ainsi quand on a pas de télé HD il est inutile de télécharger du 1080p.

 

Vient ensuite la section de paramétrages de chacune des séries où l’on indique le nom de la série (Serie1) et le flux RSS associé.

Le paramètre feeds \ Serie1 \ series, qui a dans mon cas Series1 comme valeur, permet d’indiquer quelle est la série à télécharger dans le cas d’un flux recensant plusieurs séries.

 

Et voila concernant mon paramétrage, il ne faut pas hésiter à aller sur le site de Flexget pour voir les nombreuses possibilités de ce logiciel (téléchargement de comics, génération de flux RSS) et plus particulièrement les autres paramétrage du plugin serie

 

Pour tester votr fichier de configuration :

./flexget.py -c /home/svc/bin/flexget/configFlexGet.yml --check



Exécution de flexget


Pour exécuter flexget il suffit de faire :

./flexget.py -c ~/flexget/configFlexGet.yml

On peut alors evidemment ajouter cette ligne de commande dans une tache Cron….


ATTENTION cet article comporte des inexactitudes, se reporter à la page Deluge mise à jour régulièrement


Lors de l’installation de sweetBox et en vu d’en faire un serveur de téléchargement je me suis mis en quête d’un client torrent et comme pour tous autre logiciel sous Linux il y en a pléthore.

Sous Windows j’utilisais µtorrent, ce dernier n’existe pas sous Linux (tout du moins au moment où j’ai cherché) et de plus il ne répond pas aux besoins spécifique d’une machine sans interface graphique.

Les besoins sont les suivants :

  • Téléchargement automatique via la surveillance d’un répertoire (dès qu’un .torrent est ajouté é ce répertoire le téléchargement commence)
  • Fonctionnement sans interface graphique
  • Existence d’un interface d’administration Web
  • Déplacements de torrents (une fois le téléchargement terminé)
  • Blocage d’IP par import de listes noires

Après quelque recherche et hésitation (rtorrent, transmission) j’ai finalement choisi Deluge.


Installation

Téléchargement du dernier package sur le site de Deluge (lors de ma première installation il s’agissait du 0.9.02, actuellement j’en suis au 1.1.2 et sur le site il y a la 1.1.6).

Installation par dpkg :

dpkg -i deluge-torrent_1.1.2-1_i386.gutsy.deb

Et voila, on peut ensuite lancer le démon par un :

deluged -l /var/log/deluged.log

Et l’interface Web par :

deluge -u web

Qui est alors accessible a cette adresse :

http://localhost:8112/

et « deluge » comme mot de passe par défaut


Paramétrage


Installation en tant que service

Une fois cet installation faite, il peut être utile voir indispensable de démarrer Deluge en tant que service.

Créer le fichier /etc/init.d/deluge-daemon et copier ceci :


#!/bin/sh
### BEGIN INIT INFO
# Provides:          deluge-daemon
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      $network
# Should-Stop:       $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Daemonized version of deluge and webui.
# Description:       Starts the deluge daemon with the user specified in
#                    /etc/default/deluge-daemon.
### END INIT INFO
 
# Author: Adolfo R. Brandes 
 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Deluge Daemon"
NAME1="deluged"
NAME2="deluge"
DAEMON1=/usr/bin/deluged
DAEMON1_ARGS="-l /var/log/deluged.log"
DAEMON2=/usr/bin/deluge
DAEMON2_ARGS="-u web"
PIDFILE1=/var/run/$NAME1.pid
PIDFILE2=/var/run/$NAME2.pid
PKGNAME=deluge-daemon
SCRIPTNAME=/etc/init.d/$PKGNAME
 
# Exit if the package is not installed
[ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0
 
# Read configuration variable file if it is present
[ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME
 
# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS
 
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
 
if [ -z "$DELUGED_USER" ]
then
 log_warning_msg "Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME."
 exit 0
fi
 
#
# Function that starts the daemon/service
#
do_start()
{
 # Return
 #   0 if daemon has been started
 #   1 if daemon was already running
 #   2 if daemon could not be started
 start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \
 --chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null
 RETVAL1="$?"
 start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \
 --chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null
 RETVAL2="$?"
 [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 1
 
 start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \
 --chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON1_ARGS
 RETVAL1="$?"
 sleep 2
 start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \
 --chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON2_ARGS
 RETVAL2="$?"
 [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 2
}
 
#
# Function that stops the daemon/service
#
do_stop()
{
 # Return
 #   0 if daemon has been stopped
 #   1 if daemon was already stopped
 #   2 if daemon could not be stopped
 #   other if a failure occurred
 
 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2
 RETVAL2="$?"
 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1
 RETVAL1="$?"
 [ "$RETVAL1" = "2" -o "$RETVAL2" = "2" ] && return 2
 
 rm -f $PIDFILE1 $PIDFILE2
 
 [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] && return 0 || return 1
}
 
case "$1" in
 start)
 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME1"
 do_start
 case "$?" in
 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
 esac
 ;;
 stop)
 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME1"
 do_stop
 case "$?" in
 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
 esac
 ;;
 restart|force-reload)
 log_daemon_msg "Restarting $DESC" "$NAME1"
 do_stop
 case "$?" in
 0|1)
 do_start
 case "$?" in
 0) log_end_msg 0 ;;
 1) log_end_msg 1 ;; # Old process is still running
 *) log_end_msg 1 ;; # Failed to start
 esac
 ;;
 *)
 # Failed to stop
 log_end_msg 1
 ;;
 esac
 ;;
 *)
 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
 exit 3
 ;;
esac
 
:



Comme vous pouvez le voir le script n’est pas de moi….


Créer le fichier /etc/default/deluge-daemon  et copier ceci :

# Configuration for /etc/init.d/deluge-daemon
 
# The init.d script will only run if this variable non-empty.
DELUGED_USER="mon_user"
 
# Should we run at startup?
RUN_AT_STARTUP="YES"


Installer ensuite le service :

sudo update-rc.d deluge-daemon defaults 99


Et le démarrer :

sudo /etc/init.d/deluge-daemon start


Autres paramétrages

Dans l’interface web :

  • Network / Ports : changer le port par défaut et mettre le même port dans « from » et « to » (port à ouvrir dans votre routeur, mais c’est un autre sujet)
  • Bandwidth / Global : voila qui est délicat à régler et qui peut avoir de grandes conséquences sur la vitesse de download. J’avais il y a quelques temps trouvé un post expliquant comment régler ces paramètres mais je n’arrive plus à remettre la main dessus. Voici mes réglages (connexion free 2 Mo)
    • Maximum connections : 375
    • Maximum upload speed : 30
    • Maximum upload slot : 4
  • Deluge / Download : à vous de voir, voici mes réglages
    • Store all downoads in : /home/mon_user/downloads
    • Save .torrent files to : /home/mon_user/downloads
    • Auto Add folder : /home/mon_user/downloads/torrentfiles
    • Auto Add enabled : coché
  • Deluge / Queue : idem Bandwidth / Global, délicat..
    • Total active torrents: 8
    • Total active downloading: 3
    • Total active seeding: 3
    • Share ratio limit: 2.0
    • Seed time ratio limit: 7.0
    • Seed time limit: 100.

On notera le paramétrage indiquant à Delue le répertoire a scanner, pour l’auto-ajout de téléchargement.


Et voila, on pourra aussi

  • Changer le mot de passe
  • Changer le port
  • Activer et paramétrer le plugin Blocklist


Edit : Pour plus d’information Installation Deluge, Configuration Deluge (partie 1) et Configuration Deluge (partie 2)

 Problème rencontré :

  • Soit un programme réalisé en .net et devant utiliser l’interop Excel pour réaliser des recherches dans les propriétés des tableaux croisés dynamiques.
  • Ce programme à été créé initialement sur un poste de développement qui n’avait que Office/Excel 2003 (2007 n’existait pas encore).
  • Ce programme est éxécuté sur des serveurs qui n’ont que Office 2003 d’installé.
  • Une évolution du programme est nécessaire, mais les postes de développement ont évolués et ont désormais Office 2007
  • Les serveur n’ont toujours pas Office 2007 et il n’est pas prévu qu’ils l’ait

Et voila le problème qui arrive, le programme à la compilation, embarque l’interop Excel 2007 mais sur le serveur Excel 2007 n’est pas installé.

Impossible de charger le fichier ou l'assembly 'Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' ou une de ses dépendances. La définition trouvée du manifeste de l'assembly ne correspond pas à la référence de l'assembly. (Exception de HRESULT : 0x80131040)

 

Le but de cet article est de présenter rapidement mon architecture domestique.

C’est à dire les ordinateurs que je possède, leurs caractéristiques et leur rôle.

Tout d’abord un schéma :

Les caractéristiques des différentes machines et leur usage  :

 

Matériel

OS

Usage

SweetHome

Dell GX260

 

CPU : Pentium IV 2 GHz

RAM : 1 Go

 

Disques durs :

40 Go partitionné comme suit :

15 Go pour XP

1 Go pour le Swap Ubuntu

7 Go pour Ubuntu

17 Go non alloués

 

250 Go : Documents, Musique, Projets, Setups

Ubuntu 9.04

XP Pro

Bureautique

Internet

SweetBox

No Name

 

CPU : Duron 1 GHz

RAM : 512 Mo

 

Disques durs :

80 Go partitionné comme suit :

700 Mo pour le Swap

14.3 Go pour la racine (/)

15 Go pour le /home

50 Go non alloués

 

320 Go partitionné comme suit :

50 Go pour les sauvegardes monté sur /Sauvegarde

270 Go pour les média (films, musiques, etc.) montés sur /multimedia

 

Ubuntu 7.10

Ubuntu 9.04


HTPC (Home Theatre PC)

Serveur de téléchargement (séries, podcast)

Serveur de backup

SweetLap

Dell Latitude D600

 

CPU : Centrino 600 MHz

RAM : 768 Mo

 

Disque dur :

40 Go partitionné comme suit :

10 Go pour la racine (/)

5 Go pour le /home

25 Go non alloué

Ubuntu 8.10 9.04

Internet

Prise de main sur les 2 autres machines (RDP et SSH)

Quelques remarque :

  • Le dual boot Ubuntu sur SweetHome, n’est jamais utilisé, seul XP est utilisé (problème d’imprimante et un remplaçant de Money à trouver)
  • Le dual boot XP sur SweetHome ne devrait plus être utilisé, la migration complète vers Ubuntu est en route….
  • L’installation d’Ubuntu sur SweetBox à été réalisé avec l’alternate CD afin de faire une installation minimale (pas de bureau) – cf. ici pour l’installation de Jaunty Jackalope
  • SweetBox est connecté à la télévision (pas d’écran sinon) par une prise RCA, au démarrage ubuntu (Gutsy) s’auto-log avec un utilisateur dédié et lance le logiciel HTPC Freevo
  • sweetBox est en cours de ré-installation complète d’où le dual boot Gutsy – Jaunty



Edit :

  • 26/05/2009 : Mise à jour des OS utilisés
  • 23/06/2009 : Ubuntu OS de boot par défaut sur sweetHome


Pour écouter sa musique (mp3) dans une voiture récente et donc équipée d’un lecteur CD tout simple, il n’y a pas 36 solutions :

  1. Changer d’autoradio  : problème on perd souvent les commandes au volant
  2. Bricoler une entrée line-in
  3. Acheter un transmetteur FM

Dans mon cas j’ai choisi le transmetteur FM.


Ce genre d’appareil permet d’émettre sur une fréquence (paramétrable)  non utilisée de la bande FM la sortie d’un baladeur mp3.


Ce genre de matériel n’est pas très répandu.


Dans les magasins ou les site internet français les appareils vendus sont souvent de piètre qualité et le son est souvent catastrophique (gésillement voir pas de réception du tout).


Solution : acheter à l’étranger.

Dans mon cas j’ai acheté sur deal extreme, site asiatique basé à Hong-kong livrant partout dans le monde sans frais de port !!

Ce genre de site étranger et « sans SAV » n’inspire pas forcément confiance, mais celui-ci semble avoir une certaine réputation de sérieux.


J’ai commandé 2 fois chez eux et je n’ai pas eu de problèmes.

Si vous vous baladez sur le site vous pourrez voir un nombre impressionnant de gadgets dont certains pour lesquels la vente en France est surement interdite (les lasers par exemple).


Leur choix de transmetteur FM est impressionnant :

http://www.dealextreme.com/products.dx/category.203~search.fm%20transmitter

Dans mon cas j’ai choisi un de ceux embarquant un lecteur mp3 intégré, une carte SD et hop même pas besoin de lecteur mp3 externe.


La puissance d’émission est impressionnante (plus de 10m) d’où une réception très correcte (léger souffle), très rarement perturbée (lignes hautes tensions).

Bref un choix que je referais sans hésiter (surtout pour moins de 10€)