À PARTIR DU 21 NOVEMBRE 2023, LE CORRECTIF DE LA CARTE COMME DOCUMENTÉ CI-DESSOUS NE FONCTIONNE PLUS
Voir le numéro 41 pour l'état actuel.
Depuis le 1er décembre 2018, la fonctionnalité Carte dans les versions sans abonnement de Lightroom a cessé de fonctionner. Adobe suggère d'acheter un abonnement à Lightroom CC (120 USD/an) ou de copier et coller les coordonnées GPS dans votre moteur de recherche préféré (MDR !).
Ce projet ressuscite la fonctionnalité perdue, sans abonnement à Lightroom CC.
Pour y parvenir, nous modifierons Lightroom pour utiliser notre propre clé API Google Maps au lieu de celle d'Adobe. Bien que nous ayons besoin d'un abonnement avec Google, cet abonnement comprend 200 USD de crédits d'utilisation gratuits par mois, ce qui devrait être suffisant pour les utilisateurs occasionnels du module Lightroom Map.
Cette procédure nécessite des compétences informatiques moyennes à avancées. Des erreurs peuvent interrompre votre installation de Lightroom ! Si vous ne savez pas ce que vous faites, demandez de l'aide à votre personne d'assistance informatique désignée. Nous ne sommes PAS votre support informatique !
Gardez votre clé API Google Maps secrète
Ne pas protéger votre clé API Google Maps peut entraîner des frais inattendus sur votre compte Google Cloud.
GARANTIE ANNULÉE ! Nous ne sommes PAS responsables de la rupture de votre installation Lightroom. Nous ne sommes PAS responsables des frais sur votre compte Google Cloud.
Cette procédure a été développée et testée avec Lightroom 6.14 sous Windows 10.
Les utilisateurs ont signalé que cela fonctionne également avec :
Actuellement, le correctif NE fonctionne PAS avec Lightroom 5.x (numéro 8) ou Lightroom 7.x (numéro 10). Veuillez nous faire savoir si vous faites des progrès sur ces versions en commentant dans les numéros ouverts.
Un grand Merci ! à tous ceux qui ont contribué par leurs recherches et leurs commentaires !
Vous devez créer votre clé API Google Maps personnelle pour remplacer celle d'Adobe.
La première section de ce guide vous guidera tout au long du processus. Si vous n'avez pas encore de compte sur Google Cloud, cela impliquera également la création du compte et la saisie des informations de facturation.
Accédez à API et services > Bibliothèque et filtrez par catégorie > Cartes.
Sélectionnez les API suivantes et cliquez sur Activer :
Comme Lightroom n'appelle que deux API, limitez la clé API Google Maps aux services requis pour limiter les risques d'abus.
Les crédits d'utilisation mensuels gratuits de Google Cloud devraient être suffisants pour une utilisation occasionnelle du module Lightroom Map. Pour éviter les surprises, vous devez définir des budgets ou des quotas. Les budgets enverront une alerte par e-mail lorsqu'un montant configuré est dépassé, tandis que les quotas désactiveront l'API.
Nous recommandons de configurer un budget de 1 USD et une première alerte à 10%. Avec cette configuration, Google vous enverra un email si vous dépensez plus de 10 centimes de votre propre argent.
Si Lightroom est toujours en cours d'exécution, fermez-le maintenant.
Localisez les fichiers d'application de Lightroom et recherchez un fichier appelé Location.lrmodule
. Il s'agit du module Lightroom Map. Faites une copie de sauvegarde de ce fichier et conservez-la dans un endroit sûr.
L'emplacement et le nom du fichier peuvent varier selon le système d'exploitation et la version de Lightroom.
C:Program FilesAdobeLightroomLocation.lrmodule
/Applications/Adobe Lightroom/Adobe Lightroom.app
, cliquez avec le bouton droit et sélectionnez Afficher le contenu du package . Le module Carte est /Contents/PlugIns/Location.agmodule
.REMARQUE IMPORTANTE : Si vous laissez la copie de sauvegarde dans le dossier d'origine, l'extension du fichier doit être modifiée (par exemple de Location.lrmodule à Location.lrmodule_bak). Sinon, il risque toujours d'être récupéré par Lightroom au lieu du fichier corrigé.
Sous Windows, utilisez Resource Hacker pour extraire les ressources Lua que nous devons patcher :
Location.lrmodule
avec Resource HackerLUA
LOCATIONMAPVIEW.LUA
, cliquez avec le bouton droit et sélectionnez la ressource de sauvegarde.AGREVERSEGEOCODESERVICE.LUA
, faites un clic droit et sélectionnez la ressource de sauvegardeLOCATIONDEBUGPANEL.LUA
, cliquez avec le bouton droit et sélectionnez la ressource de sauvegarde. Sur Mac, les fichiers Lua sont directement accessibles dans Location.agmodule
:
Location.agmodel
et sélectionnez Afficher le contenu du package/Contents/Resources/
LocationMapView.lua
, AgReverseGeocodeService.lua
et LocationDebugPanel.lua
à l'emplacement souhaité pour l'application des correctifs.Si vous ne l'avez pas déjà fait, installez Python 3.
Le script Python patchluastr.py fourni avec ce projet permet de remplacer certaines chaînes dans les fichiers Lua.
Pour LocationMapView et AgReverseGeocodeService, utilisez le script Python patchluastr.py pour remplacer la clé d'Adobe par votre clé API Google Maps personnelle :
.bin
, sinon Resource Hacker ne le trouvera pas à l'étape suivante. Exécutez patchluastr.py
comme suit, en remplaçant {your-api-key}
par votre clé API Google (sans accolades) : patchluastr.py LOCATIONMAPVIEW.LUA "client=gme-adobesystems" "key={your-api-key}" -o LOCATIONMAPVIEW.tmp
patchluastr.py LOCATIONMAPVIEW.tmp "3.12" "3.51" -o LOCATIONMAPVIEW.bin
patchluastr.py AGREVERSEGEOCODESERVICE.LUA "client=gme-adobesystems" "key={your-api-key}" -o AGREVERSEGEOCODESERVICE.bin
orignal-name.lua.bak
. Exécutez ensuite patchluastr.py
comme suit, en remplaçant {your-api-key}
par votre clé API Google (sans accolades) : patchluastr.py LocationMapView.lua.bak "client=gme-adobesystems" "key={your-api-key}" -o LocationMapView.lua.tmp
patchluastr.py LocationMapView.lua.tmp "3.12" "3.51" -o LocationMapView.lua
patchluastr.py AgReverseGeocodeService.lua.bak "client=gme-adobesystems" "key={your-api-key}" -o AgReverseGeocodeService.lua
Avec le fichier LocationDebugPanel, utilisez le script Python patchluastr.py pour désactiver la vérification de signature :
patchluastr.py LOCATIONDEBUGPANEL.LUA "nature" "street" -o LOCATIONDEBUGPANEL.bin
patchluastr.py LocationDebugPanel.lua.bak "nature" "street" -o LocationDebugPanel.lua
Si l'exécution de patchluastr.py échoue avec une erreur comme par exemple TypeError: unsupported operand type(s)
, assurez-vous que Python 3 est installé. Si plusieurs versions de Python sont installées, vous pouvez exécuter explicitement le script avec Python 3 en préfixant la commande avec python3
:
python3 patchluastr.py {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.lua
Expérimental : Pour les utilisateurs Windows qui ne souhaitent pas installer Python, j'ai mis à disposition ici une version exécutable de patchluastr
, qui ne nécessite pas d'installer Python. La ligne de commande est :
patchluastr.exe {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.bin
Remarque : Certains utilisateurs signalent avoir besoin de correctifs supplémentaires. Si vous ne parvenez pas à faire fonctionner la carte ou si la carte cesse de fonctionner, consultez le numéro 12 et le numéro 19. Nous n'avons pas rencontré ce problème aux États-Unis, cela peut donc dépendre de votre pays.
Sous Windows, utilisez Resource Hacker pour remplacer les ressources Lua par leur version corrigée.
Location.lrmodule
avec Resource HackerLUA
LOCATIONMAPVIEW.LUA
, cliquez avec le bouton droit et sélectionnez Remplacer la ressource , puis cliquez sur Sélectionner un fichier et accédez à la version corrigée de cette ressource. Cliquez ensuite sur RemplacerAGREVERSEGEOCODESERVICE.LUA
cliquez avec le bouton droit et sélectionnez Remplacer la ressource , puis cliquez sur Sélectionner un fichier et accédez à la version corrigée de cette ressource. Cliquez ensuite sur Remplacer .LOCATIONDEBUGPANEL.LUA
cliquez avec le bouton droit et sélectionnez Remplacer la ressource , puis cliquez sur Sélectionner un fichier et accédez à la version corrigée de cette ressource. Cliquez ensuite sur RemplacerLocation.lrmodule
. En fonction des autorisations, vous devrez peut-être utiliser Enregistrer sous , puis recopier le fichier modifié dans C:Program FilesAdobeLightroom
Sur Mac, copiez les fichiers Lua corrigés dans /Applications/Adobe Lightroom/Adobe Lightroom.app/Contents/PlugIns/Location.agmodule/Contents/Resources/
, en écrasant les fichiers d'origine.
Le module Carte de votre installation de Lightroom fonctionne désormais à nouveau.
Si vous n'avez pas activé l'API Geo Coding, vous verrez brièvement des messages d'erreur. Cependant, la fonctionnalité de base de carte et de géolocalisation fonctionnera toujours. (Remarque : certains utilisateurs signalent que le module de carte ne fonctionnait pas pour eux à moins que l'API de géocodage ne soit activée.)
Assurez-vous d'avoir une sauvegarde de Locations.lrmodule avant de jouer avec ceux-ci !
Les exemples ci-dessous utilisent des fichiers de correctifs, qui se trouvent dans le dossier hacks
. Si vous ne l'avez pas encore fait, nous vous recommandons de cloner ou de télécharger le projet complet depuis Github, par exemple en cliquant sur le bouton vert en haut à droite de cette page.
Remarque : La plupart de ces hacks s'appuient sur l'API Google Maps et nécessitent donc toujours de corriger au préalable la clé de l'API Google Maps.
Ce patch remplace le style de carte "Light" par OpenStreeMap.
Après avoir corrigé la clé API, exécutez :
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/osm.patch -o LOCATIONMAPVIEW-osm.bin
Utilisez maintenant LOCATIONMAPVIEW-osm.bin
avec Resource Hacker au lieu de LOCATIONMAPVIEW.bin
, et ensuite OpenStreetMap est disponible en tant que style de carte "Light".
Crédit pour le piratage : @pbb72
C'est assez radical ; si nous activons StreetView, nous pouvons alors voir nos épingles de carte en 3D ! Ce n'est pas très précis, mais c'est juste très cool.
Il y a déjà du code en place dans le fichier Lightroom pour activer StreetView, donc apparemment Adobe a travaillé dessus, mais l'a peut-être désactivé parce que ce n'était pas assez bon.
Pour activer cette fonctionnalité cachée, exécutez :
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/streetview.patch -o LOCATIONMAPVIEW-sv.bin
Crédit pour le hack et la capture d'écran : @pbb72
Certains endroits sur terre proposent des photos aériennes avec une perspective diagonale (au lieu d'une vue de haut en bas). Attention : ces photos ne sont pas très précises.
Pour activer ce contrôle, exécutez :
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/tiltmap.patch -o LOCATIONMAPVIEW-tilt.bin
Avec ce patch, de nouveaux contrôles apparaîtront en bas à droite si les données sont disponibles pour l'emplacement actuel. Vous devrez peut-être zoomer pour que le contrôle apparaisse.
Crédit pour le piratage : @pbb72
Nous ne pouvons pas ajouter plus de cartes au sélecteur de style de carte de Lightroom (nous pensons). Mais heureusement, Google Maps propose son propre sélecteur de style de carte, qu'il suffit d'activer.
Une fois activé, nous pouvons ajouter nos propres entrées au menu déroulant. Voir les commentaires à l'intérieur du fichier de correctif pour plus d'informations.
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/mapselector.patch -o LOCATIONMAPVIEW-sel.bin
Crédit pour le piratage : @pbb72
Ce correctif affiche les messages d'erreur JavaScript et de débogage dans une fenêtre sous la carte, ce qui sera très utile lors du développement de davantage de hacks. Vous ne voulez probablement pas que cela soit activé de manière permanente, alors faites une sauvegarde du module Emplacements avant d'appliquer ce hack.
Exécutez le script hacks/jsconsole.patch :
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/jsconsole.patch -o LOCATIONMAPVIEW-con.bin
Le script effectue les opérations suivantes :
Profitez maintenant de messages d'erreur réellement lisibles !
Crédit pour le hack et la capture d'écran : @pbb72
Début 2018, Google a réorganisé le modèle tarifaire pour l'intégration de Google Maps dans des applications tierces, passant d'un accès gratuit ou de frais forfaitaires à une tarification basée sur les transactions. Le nombre de requêtes adressées aux API Google Maps est comptabilisé et, après un certain seuil, une somme modique est facturée pour chaque requête.
Les nouveaux tarifs de Google ne sont pas compatibles avec les produits sous licence perpétuelle. Avec Lightroom classique, Adobe ne recevait de l'argent qu'une seule fois, mais devait payer Google à chaque fois que vous utilisiez le module Carte. Pour Adobe, il ne s’agit pas d’un modèle économique durable.
La clé API Google Maps intégrée dans les anciennes versions d'Adobe Lightroom a expiré le 30 novembre 2018.
L'API JavaScript de Google Maps permet d'intégrer Google Maps dans des sites Web et des applications.
Depuis décembre 2018, l'API JavaScript de Google Maps coûte 0,007 USD par chargement de carte (7 USD/1 000). Une fois qu'une carte est chargée, les interactions de l'utilisateur avec la carte, telles que le panoramique, le zoom ou le changement de couche de carte, ne génèrent pas de chargements de carte supplémentaires.
De plus, depuis mars 2023, la version de l'API demandée par Lightroom était obsolète, ce qui a amené Lightroom à charger une version incompatible, interrompant ainsi la fonctionnalité des cartes.
Le module Lightroom Map appelle l’API Maps JavaScript pour afficher la carte dans Lightroom. L'accès à cette API est requis pour que le module Map fonctionne.
L'accès à cette API est implémenté dans la ressource Lua LOCATIONMAPVIEW.LUA.
L'API Google Geocoding permet aux applications de rechercher des emplacements et des noms de lieux en fonction des coordonnées GPS.
Depuis décembre 2018, l'API Google Geocoding coûte 0,005 USD par requête (5 USD / 1 000).
Le module Lightroom Map appelle l'API de géocodage pour afficher le nom de lieu de l'image actuellement sélectionnée et lors de la recherche d'un emplacement. Le module Carte fonctionne sans accès à cette API, mais fera clignoter brièvement un message d'erreur lors de l'entrée dans le module Carte et lors du basculement entre les images.
Nous avons observé plusieurs appels à l'API Geocoding lors de l'entrée dans le module Map. Nous ne savons pas non plus quelles autres opérations créeront des appels à cette API. Nous vous recommandons de garder un œil attentif sur les rapports d'utilisation disponibles sur Google Cloud Platform. En cas de doute ou si cela coûte trop cher, désactivez l'accès à l'API de géocodage en supprimant le service des restrictions de l'API sous API et services > Identifiants.
L'accès à cette API est implémenté dans la ressource Lua AGREVERSEGEOCODESERVICE.LUA.
Pour le géocodage inversé (ajout du nom de l'emplacement aux métadonnées de l'image en fonction des coordonnées connues), Lightroom accède à l'API Google avec la signature
du paramètre de requête qui semble être calculée en fonction de la clé API (expirée) d'Adobe et de votre clé de licence Lightroom. L'appel d'API incriminé ressemble à :
http://maps.google.com/maps/api/geocode/json?key=[api-key]&language=EN&channel=lightroom-6.14&latlng=[coordinates-of-my-photo]&signature=[string-of-characters]
Heureusement pour nous, même si l'API Google refuse l'accès avec une signature expirée, l'API fonctionne si signature=[string-of-characters]
est supprimé de l'URL ou lorsque signature
est remplacée par un nom de paramètre inconnu. Malheureusement, la signature
de chaîne n'existe dans aucun fichier Lua.
Il s'avère que la fonctionnalité est masquée par la rupture des chaînes. La signature est calculée dans LocationDebugPanel.lua
et la nature
de la chaîne dans ce fichier fait partie de la signature
du nom du paramètre. Remplacer nature
par street
modifiera l'appel de l'API comme suit :
http://maps.google.com/maps/api/geocode/json?key=[api-key]&language=EN&channel=lightroom-6.14&latlng=[coordinates-of-my-photo]&sigstreet=[string-of-characters]
ce que Google accepte volontiers.
À partir de 2018, Google exige un compte sur Google Cloud Platform activé pour la facturation. Toutes les transactions de l'API Google Maps sont facturées sur ce compte. Heureusement pour nous, Google accorde à chaque compte un crédit mensuel de 200 USD. Seules les transactions dépassant cette limite seront facturées sur votre carte de crédit.
Les coûts et les conditions de service peuvent différer selon les pays. Veuillez examiner attentivement les détails sur le site Web de Google.
200 USD suffisent pour plus de 28 000 chargements de cartes ou 40 000 appels à l'API Geo Coding, ce qui devrait suffire pour une utilisation occasionnelle du module Lightroom Map. Pour éviter les surprises, vous pouvez définir des budgets ou des quotas. Les budgets enverront une alerte par e-mail lorsqu'un montant configuré est dépassé, tandis que les quotas désactiveront l'API.
Nous recommandons de configurer un budget de 1 USD et une première alerte à 10%. Avec cette configuration, Google vous enverra un email si vous dépensez plus de 10 centimes de votre propre argent.