J’ai craqué. J’avais essayé de résister pourtant, et j’avais tenu longtemps. Mais là ça y est, j’ai craqué. Au lieu de publier mes photos à l’aide d’une célèbre application web dédiée à ça sans se poser de questions, j’ai développé moi-même un n-ième outil.
Et là pour le coup, des applis web pour publier des photos, y’en a vraiment des pelletés sur Internet... Mais bon, voilà, c’est fait, au moins celle-là elle correspond à 100% de mes besoins, qui étaient les suivants :
jolie
légère et rapide
je ne dois pas à avoir à faire plus que d’envoyer un dossier avec des photos sur un espace web.
pouvoir afficher les photos en miniatures et en grand
avoir la possibilité de vérouiller un dossier de photos par un mot de passe
pouvoir publier aussi des vidéos
Et c’est tout, le reste des fonctionnalités classiques de ce genre d’outil sont inutiles pour moi (commentaires, notations, etc.)
J’ai aussi besoin de pouvoir créer des albums, exit donc le fameux service hébergé Flickr, qui ne propose ça que pour les comptes payants.
Je n’ai tout de même pas tout développé à partir de rien. Pour l’affichage des photos en miniature et en grand, je cherchais quelquechose du genre de Lightbox. C’est très joli, dynamique, et s’appuie sur des pages standards. Ca me plaît. Mais ça ne permet pas d’afficher des vidéos. Heureusement, un clône de Lightbox, Shadowbox, fait ça sans problème. En plus, c’est sous licence libre (LGPL). Que demande le peuple ?
Le peuple, il demande un générateur d’index qui prépare la page de miniatures, avec les bons liens comme il faut pour que ShadowBox se lance. Et le peuple, il voudrait aussi un moyen de générer les miniatures automatiquement. Il est exigent, le peuple.
Voilà donc ce que j’ai fait, j’ai écrit deux scripts :
un en PHP pour générer les pages web
un en python pour fabriquer les miniatures
Le script PHP exploite les possibilités offertes par la directive "DirectoryIndex" d’Apache. Cette directive est communément utilisée pour dire que l’appel d’un répertoire dans l’URL se traduit par l’appel d’un fichier index.html ou index.php à l’intérieur de celui-ci. Mais on peut mettre bien plus qu’un nom de fichier, en fait on peut même mettre une URL relative ou absolue qui pointe vers un script. Et c’est ce script qui sera utilisé pour fabriquer l’index du répertoire. Pile-poil ce qu’il me faut !
Il s’agit là d’un script python qu’on passe sur un répertoire contenant des photos ou des vidéos, et qui créé les miniatures pour ces éléments. Il recompresse et redimentionne aussi les photos. Et il convertit les vidéos en FLV [1] pour lecture dans le navigateur. Et il peut même renommer les photos pour leur donner un nom cohérent auto-incrémenté.
J’ai placé tous ces développements sous licence Affero GPL v3, qui est la GPL des applications web : si vous modifiez le code et que vous utilisez cette application sur le web, alors vous devez fournir vos modifications.
Si vous êtes intéressé, voici le code :
photos-index-0.4.tar.gz
(le nom est temporaire, si vous avez des idées je suis tout ouïe)
L’archive contient un fichier README avec les instructions.
Et bien sûr, mes photos, qui constituent un bon site de démo.
Si vous avez des idées de développement et de fonctionnalités, je suis preneur, bien que je ne garantisse pas que je passerais beaucoup de temps dessus, vu qu’à l’origine il s’agit d’un besoin personnel. Maintenant bien sûr, si vous avez une contribution, je ne vais pas refuser... ;-) Si vous trouvez des bugs, ça m’intéresse aussi.
Et si vous voulez suivre le développement de l’outil, c’est possible en passant par Git avec la commande suivante :
git clone http://aurelien.bompard.org/projects/divers/photos.git/
Si vous décidez de l’utiliser, laissez-moi un message, ça me fera plaisir de savoir que ça vous a été utile ! :)
[1] Acronyme de Flash Video, un format ouvert et lisible par Gnash.