106 votes

Comment télécharger un fichier CRX depuis la boutique en ligne de Chrome pour un identifiant donné ?

J'aimerais télécharger le fichier .crx d'une extension depuis le webstore, j'utilise fiddler pour analyser la requête réseau lorsque j'installe une extension depuis le webstore et je l'ai obtenu.
Par exemple, pour l'extension : https://chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
le lien de téléchargement est le suivant :

https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
Je me demande maintenant s'il existe une méthode universelle pour obtenir le .crx d'une extension, le problème étant de savoir comment Google a crypté le .crx.

bjclhonkhgkidmlkghlkiffhoikhaajg

en

OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA ?

toute idée sera utile.

145voto

Rob W Points 125904

Le fichier CRX lui-même peut être directement téléchargé à l'adresse suivante
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=**[PRODVERSION]**&**acceptformat=crx2,crx3**&x=id%3D**[EXTENSIONID]**%26uc

  • [PRODVERSION] est la version de Chrome, qui doit être 31.0.1609.0 au minimum et
  • [EXTENSIONID] est l'identifiant de l'extension

(Nouveau en 2018) acceptformat=crx2,crx3 demande au serveur de répondre également avec des extensions en le format CRX3 (au lieu de 204 No Content lorsque l'extension n'est pas disponible en CRX2).

Si l'extension que vous utilisez contient des modules spécifiques au système d'exploitation (par exemple NaCl), vous devez ajouter des paramètres supplémentaires ( os , arch , nacl_arch ).

Pour la logique complète de la génération d'une URL complète de téléchargement de CRX, voir la section get_crx_url fonction dans https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js .

Il s'agit d'une partie de l'extension Chrome Extension Source Viewer, disponible dans le Chrome Web Store : https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin


Notez que l'ouverture de l'URL précédente dans Chrome no déclenche un téléchargement car Chrome intercepte automatiquement les réponses dont le contenu est Content-Type est fixé à application/x-chrome-extension . Si vous souhaitez télécharger par programme le fichier crx dans une extension Chrome, changez le type MIME en application/octet-stream (par exemple, comme dans le cas de src/lib/crx-to-zip.js ).

53voto

John Kentucky Points 66

Un site web a été créé à cet effet :

http://chrome-extension-downloader.com/

30voto

serg Points 43893

Pour l'une de mes extensions, je devais télécharger d'autres CRX automatiquement en ne connaissant que l'ID de l'extension. J'ai résolu ce problème en ouvrant l'URL suivante :

http://clients2.google.com/service/update2/crx?response=redirect&x=id%3D<EXTENSION_ID_HERE>%26uc%26lang%3Den-US&prod=chrome

cette page vous y conduira https://clients2.googleusercontent.com/crx/download/ adresse.

Je ne me souviens plus comment j'ai trouvé cette URL (soit dans la source de la page quelque part, soit j'ai utilisé un renifleur de réseau), mais elle fonctionne très bien pour moi depuis décembre dernier, donc elle semble fiable.

8voto

arulraj.net Points 641

J'ai écrit un petit script python script pour automatiser ce processus ce que @serg @Rob W

https://gist.github.com/arulrajnet/2424bc1ffc40324f3786

vous pouvez également l'utiliser.

python ChromeAppDownloader.py -u https://chrome.google.com/webstore/detail/google-maps/lneaknkopdijkpnocmklfnjbeapigfbh

C'est ainsi que vous devez l'utiliser.

7voto

prime Points 1239

Vous pouvez utiliser le modèle d'URL ci-dessous,

https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&x=id%3D[EXTENSIONID]%26uc

En PRODVERSION est la version de Chrome. (vous pouvez l'obtenir dans les paramètres -> Aide -> A propos de Google Chrome). Ex : Version 69.0.3497.100 (version officielle) (64 bits)

En EXTENSIONID est l'identifiant de l'extension. Ex : Voici un exemple de plugin, https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=en l'identifiant est hmhgeddbohgjknpmjagkdomcpobmllji

Voici donc un exemple de demande de téléchargement https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X