Categories
Technology

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.

3 replies on “Prendre régulièrement une photo avec son Mac et l’uploader”

Merci pour l’astuce. 😉

P.S. : faudrait que tu actives l’antispam dans ton DC2, certains billets sont submergés. akismet fonctionne très bien.

J’avais complètement raté ton retour sur ce blog… Voila qui est réparé.

Ravi de te voir réécrire ici, et le redesign est prometteur 🙂

Comments are closed.