Как загрузить CRX-файл из интернет-магазина Chrome для данного идентификатора?

Я хотел бы загрузить .crx-файл расширения из webstore, я использую fiddler для анализа сетевого запроса, когда я устанавливаю расширение из webstore и получаю его.
Например, для расширения: https://chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
ссылка для скачивания:

https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
Теперь мне интересно, есть ли универсальный метод для get .crx расширения, проблема в том, как Google encryption

bjclhonkhgkidmlkghlkiffhoikhaajg

на

OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA ?

любая идея будет полезна.

9 ответов


для одного из моих расширений мне пришлось автоматически загружать другие CRXs, зная только идентификатор расширения. Я решил это, открыв следующий адрес:

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 (он был либо в источнике страницы, либо я использовал сетевой сниффер), но он отлично работает для меня с декабря прошлого года, поэтому он выглядит надежным.


сам файл 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 (вместо 204 нет содержимого, когда расширение недоступно как CRX2).

если расширение, которое вы используете, содержит модули, специфичные для ОС (например, NaCl), вам нужно добавить дополнительные параметры (os, arch, nacl_arch).

для полной логики создания полного URL-адреса загрузки CRX см. get_crx_url функция в https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js.

это часть расширения Chrome Extension Source Viewer, доступного в интернет-магазине Chrome: https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin


обратите внимание, что открытие предыдущего URL в Chrome будет не вызвать загрузку, потому что Chrome автоматически перехватывает ответы, чьи Content-Type установлено значение application/x-chrome-extension. Если вы хотите программно загрузить файл crx в расширение Chrome, измените тип MIME на application/octet-stream (например, как это сделано в src/lib/crx-to-zip.js).


есть этот сайт, чтобы сделать именно это:

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


Я написал небольшой скрипт python для автоматизации этого процесса, что @serg @Rob W

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

вы также можете использовать это.

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

вот как вы должны использовать.


создать закладку добавьте функцию 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"); })();

спасибо


Это более низкотехнологичный способ сделать это, чем использовать fiddler, и я понимаю, что это уже три года, но я всегда смотрю, чтобы увидеть, если кто-то другой решил проблему. Поэтому я нашел, что кто-то сделал, и я просто использовал их решение несколько раз успешно. Их решение-это расширение, которое может загружать другие расширения, называемые Give Me CRX:

https://chrome.google.com/webstore/detail/give-me-crx/acpimoebmfjpfnbhjgdgiacjfebmmmci


кроме того, я рекомендую попробовать этот сайт http://crxextractor.com. Здесь вы можете скачать расширение по его Chrome Webstore URL и извлечь исходный код в браузере, без дополнительного программного обеспечения, и все делается в один или два клика.


ни один из способов вручную в этом сообщении не работает для меня, поэтому я искал URL-адрес для загрузки расширения напрямую. Найти это и работает идеально для меня.

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

необходимо заменить ## # EXTENSION_ID### идентификатором расширения из магазина chrome. Его часть URL.

Пример Расширения Google Translate:

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

вы можете использовать следующий шаблон URL,

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 - идентификатор расширения. Пример: Вот пример плагина, https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=en идентификатор hmhgeddbohgjknpmjagkdomcpobmllji

поэтому запрос образца для загрузки будет https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc