Aller:

Maurice Svay

Prendre régulièrement une photo avec son Mac et l'uploader

Et si on prenait des photos à intervalles réguliers et qu'on les mettait en ligne? Pourquoi faire? Pour faire de la vidéo surveillance, monter un film stop-motion ou retrouver qui a volé votre Mac par exemple. Si vous avez un Mac équipé d'une webcam, c'est facile.

Prendre des photos en ligne de commande

Tout d'abord, téléchargez ImageSnap et mettez-le dans /usr/local/bin par exemple. N'importe quel dossier dans votre PATH fera également l'affaire.

Uploader l'image vers un serveur

Ensuite, créez un fichier snap.sh avec le code suivant:

#!/bin/sh
upload="http://example.com/upload.php"
imagesnap snapshot.jpg
curl -F "photo=@snapshot.jpg" $upload

Vous pouvez mettre de dossier où vous voulez, dans votre dossier personnel par exemple. Ce script permet de prendre une photo, et de l'uploader vers http://example.com/upload.php en POST avec CURL.

Récuperer l'image uploadée et la stocker

Maintenant, mettez sur votre serveur le script PHP upload.php suivant. Il permet de récupérer l'upload et de stocker l'image sur le serveur. Créez également un dossier img à côté de votre script. C'est dans ce dossier que seront mises les photos.

<?php

$path = dirname(__FILE__).'/img';

$year_folder = $path . '/' . date('Y');
if (!is_dir($year_folder)) {
    mkdir($year_folder);
}

$month_folder = $year_folder . '/' . date('m');
if (!is_dir($month_folder)) {
    mkdir($month_folder);
}

$day_folder = $month_folder . '/' . date('d');
if (!is_dir($day_folder)) {
    mkdir($day_folder);
}

$file_path = $day_folder . '/' . date('Ymd-His') . '_' . $_SERVER['REMOTE_ADDR'] . '.jpg';

if (move_uploaded_file($_FILES['photo']['tmp_name'], $file_path)) {
    echo "OK\n";
} else {
    echo "Error\n";
}

Notez que les photos seront stockées dans des dossiers comme dans cet exemple: img/2010/02/17/20100210-120000_127.0.0.1.jpg. Le fichier comporte donc la date, l'heure et l'IP d'où la photo est envoyée.

Automatiser la tâche

Une fois que tout est en place, il suffit d'exécuter snap.sh pour prendre la photo et l'uploader. Pour automatiser ça, on peut ajouter cette action dans cron. Pour cela, faites :

crontab -e

et ajoutez la ligne suivante (à adapter selon l'emplacement de snap.sh):

0 * * * * /Users/mauricesvay/snap.sh

Voilà. Votre mac prendra des photos toutes les heures pour les mettre sur votre serveur. Facile.

Ne ratez pas la conférence Paris Web 2009, du 8 au 10 octobre 2009!

Comme chaque année depuis 2006, a lieu Paris Web, LA conférence qui s'adresse à ceux qui font le Web. Contrairement à d'autres conférences, Paris Web est une conférence réellement utile, où on apprend des choses. On y retrouve bon nombre d'experts pour discuter des sujets qui font le Web: technologies, design, accessibilité, standards, etc. Cette année encore, on retrouvera des têtes francophones connues comme Tristan Nitot, Daniel Glazman ou Amélie Boucher, mais également des orateurs internationaux comme Molly Holzschlag ou Nicole Sullivan. Tous les témoignages sont d'accord, Paris Web est l'une des meilleures conférences sur le sujet. Et pourtant, le tarif est très abordable. Tout ça pour dire qu'il ne faut pas rater cette conférence, donc foncez VOUS INSCRIRE!

Tous articles du blog