4

I have ran into some difficulties in the last week.I have been able to use the following link format to download a crx file using the ID of the extension listed on the chrome store. https://clients2.google.com/service/update2/crx?response=redirect&prodversion=68.0.3440.75&x=id%3D-ID-%26uc

Now any new chrome extension published to the chrome store in recent weeks the above link will not work. It will not download anything. After using fiddler it shows as a 204 code error. This link had worked for over 2 years but not anymore. It only works on extensions that have not been published in recent months.

Can anyone provide a work around?

I have tried the following but the ID in the extension once downloaded is different from the ID in the chrome store listing (I need them to be the same). https://clients2.google.com/service/update2/crx?response=redirect&os=win&arch=x86-64&os_arch=x86-64&nacl_arch=x86-64&prod=chromecrx&prodchannel=unknown&prodversion=83.0.4103.61&acceptformat=crx2,crx3&x=id%3D-ID-%26uc

Tester_Giant1
  • 101
  • 3
  • 5
  • FWIW, see if [crxviewer](https://github.com/Rob--W/crxviewer) does it correctly and use its method. – wOxxOm Jun 02 '20 at 15:04
  • @wOxxOm Yeah I tried this but crxviewer changed the Extension ID and I need it to stay the same. – Tester_Giant1 Jun 04 '20 at 14:59
  • The id is determined by `"key"` in manifest.json so it shouldn't change. I've never seen crxviewer doing that. – wOxxOm Jun 04 '20 at 15:17
  • [Question](/q/7184793 "How to download a CRX file from the Chrome web store for a given ID?") this refers to – cachius Sep 08 '22 at 16:19

2 Answers2

7

The format of the x= parameter the end of the URL has changed slightly.

Here's an example that seems to be working for me (as of Mar 2021):

https://clients2.google.com/service/update2/crx?response=redirect&os=linux&arch=x64&os_arch=x86_64&nacl_arch=x86-64&prod=chromium&prodchannel=unknown&prodversion=91.0.4442.4&lang=en-US&acceptformat=crx2,crx3&x=id%3Dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%26installsource%3Dondemand%26uc

FWIW, trying to urldecode the string to x=id=blahblah&installsource=ondemand&uc, or removing the installsource= or uc parameters, will fail.

i336_
  • 1,813
  • 1
  • 20
  • 41
0

The download works, but the downloaded .crx manifest is without the public key. I am currently hosting an extension in a CEF-based application: --load-extension= works correctly, --load-extension=<path to downloaded .crx> does not*

  • for example, the extension base URL chrome-extension:// will navigate if the loaded extension is from Chrome, and will fail with ERR_BLOCKED_BY_CLIENT if loaded via .crx.
Cristian Amarie
  • 160
  • 1
  • 8