Ce repo RoadTripsGenerator est un ensemble de scripts (bash et python) permettant générer automatiquement des sites web complets avec cartes interactives à partir de vos photos, vidéos, trace gps et récits de voyages.

C'est sans prétention et il faudrait probablement faire des développements bien plus sérieux pour obtenir un logiciel "pousse boutons" agréable à utiliser, mais si cela peut donner des idées ...

Je me suis en effet rendu compte que je passais des heures à faire des montages vidéo de mes road trips pour faire des films que finalement je ne regardais pas moi-meme : trop longs masi pas assez d'infos, pas interactif, etc.

Alors je me suis demandé sous quelle forme il faudrait mettre en forme mes road trips, pour pouvoir me les remémorer en famille et les faire partager à d'autres.

C'est comme celà que ce petit projet a vu le jour.

Le principe

Le principe est très simple : je possède des photos et vidéos avec informations GPS de position et de temps (dans mon cas : photos iphone et films GOPRO), des traces ou parcours GPS quotidiens et un récit écrit en markdown.

Les scripts vont alors générer automatiquement un page html avec une carte interactive permetant de visualiser les photos, les vidéos les traces gps du road trip. Voir par exemple mon road trip de l'été 2025.

Les scripts récupèrent les coordonnées gps des photos, videos et les placent sur une carte avec la trace du parcours, assurant un découpage quotidien pour marquer les étapes et construisent des pages web interactives ou l'on peut, en parallèle, consulter le récit du voyage.

Les scripts s'occupent également éventuellement de compresser les films pour alourdir le moins possible le chargement des pages. Actuellement la compression produit su 1080p en 60 images par seconde de haute qualité (10Mbps) pour une exécution locale optimale mais peut être trop lourde pour uen diffusion sur le web. Les vidéos ainsi compressées occupent environ 25% de leur place initiale.

Les sites produits étant statiques, une fois générés ils sont facilement transportable par simple copie.

Les prérequis

Normalement les scripts doivent fonctionner très facilement sous OSX et Linux, probablement facilement dans un windows powershell ou dans un environnement cygwin, mais je n'ai pas testé.

Il faudra installer toutefois :

  • obligatoirement :
    • python3 et ses packages pandas, folium, gpspy, markdown2 et numy
    • exiftool
  • optionnellement
    • ffmpeg (pour la compression des MP4)

Préparation des données

Je crée un repertoire pour l'ensemble de mes roadtrips à l'interieur duquel je place le sous-repertoire Scripts de ce dépôt

Puis, pour chaque road-trip je crée un sous répertoire , par exemple Ete-2025 , Ete-2024, etc.

Dans le sous-repertoire de chaque road-trip, je crée

  • un sous repertoire photos avec mes photos
  • un sous répertoire rushs avec mes vidéos
  • un sous-repertoire routes avec mes traces gps qutodienes dans des fichiers au format gpx que je nomme AAAA-MM-JJ.gps (par exemple 2025-08_02.gpx)
  • un fichier voyage.md avec le récit du voyage au format markdown

Sur mon disque, je dois voir une structure qui ressemble à

MesVoyages
|-Scripts
|-Ete-2025
  |-photos
  |-rushs
  |-routes
  voyage.md
|-Ete-2024
...

Mode d'emploi

Une fois les données préparées, tout est simple, mais un site peut être long à générer à cause de l'étape de compression.

1 road trip (3 ou 4 commandes selon que l'on compresse ou non les vidéos)

Par exemple https://roadtrip.ouaibe.fr/Ete-2025

On se place dans le repertoire du road-trip que l'on veut générer (celui qui contient les repertoires photos,rushs, etc. et on lance

../Scripts/extraction_infos.sh

Cela produit deux fichiers : export_photos.csv et export_videos.csv qui contiennent les extractions d'infos GPS des photos et videos.

Vient ensuite la compression optionnelle des videos qui peut être assez longue mais que je conseille vivement, même pour une utilisation locale.

../Scripts/compress.sh

Les vieos compressées se trouveront alors dans le répertoire videos au meme niveau que le repertoire rushs

Si votre choix est de ne pas compresser, alors il faut faire un lien symbolique videos sur le sous repertoire rushs

ln -s rushs videos

Vient alors la génération de la carte :

../Scripts/genere_carte.py

Generer un index de road-trips

Par exemple https://roadtrip.ouaibe.fr

On se place dans le repertoire dont les sous-repertoires sont les road-trips et on lance

./Scripts/genere_index_general.py

tout automatique

En fait si on a bien respecté l'arborescence des repertoires, on peut automatiser la generation de tous les road-trips présents en lançant

./Scripts/genere_site.sh

Il conviendra de désactiver dans le script le lancement du script "compress.sh" si on ne désire pas compresser (attention par contre à bien mettre un lien dynamique sur les répertoires rushs, comme expliqué plus haut.

Contribuer :

Pour pouvoir faire des push :

git remote set-url origin https://<nom d'utilisateur>n@git.ouaibe.fr/Korrigan/RoadTripsGenerator.git

Pour eviter de re-taper le mot de passe pendant une heure pour les autres push:

git config --global credential.helper 'cache --timeout=3600'
Description
No description provided
Readme 60 KiB
Languages
Python 81.1%
Shell 18.9%