Як завантажити файл CRX із веб-магазину Chrome для вказаного ідентифікатора?


81

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

https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
Тепер мені цікаво , якщо є універсальний метод прибуде .crx прибудови, проблема полягає в тому , як зробив Google шифрування

bjclhonkhgkidmlkghlkiffhoikhaajg

в

OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA ?

будь-яка ідея буде корисною.


2
Наскільки ми знаємо, вони можуть бути просто двома випадковими числами, що зберігаються десь у базі даних без фактичного відображення. Чому ви цього хочете - ви хочете видалити всі розширення з сайту механічно?
Rup

1
Ви також можете використовувати 'Give Me CRX', розширення Google Chrome для отримання вихідного файлу .crx будь-якого розширення Chrome через його Веб-магазин. PS: Я створив та опублікував це розширення. Посилання на розширення: Give Me CRX (розширення Chrome)
iAnuj,

Відповіді:


30

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


1
О, ви розробник "Галерея розширень та Інспектор веб-магазинів"? дуже дякую!
wong2

16
Здається, Google нещодавно щось змінив, і цей підхід вже не працює (повертається 204). Хтось знає, що змінилося? Автор chrome-extension-downloader.com, здається, це виправив, але не оновив документацію.
Метью Гертнер,

5
Більше не працює. Я розумію 204 No Content. Навіть після заміни %3Dна =і %26з &.
Дан Даскалеску

8
Підтверджуючи, що ця URL-адреса більше не працює, я 204 No Contentтеж отримую . Дивіться відповідь, де згадується PRODVERSION, яка працює.
i336_

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}ідентифікатором розширення.
damio

113

Сам файл 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).

Якщо розширення ви використовуєте містить OS-специфічні модулі (наприклад , 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).


1
Примітка: Деякі розширення містять модулі NaCl, які вимагають додаткових параметрів рядка запиту. Склад URL-адреси див. У вихідному коді мого розширення crxviewer
Роб В,

Chrome намагався відкрити цю URL-адресу, якщо ви перебуваєте у Windows, відкрийте її в IE, щоб завантажити без проблем.
craastad

@craastad Оскільки Chrome розпізнає файл як розширення. Встановіть розширення джерела перегляду розширення Chrome, щоб легко отримати доступ до вихідного коду розширення в Chrome / Opera.
Роб W

Дай Боже, незнайомце в Інтернеті. Це працює під час цього коментаря. Старша URL-адреса, яку я мав, працювала лише для деяких URL-адрес, але не для всіх. Цей вирішив: D
BBerastegui

Це можна використовувати для встановлення тем у Microsoft Edge (Chromium) без необхідності довіряти стороннім веб-сайтам або розширенням для придбання CRX для вас; просто пробийте URL-адресу, як зазначено безпосередньо, у адресний рядок, а Edge зробить все інше.
Ешлі

54

Існує цей веб-сайт, щоб зробити саме це:

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


25
... за винятком того, що ви ніколи не можете точно знати, що ви завантажуєте той самий код із їхнього веб-сайту, який ви хотіли.
törzsmókus

5
@ inf3rno звідки ти знаєш? саме тому, що завантажене розширення «працює» для вас, воно може також викрасти ваші дані або вбити ваших кошенят у фоновому режимі. тому завантажувати слід лише із серверів Google, якщо ви не можете перевірити цілісність файлу crx (наприклад, за допомогою контрольної суми)
törzsmókus

6
@ törzsmókus Я перевірив код у файлі crx, ось як я знаю. Ofc. немає гарантії, що цей завантажувач завжди в безпеці.
inf3rno

2
Я знаю, що ця відповідь трохи стара, але поки цей сайт ще живий - він намагається завантажити сторонні сценарії. Будьте в курсі, перш ніж використовувати його.
Джонатан Уокер

7

Я написав невеликий скрипт на python, щоб автоматизувати цей процес @serg @Rob W

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

Ви також можете цим користуватися.

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

Ось як вам доводиться користуватися.


3

Це більш низькотехнологічний спосіб зробити це, ніж використовувати скрипку, і я усвідомлюю, що зараз три роки, але я завжди шукаю, чи хтось інший вирішив проблему. Тож я знайшов, що хтось це зробив, і я просто кілька разів успішно використовував їх рішення. Їх рішення - розширення, яке може завантажувати інші розширення, яке називається Give Me CRX:

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


3

Крім того, я рекомендую спробувати цей веб-сайт http://crxextractor.com . Тут ви можете завантажити розширення за URL-адресою веб-магазину Chrome та витягти його вихідний код у браузері, не вимагаючи додаткового програмного забезпечення, і все можна виконати за один або два кліки.


Chrome блокує завантаження, не даючи мені можливості зберегти файл, крім кнопки відхилити. Як обійти це?
відлуння

3

Ви можете використовувати наведений нижче шаблон 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=uk ідентифікаторhmhgeddbohgjknpmjagkdomcpobmllji

Тож зразок запиту на завантаження буде https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc


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. Якщо URL-адреса містить ?lang=en, цей фрагмент не вдасться. 2. Chrome не «почне завантажувати», але попросить встановити розширення.
Роб W

Ви маєте рацію, я просто намагався відповісти на це питання наступним суттю, але потім я побачив цю відповідь, де та сама ідея була вкладена в букмарклет .. і ні, я не спробував. Дивіться gist .. gist.github.com/adardesign/c0dff591556b90fefcc5
adardesign

location.href = 'http://clients2.google.com/service/update2/crx?response=redirect&prodversion=42&x=' + encodeURIComponent('uc&id=' + location.pathname.split('/').pop());
Альф Ітон

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

Щоб завантажити розширення chrome із заданого ідентифікатора, ви можете просто скористатися цим

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

Наведений вище - це URL-адреса для завантаження розширення chrome. Існує також розширення 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

Ви повинні замінити ### EXTENSION_ID ### на ідентифікатор розширення з магазину Chrome. Його частина URL-адреси.

Приклад розширення Google Translate:

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

0

Це працює для Microsoft Edge Chromium:

https://edge.microsoft.com/extensionwebstorebase/v1/crx?response=redirect&prod=chromiumcrx&prodchannel=&x=id%3D<EXTENSION_ID_HERE>%26installsource%3Dondemand%26uc 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.