¿Cómo descargar un archivo CRX de la tienda web de Chrome para una ID determinada?

81

Me gustaría descargar el archivo .crx de una extensión de la tienda web, uso Fiddler para analizar la solicitud de red cuando instalo una extensión de la tienda web y la obtengo.
Por ejemplo, para la extensión: https://chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg,
el enlace de descarga es:

https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
Ahora me pregunto si hay un método universal para conseguir .crx de una extensión, el problema es cómo lo hizo Google cifrado

bjclhonkhgkidmlkghlkiffhoikhaajg

dentro

OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA ?

cualquier idea será de ayuda.

wong2
fuente
2
Por lo que sabemos, podrían ser fácilmente dos números aleatorios almacenados en una base de datos en algún lugar sin un mapeo real. ¿Por qué quieres esto? ¿Quieres eliminar todas las extensiones del sitio de forma mecánica?
Rup
1
También puede usar 'Give Me CRX', una extensión de Google Chrome para obtener el archivo .crx de origen de cualquier extensión de Chrome a través de su Web Store. PD: Creé y publiqué esta extensión. Enlace de extensión: Give Me CRX (una extensión de Chrome)
iAnuj

Respuestas:

30

Para una de mis extensiones, tuve que descargar otros CRX automáticamente sabiendo solo el ID de extensión. Resolví esto abriendo la siguiente URL:

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

esta página te reenviará a eso https://clients2.googleusercontent.com/crx/download/ dirección.

No recuerdo cómo se me ocurrió esa URL (estaba en la fuente de la página en algún lugar o usé un rastreador de red), pero me ha funcionado muy bien desde diciembre pasado, por lo que parece confiable.

serg
fuente
1
¿Eres el desarrollador de "Extension Gallery e Web Store Inspector"? ¡muchas gracias!
wong2
16
Parece que Google ha cambiado algo recientemente y este enfoque ya no funciona (devuelve 204). Alguien tiene alguna idea de lo que cambió? El autor de chrome-extension-downloader.com parece haberlo solucionado, pero no ha actualizado la documentación.
Matthew Gertner
5
Ya no funciona. Yo entiendo 204 No Content. Incluso después de reemplazar %3Dcon =y %26con &.
Dan Dascalescu
8
Confirmando que esta URL ya no funciona, 204 No Contenttambién obtengo . Vea la respuesta que menciona PRODVERSION, esa funciona.
i336_
1
Aquí es el que yo uso que funciona para extensiones nativas y no nativas: 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}%26uccon {ID}ser el ID de extensión.
Damio
112

El archivo CRX en sí se puede descargar directamente desde
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&acceptformat=crx2,crx3&x=id%3D[EXTENSIONID]%26uc

  • [PRODVERSION] es la versión de Chrome, que debe ser 31.0.1609.0 como mínimo , y
  • [EXTENSIONID] es el ID de la extensión

(Nuevo en 2018) acceptformat=crx2,crx3 indica al servidor que también responda con extensiones en formato CRX3 (en lugar de 204 Sin contenido cuando la extensión no está disponible como CRX2).

Si la extensión que está utilizando contiene módulos SO-específicos (por ejemplo, NaCl), entonces usted tiene que añadir parámetros adicionales ( os, arch,nacl_arch ).

Para conocer la lógica completa de generar una URL de descarga CRX completa, consulte la get_crx_urlfunción en https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js .

Esto es parte de la extensión Visor de fuente de extensión de Chrome, disponible en Chrome Web Store: https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin


Tenga en cuenta que abrir la URL anterior en Chrome no activará una descarga porque Chrome intercepta automáticamente las respuestas que Content-Typeestán configuradas en application/x-chrome-extension. Si desea descargar programáticamente el archivo crx en una extensión de Chrome, cambie el tipo MIME a application/octet-stream(por ejemplo, como se hizo en src/lib/crx-to-zip.js).

Rob W
fuente
1
Nota: Algunas extensiones contienen módulos NaCl, que requieren parámetros de cadena de consulta adicionales. Consulte el código fuente de mi extensión crxviewer para ver la composición de la URL: github.com/Rob--W/crxviewer/commit/…
Rob W
Chrome hizo un ataque al intentar abrir esta URL, si está en Windows, ábralo en IE para descargarlo sin problemas.
craastad
@craastad Porque Chrome reconoce el archivo como una extensión. Instale la extensión del visor de fuente de la extensión de Chrome para acceder fácilmente al código fuente de la extensión en Chrome / Opera.
Rob W
Dios te bendiga, extraño en Internet. Esto funciona en el momento de este comentario. La URL anterior que tenía funcionaba solo para algunas URL, pero no para todas. Este lo resolvió: D
BBerastegui
Esto se puede usar para instalar Temas en Microsoft Edge (Chromium) sin tener que confiar en un sitio web o extensión de terceros para adquirir el CRX por usted; simplemente ingrese la URL como se especifica directamente en la barra de direcciones y Edge hará el resto.
Ashley
54

Existe este sitio web solo para hacer exactamente eso:

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

John Kentucky
fuente
24
... excepto que nunca puede estar seguro de que descarga el mismo código de su sitio que deseaba.
törzsmókus
5
@ inf3rno ¿cómo lo sabes? solo porque una extensión descargada 'funciona' para usted, también podría robar sus datos o matar a sus gatitos en segundo plano. es por eso que solo debe descargar desde los servidores de Google, a menos que pueda verificar la integridad del archivo crx (por ejemplo, mediante una suma de verificación)
törzsmókus
6
@ törzsmókus Revisé el código en el archivo crx, así es como lo sé. De c. no hay garantía de que este descargador sea siempre seguro.
inf3rno
2
Sé que esta respuesta es un poco antigua, pero mientras este sitio todavía está vivo, intenta cargar scripts de terceros. Tenga en cuenta antes de usarlo.
Jonathan Walker
7

Escribí un pequeño script de Python para automatizar ese proceso, lo que @serg @Rob W

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

puedes usar eso también.

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

Así es como tienes que usar.

arulraj.net
fuente
3

Esta es una forma de hacerlo con menos tecnología que usar Fiddler, y me doy cuenta de que ahora tiene tres años, pero siempre miro para ver si alguien más ha resuelto el problema. Entonces encontré que alguien lo hizo, y solo usé su solución varias veces con éxito. Su solución es una extensión que puede descargar otras extensiones, llamada Give Me CRX:

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

Bewc
fuente
2

Crear un marcador agregue la función javascript como dirección. Busque la extensión de Chrome que desea descargar, luego haga clic en el marcador y debería comenzar a descargarse.

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"); })();

Gracias

Zalmy
fuente
1
@adardesign ¿Lo has probado? Esto ni siquiera funciona, por dos razones: 1. Usar en location.pathnamelugar de location.href. Si la URL contiene ?lang=en, este fragmento fallará. 2. Chrome no "comenzará a descargar", pero le pedirá que instale la extensión.
Rob W
Tienes razón, solo estaba tratando de responder esta pregunta con la siguiente esencia, pero luego vi esta respuesta, donde la misma idea se puso en un marcador ... y no, no lo intenté. Ver gist
adardesign
location.href = 'http://clients2.google.com/service/update2/crx?response=redirect&prodversion=42&x=' + encodeURIComponent('uc&id=' + location.pathname.split('/').pop());
Alf Eaton
1
esto funciona para mí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'); })();
cabra
2

Además, recomiendo probar este sitio web http://crxextractor.com . Aquí puede descargar una extensión por su URL de Chrome Webstore y extraer su código fuente en el navegador, no se requiere software adicional y todo se hace con un clic o dos.

Vladimir Ignatyev
fuente
Chrome bloquea la descarga sin darme una opción para mantener el archivo que no sea el botón de descartar. ¿Cómo solucionar esto?
echo
2

Puede utilizar la siguiente plantilla de URL,

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

La PRODVERSION es la versión de Chrome. (obténgalo en la configuración -> Ayuda -> Acerca de Google Chrome). Ejemplo: versión 69.0.3497.100(compilación oficial) (64 bits)

El extensionID es la identificación de la extensión. Ejemplo: aquí hay un complemento de muestra, https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=en la identificación eshmhgeddbohgjknpmjagkdomcpobmllji

Entonces, la solicitud de muestra para descargar será https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc

principal
fuente
2

Para descargar la extensión de Chrome de una identificación determinada, puede usar así

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

La anterior es la URL de descarga de la extensión de Chrome. También hay una extensión de Chrome que podría ayudarlo a descargar la extensión de Chrome como archivo zip o crx. https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda

También el código de cómo se hace está disponible en este repositorio de Github

Ashokkumar
fuente
1
No publique simplemente alguna herramienta o biblioteca como respuesta. Al menos demuestre cómo resuelve el problema en la propia respuesta.
Zoe
0

Ninguna de las formas manuales en esta publicación funciona para mí, así que busqué una URL para descargar la extensión directamente. Encuentra esto y funciona perfecto para mí.

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

Debe reemplazar ### EXTENSION_ID ### con el ID de extensión de Chrome Shop. Es parte de la URL.

Ejemplo de extensión del Traductor de Google:

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