如何从Chrome网上应用店下载给定ID的CRX文件?


81

我想从网上商店下载扩展的.crx文件,当我从网上商店安装扩展并获取它时,我使用fiddler分析网络请求。
例如,对于扩展名:https : //chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
,下载链接为:

https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOp​​pHWtQsRU3-iGrrrrA/extension_1_7_11.crx
现在我想知道如果有一个GET的.crx扩展的通用方法,问题是如何做谷歌加密

bjclhonkhgkidmlkghlkiffhoikhaajg

进入

OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA

任何想法都会有所帮助。


2
就我们所知,它们很容易只是存储在数据库中某个地方的两个随机数,而没有实际映射。为什么要这样-您想机械地刮掉站点上的所有扩展?
Rup

1
您还可以使用Google Chrome扩展程序“ Give Me CRX”(Give Me CRX),通过其网上应用店获取任何Chrome扩展程序的源.crx文件。PS:我创建并发布了此扩展程序。扩展程序链接:Give Me CRX(Chrome扩展程序)
iAnuj 2012年

Answers:


30

对于我的扩展程序之一,我不得不仅知道扩展程序ID才能自动下载其他CRX。我通过打开以下URL解决了这个问题:

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

此页面会将您转发到该https://clients2.googleusercontent.com/crx/download/地址。

我不记得我是怎么想到这个URL的(它是在页面源中的某个地方,还是我使用了网络嗅探器),但是自去年12月以来,它对我来说一直很有效,因此看起来很可靠。


1
哦,您是“扩展程序库和Web商店检查器”的开发人员吗?非常感谢!
wong2 2011年

16
看来Google最近做了一些更改,并且这种方法不再有效(返回204)。有人知道有什么变化吗?chrome-extension-downloader.com的作者似乎已对其进行了修复,但尚未更新文档。
Matthew Gertner 2014年

5
不再有效。我懂了204 No Content。即使在替换后%3D=%26&
Dan Dascalescu

8
确认此URL不再有效,我204 No Content也可以。看到提到PRODVERSION的答案,那是可行的。
i336_ '16

1
这里是一个我使用作品原生和非原生扩展:https://clients2.google.com/service/update2/crx?response=redirect&os=linux&arch=x86-64&nacl_arch=x86-64&prod=chromiumcrx&prodchannel=unknown&prodversion=49.0.2623.108&x=id%3D{ID}%26uc{ID}作为扩展ID。
damio '16

111

CRX文件本身可以直接从以下位置下载
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&acceptformat=crx2,crx3&x=id%3D[EXTENSIONID]%26uc

  • [PRODVERSION]是Chrome的版本,至少必须为31.0.1609.0 ,并且
  • [EXTENSIONID]是扩展名

(2018年新增功能) acceptformat=crx2,crx3指示服务器也以CRX3格式的扩展名响应(当扩展名不能作为CRX2使用时代替204 No Content)。

如果您使用的扩展包含OS专用模块(如氯化钠),那么你必须添加额外的参数(osarchnacl_arch)。

有关生成完整CRX下载URL的完整逻辑,请参见https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js中get_crx_url函数

这是Chrome扩展程序源查看器扩展程序的一部分,可在Chrome网上应用店中找到:https : //chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin


请注意,在Chrome中打开上一个URL不会触发下载,因为Chrome会自动拦截Content-Type设置为的响应application/x-chrome-extension。如果您想以编程方式下载Chrome扩展程序中的crx文件,请将MIME类型更改为application/octet-stream(例如,完成src/lib/crx-to-zip.js)。


1
注意:某些扩展包含NaCl模块,这些模块需要其他查询字符串参数。见我crxviewer扩展的源代码的URL的组成:github.com/Rob--W/crxviewer/commit/...
罗布w ^

Chrome浏览器在尝试打开此URL时非常适合,如果您使用的是Windows,则可以在IE中打开它以下载它,而不会出现问题。
craastad 2013年

@craastad因为Chrome将文件识别为扩展名。安装Chrome扩展程序源查看器扩展程序,以轻松访问Chrome / Opera中扩展程序的源代码。
Rob W

上帝保佑你,网络陌生人。在发表评论时,此方法有效。我以前使用的旧网址仅适用于某些网址,但不是全部。这个解决了它:D
BBerastegui

这可用于在Microsoft Edge(Chromium)中安装主题,而无需信任第三方网站或扩展来为您获取CRX。只需将指定的URL直接打入地址栏,然后Edge进行其余操作。
Ashley

54

这个网站就是为了做到这一点:

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


24
...除非您永远无法确定要从他们的网站下载所需的相同代码。
törzsmókus

5
@ inf3rno你怎么知道?仅仅是因为下载的扩展程序可以为您“工作”,它还可能会窃取您的数据或在后台杀死您的小猫。这就是为什么你应该只从谷歌服务器上下载的,除非你可以检查CRX文件的完整性(例如,通过校验)
törzsmókus

6
@törzsmókus我检查了crx文件中的代码,这就是我所知道的。Ofc。不能保证此下载器始终是安全的。
inf3rno

2
我知道这个答案有点老了,但是虽然这个站点还活着-它试图加载第三方脚本。使用前请注意。
乔纳森·沃克



2

创建一个书签,将javascript函数添加为地址。浏览到您要下载的Chrome扩展程序,然后单击书签,它应该开始下载。

javascript:(function(){
    var pathname = location.pathname;pathArray = pathname.split("/");   
    location = ("http://clients2.google.com/service/update2/crx?response=redirect&x=id"+"%" + "3D" + pathArray[pathArray.length -1]+"%" + "26uc%" + "26lang%" + "3Den-US&prod=chrome"); })();

谢谢


1
@adardesign您是否尝试过?由于两个原因,这甚至不起作用:1.使用location.pathname代替location.href。如果网址包含?lang=en,则此代码段将失败。2. Chrome浏览器不会“开始下载”,但会要求您安装扩展程序。
罗布W

没错,我只是想用以下要点回答这个问题,但是后来我看到了这个答案,将相同的想法放入书签中..不,我没有尝试过。参见gist .. gist.github.com/adardesign/c0dff591556b90fefcc5
adardesign 2014年

location.href = 'http://clients2.google.com/service/update2/crx?response=redirect&prodversion=42&x=' + encodeURIComponent('uc&id=' + location.pathname.split('/').pop());
Alf Eaton

1
这对我有用javascript:(function(){ location.href = 'https://clients2.google.com/service/update2/crx?response=redirect&prodversion=38.0&x=' + encodeURIComponent('id=' + location.pathname.split('/').pop() + '%26installsource%3Dondemand%26uc'); })();
山羊


2

您可以使用以下网址模板,

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

PRODVERSION是Chrome版本。(从设置->帮助->关于Google Chrome浏览器获取)。例如:版本69.0.3497.100(正式)(64位)

的extensionID是为扩展名的ID。例如:这是一个示例插件,https ://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji ?hl=zh-CN CNhmhgeddbohgjknpmjagkdomcpobmllji

因此,示例下载请求将为https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc


2

要从给定的ID下载Chrome扩展程序,您可以像这样使用

var currentEXTId = 'bjclhonkhgkidmlkghlkiffhoikhaajg';    
let downloadURL = https://clients2.google.com/service/update2/crx?response=redirect&x=id%3D" + currentEXTId + "%26uc&prodversion=32;

上面的是chrome扩展程序的下载URL。还有一个chrome扩展程序,可以帮助您将chrome扩展程序下载为zip或crx文件。https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda

此外,此Github存储库中提供了有关其完成方式的代码


1
请不要仅仅发布一些工具或库作为答案。至少要在答案本身中证明它是如何解决问题的。
佐伊

0

这篇文章中没有一种手动方式对我有用,因此我搜索了一个URL以直接下载扩展。找到这个,对我来说很完美。

https://clients2.google.com/service/update2/crx?response=redirect&prodversion=49.0&x=id%3D###EXTENSION_ID###%26installsource%3Dondemand%26uc

您必须使用Chrome商店中的扩展程序ID替换### EXTENSION_ID ###。URL的一部分。

Google翻译扩展示例:

https://clients2.google.com/service/update2/crx?response=redirect&prodversion=49.0&x=id%3Daapbdbdomjkkjkaonfhkkikfgjllcleb%26installsource%3Dondemand%26uc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.