Importer dans WikiCommons des centaines de photos à partir d'un csv
Bellevue - La Terrasse |
Depuis 2017, les archives des Hauts-de-Seine mettent en ligne le fonds de cartes postales anciennes (CPA). En octobre 2020, cela représente 9558 CPA provenant de la sous-série 9Fi réunissant les CPA de 1900 à 1944. Ces photos tombées dans le domaine public accompagnées de quelques métadonnées sont publiées sur le site d'Open Data des Hauts-de-Seine. Cela peut surprendre mais il y a quelques fonds de cartes postales et fonds photographiques sur les sites d'open data. C'est en fait une très bonne idée car ces sites sont adaptés à une réutilisation massive des données, contrairement aux sites des archives qui ne sont pas faits pour récupérer des centaines ou milliers de documents d'un seul coup.
Suite à cette découverte, j'ai importé un peu plus de 200 photos de la revue municipale de Marseille des années 1930, une collection de cartes postales de la ville de Brocas dans les Landes, avant de m'attaquer à ce gros fonds.
Dans ce billet de blog, je souhaite vous montrer ma méthode qui est adaptée aux personnes, comme moi, qui ne savent pas se servir de l'API, coder en Python, etc. Je commence par récupérer les données en format CSV ou EXCEL afin de les visualiser dans un tableur.
1. Télécharger les images
La première étape consiste à récupérer les images. Pour cela j'utilise l'extension Simple mass downloader qui existe en version Firefox et Chrome. Il suffit de copier les urls du csv dans l'extension :
- copier les liens
- lancer le logiciel
- onglet Download list
- menu Hamburger Import URLs from clipboard
- Lancer la sauvegarde en cliquant sur start selected
Dans le cas des archives des Hauts-de-Seine, j'atteins assez vite le quota quotidien de requêtes qui permet de télécharger environ 3000 fichiers. Tous les fichiers téléchargés iront dans le dossier Téléchargements si vous utilisez Windows.
Les fichiers n'ont pas d'extension, j'utilise le logiciel Advanced Renamer pour rajouter l'extension jpg (<Name>.jpg).
Enfin dans le tableur, il faut indiquer l'emplacement des fichiers en remplaçant https://opendata.hauts-de-seine.fr/api/v2/catalog/datasets/cartes-postales/files/ par le répertoire où sont stockés vos fichiers.
2. Mettre en forme les données
2.1 Coordonnées géographiques
Pour les coordonnées, je crée une colonne avec la formule de LibreOffice Calc : CONCATENER("{{Object location|";B2;"}}"). Puis je fais un collage spécial du texte dans une autre colonne (Pattypan ne semblant pas comprendre les cellules avec des formules) et enfin je remplace la virgule par un pipe ( | ).
2.2 Identifiants
Il peut également être nécessaire dans certains cas de retravailler les identifiants qui sont de la forme 9FI/ANT_1, 9FI/ANT_15, 9FI/ANT_153, ce qui ne peut pas se trier correctement. Dans une autre colonne je copie le contenu, puis supprime tout sauf les chiffres à l'aide d'une expression régulière dans Rechercher/Remplacer : (.......)_ par rien. Puis dans Notepad++, j'ajoute les zéros manquants : \n(..)\r par \n0$1\r puis \n(.)\r par \n00$1\r
2.3 Noms des fichiers
3. Importer les données
Pour cette phase j'utilise Pattypan. La première étape du logiciel consiste à Générer un tableau. Importez les photos, sélectionnez le modèle MediaWiki que vous souhaitez utiliser (dans mon cas il s'agit de Template:Photograph) puis indiquez les champs à remplir par défaut :
- Photographer : {{unknown|author}}
- Title : {{fr|Carte postale des Hauts-de-Seine}}
- Institution : {{institution:Archives départementales des Hauts-de-Seine}}
- Source : https://data.opendatasoft.com/explore/dataset/fr-219200730-cartes-postales-anciennes%40hauts-de-seine/information/
- Licence : {{licence ouverte}}
Et je coche les champs Description, Date, Accession number et Partnership pour que Pattypan remplisse ces champs à l'aide des données dans le tableur. Vous obtenez un tableau de ce type avec des colonnes pré-remplies et d'autres à remplir à l'aide des données provenant des archives départementales :
'=={{int:filedesc}}==
{{Photograph
|photographer = ${photographer}
|title = ${title}
|description = ${description}
|depicted people =
|depicted place =
|date = ${date}
|medium =
|dimensions =
|institution = ${institution}
|department =
|references =
|object history =
|exhibition history =
|credit line =
|inscriptions =
|notes =
|accession number = ${accession_number}
|source = ${source}
|permission =
|other_versions =
}}
${partnership}
=={{int:license-header}}==
${license}
<#if categories ? has_content>
<#list categories ? split(";") as category>
[[Category:${category?trim}]]
</#list>
<#else>{{subst:unc}}
</#if>
Une fois le travail de mise en forme des données terminé, vous pouvez passer à la 2e étape de Pattypan qui s'intitule Valider et envoyer.
À l'heure actuelle, le logiciel s'arrête de téléverser les photos sans afficher le moindre message d'erreur s'il rencontre un problème. Par contre, il se contente de zapper l'import dans deux cas : s'il détecte que le fichier a déjà été importé et si le nom est déjà utilisé.
Je télécharge les photos dans la catégorie Collections of Archives départementales des Hauts-de-Seine de Wikimedia Commons, ainsi que dans une des catégories de Postcards of Hauts-de-Seine (Postcards in Meudon, Suresnes, etc.) Il est sans doute possible d'ajouter des catégories en utilisant les thèmes associés provenant des archives.
Les cartes postales géolocalisées peuvent être visualisées dans Wikimedia maps.
4. Dernières retouches
Quatre outils peuvent servir pour affiner la catégorisation et les données :
- Cat-a-lot afin de déplacer, d'ajouter et de supprimer des fichiers (ou des sous-catégories) entre catégories, depuis une catégorie, ou vers une catégorie,
- Visual File Change permettant de faire des modifications par lots,
- Locator tool permet de géolocaliser les cartes postales (liste des CPA à géolocaliser),
- Compare two lists
4.1 Fichiers manquants
À la fin de l'import, il y avait sur Wikimedia Commons un millier de cartes postales en moins que sur le site des Hauts-de-Seine. Des fichiers ont dû se perdre lors du téléchargement des milliers de photos. Pour identifier rapidement les fichiers manquants, j'ai utilisé un outil de comparaison de listes en lui demandant de comparer les noms de fichiers.
4.2 Remplacer et déplacer un modèle
Visual
File Change va notamment me permettre de corriger une erreur faite lors
des premiers imports en utilisant le modèle de coordonnées
géographiques adéquat et en le déplaçant. L'expression régulière
consister à rechercher :
/=={{int:license-header}}==\n\{\{licence ouverte\}\}\{\{location\|([^\|]+)\|([^\|]+)\}\}/
Et remplacer par :
{{Object location|$1|$2}}
=={{int:license-header}}==
{{licence ouverte}}
4.3 Affiner la catégorisation
Visual File Change peut également servir à catégoriser les CPA à partir de termes inclus dans le nom du fichier. Il est possible de faire des recherches du type :
intitle:"train" incategory:"Collections of Archives départementales des Hauts-de-Seine"
Puis d'ajouter la catégorie souhaitée :
Commentaires
Enregistrer un commentaire