Как загрузить 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
).
Я написал небольшой скрипт 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