I'd like to download the .crx file of an extension from webstore, I use fiddler to analyze the network request when I install an extension from webstore and got it.
For example, for the extension: https://chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
the download link is:
https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
Now I'm wondering if there is a universal method for get .crx of an extension, the problem is how did Google encryption
bjclhonkhgkidmlkghlkiffhoikhaajg
into
OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA
?
any idea will be helpful.
I wrote a small python script to automate that process what @serg @Rob W
https://gist.github.com/arulrajnet/2424bc1ffc40324f3786
you can use that also.
This is how you have to use.
For one of my extensions I had to download other CRXs automatically knowing only extension ID. I solved this by opening the following URL:
this page will forward you to that
https://clients2.googleusercontent.com/crx/download/
address.I don't remember already how I came up with that URL (it was either in page source somewhere or I used network sniffer), but it has been working great for me since last December, so it looks reliable.
You can use the below URL template,
The PRODVERSION is the Chrome version. (get it from settings -> Help -> About Google Chrome). Ex : Version
69.0.3497.100
(Official Build) (64-bit)The EXTENSIONID is the id for the extension. Ex : Here is a sample plugin, https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=en the id is
hmhgeddbohgjknpmjagkdomcpobmllji
So sample request to download will be https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc
There's this website just to do exactly that:
http://chrome-extension-downloader.com/
Create a bookmark add the javascript function as the address. Browse to the chrome extension you want to download then click on the bookmark and it should start downloading.
Thanks
The CRX file itself can be directly downloaded from
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&acceptformat=crx2,crx3&x=id%3D[EXTENSIONID]%26uc
(New in 2018)
acceptformat=crx2,crx3
instructs the server to also respond with extensions in the CRX3 format (instead of 204 No Content when the extension is not available as CRX2).If the extension you're using contains OS-specific modules (e.g. NaCl), then you have to add additional parameters (
os
,arch
,nacl_arch
).For the full logic of generating a complete CRX download URL, see the
get_crx_url
function in https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js.This is a part of the Chrome Extension Source Viewer extension, available in the Chrome Web Store: https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin
Note that opening the previous URL in Chrome will not trigger a download because Chrome automatically intercepts responses whose
Content-Type
is set toapplication/x-chrome-extension
. If you want to programatically download the crx file in a Chrome extension, change the MIME-type toapplication/octet-stream
(e.g. as done insrc/lib/crx-to-zip.js
).