Comment récupérer une image d’une caméra AirCam Ubiquiti avec une simple commande Wget (Linux) ?
Commencez par recopier le script à la fin du billet dans un fichier snap.sh par exemple. Rendez ensuite le script exécutable :
chmod +x snap.sh
puis exécutez le :
sh snap.sh votre_ip:port admin password fichier.jpg
Remplacez admin, password par vos identifiants de connexion ou ne les indiquez pas si vous utilisez le couple ubnt/ubnt de base.
Port est le port http (80 par défaut) et peut-être oublié si vous ne l’avez pas modifié.
fichier.jpg sera le fichier image capturé.
Par exemple :
sh snap.sh 192.168.1.121:82 admin pass snap.jpg
Et voilà, vous avez désormais une image haute résolution snap.jpg que vous allez pouvoir exploiter à volonté, l’envoyer par email, la rendre visible sur un site internet, etc. Il est même possible d’automatiser la capture en lançant le script snap.sh à intervalle régulier via crontab pour afficher une image en temps réel de votre environnement à vos visiteurs, mais ceci est une autre histoire.
Ce petit script fonctionne fort bien sur un Raspberry Pi et apporte quelques idées d’expérimentations, notamment avec son serveur web intégré : nous en reparlerons prochainement 😉
Le script :
#!/bin/sh usage() { echo "airCam snapshot grabber v0.1 (c) Ubiquiti Networks, Inc." echo "Usage: $0 <aircam IP> [<username> <password> <output file>]" } if [ $# -lt 1 ]; then usage $0 exit 10 fi IP=$1 USER=$2 PASS=$3 SNAPSHOT_FILE=$4 if [ -z "$USER" ]; then USER=ubnt fi if [ -z "$PASS" ]; then PASS=ubnt fi if [ -z "$SNAPSHOT_FILE" ]; then SNAPSHOT_FILE=aircam-snapshot.jpg fi COOKIES="--cookie cookies.txt --cookie-jar cookies.txt" AUTH="--form-string username=$USER --form-string password=$PASS" URL=http://${IP} # fetch cookie curl -s $COOKIES -L ${URL}/login.cgi -o /dev/null TMPFILE=$(mktemp .ac-snap.tmp.XXXXXX) echo "Recuperation de l'image depuis $IP..." curl -s $COOKIES -H "Expect:" $AUTH -L ${URL}/login.cgi?uri=/snapshot.cgi?chan=0 -o $TMPFILE # check downloaded file file $TMPFILE | grep JPEG >/dev/null 2>&1 RC=$? if [ 0 -eq $RC ]; then echo "Chargement reussi." mv $TMPFILE $SNAPSHOT_FILE echo "Sauvegarde dans '$SNAPSHOT_FILE'" else echo "Erreur ! Mauvais login/mot de passe ?" fi rm -f $TMPFILE exit $RC Selon une idée sur cette page.
Commentaires fermés.