Wie lade ich eine CRX-Datei für eine bestimmte ID aus dem Chrome Web Store herunter?

81

Ich möchte die CRX-Datei einer Erweiterung aus dem Webstore herunterladen. Ich verwende Fiddler, um die Netzwerkanforderung zu analysieren, wenn ich eine Erweiterung aus dem Webstore installiere und sie erhalte.
Für die Erweiterung: https://chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
lautet der Download-Link beispielsweise:

https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
Jetzt frage ich mich , ob es eine universelle Methode zur get .crx einer Verlängerung ist, ist das Problem , wie Google tat Verschlüsselung

bjclhonkhgkidmlkghlkiffhoikhaajg

in

OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA ?

Jede Idee wird hilfreich sein.

wong2
quelle
2
Soweit wir wissen, können es sich einfach um zwei Zufallszahlen handeln, die irgendwo in einer Datenbank ohne tatsächliche Zuordnung gespeichert sind. Warum möchten Sie das - Sie möchten alle Erweiterungen mechanisch von der Site entfernen?
Rup
1
Sie können auch "Give Me CRX" verwenden, eine Google Chrome-Erweiterung, um die .crx-Quelldatei einer beliebigen Chrome-Erweiterung über den Web Store abzurufen. PS: Ich habe diese Erweiterung erstellt und veröffentlicht. Erweiterungslink: Give Me CRX (eine Chrome-Erweiterung)
iAnuj

Antworten:

30

Für eine meiner Erweiterungen musste ich automatisch andere CRXs herunterladen, wobei ich nur die Erweiterungs-ID kannte. Ich habe dieses Problem gelöst, indem ich die folgende URL geöffnet habe:

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

Diese Seite leitet Sie an diese https://clients2.googleusercontent.com/crx/download/Adresse weiter.

Ich erinnere mich noch nicht, wie ich auf diese URL gekommen bin (sie war entweder irgendwo in der Seitenquelle oder ich habe einen Netzwerk-Sniffer verwendet), aber sie funktioniert seit letztem Dezember hervorragend für mich, daher sieht sie zuverlässig aus.

serg
quelle
1
Oh, Sie sind der Entwickler von "Extension Gallery and Web Store Inspector"? vielen Dank!
Wong2
16
Es scheint, dass Google in letzter Zeit etwas geändert hat und dieser Ansatz nicht mehr funktioniert (er gibt 204 zurück). Hat jemand eine Idee was sich geändert hat? Der Autor von chrome-extension-downloader.com scheint das Problem behoben zu haben, hat die Dokumentation jedoch nicht aktualisiert.
Matthew Gertner
5
Funktioniert nicht mehr. Ich verstehe 204 No Content. Auch nach dem Ersetzen %3Dmit =und %26mit &.
Dan Dascalescu
8
Wenn ich bestätige, dass diese URL nicht mehr funktioniert, bekomme ich 204 No Contentauch. Siehe die Antwort mit der Erwähnung von PRODVERSION, dass man funktioniert.
i336_
1
Hier ist die, die ich für native und nicht native Erweiterungen verwende: 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}%26ucmit {ID}der Erweiterungs-ID.
Damio
110

Die CRX-Datei selbst kann direkt von heruntergeladen werden
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&acceptformat=crx2,crx3&x=id%3D[EXTENSIONID]%26uc

  • [PRODVERSION] ist die Version von Chrome, die mindestens 31.0.1609.0 sein muss , und
  • [EXTENSIONID] ist die ID der Erweiterung

(Neu in 2018) acceptformat=crx2,crx3 weist den Server an, auch mit Erweiterungen im CRX3-Format zu antworten (anstelle von 204 No Content, wenn die Erweiterung nicht als CRX2 verfügbar ist).

Wenn die Erweiterung , die Sie verwenden enthält OS-spezifische Module (zB NaCl), dann müssen Sie zusätzliche Parameter hinzufügen ( os, arch, nacl_arch).

Die vollständige Logik zum Generieren einer vollständigen CRX-Download-URL finden Sie in der get_crx_urlFunktion unter https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js .

Dies ist Teil der Chrome Extension Source Viewer-Erweiterung, die im Chrome Web Store verfügbar ist: https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin


Beachten Sie, dass das Öffnen der vorherigen URL in Chrome keinen Download auslöst, da Chrome automatisch Antworten abfängt, deren Content-TypeEinstellung auf festgelegt ist application/x-chrome-extension. Wenn Sie die crx-Datei in einer Chrome-Erweiterung programmgesteuert herunterladen möchten, ändern Sie den MIME-Typ in application/octet-stream(z. B. wie in src/lib/crx-to-zip.js).

Rob W.
quelle
1
Hinweis: Einige Erweiterungen enthalten NaCl-Module, für die zusätzliche Parameter für Abfragezeichenfolgen erforderlich sind. Die Zusammensetzung der URL finden Sie im Quellcode meiner crxviewer-Erweiterung: github.com/Rob--W/crxviewer/commit/…
Rob W
Chrome hat beim Versuch, diese URL zu öffnen, einen Anfall ausgelöst. Wenn Sie unter Windows arbeiten, öffnen Sie sie im IE, um sie problemlos herunterzuladen.
Craastad
@craastad Da Chrome die Datei als Erweiterung erkennt. Installieren Sie die Chrome Vtension Source Viewer-Erweiterung, um problemlos auf den Quellcode der Erweiterung in Chrome / Opera zugreifen zu können.
Rob W
Gott segne dich, Internet-Fremder. Dies funktioniert zum Zeitpunkt dieses Kommentars. Die ältere URL, die ich hatte, funktionierte nur für einige URLs, aber nicht für alle. Dieser hat es gelöst: D
BBerastegui
Dies kann verwendet werden, um Designs in Microsoft Edge (Chromium) zu installieren, ohne einer Website oder Erweiterung eines Drittanbieters vertrauen zu müssen, um CRX für Sie zu erwerben. Geben Sie einfach die angegebene URL direkt in die Adressleiste ein und Edge erledigt den Rest.
Ashley
54

Es gibt diese Website, um genau das zu tun:

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

John Kentucky
quelle
24
... außer Sie können nie sicher wissen, dass Sie denselben Code von der gewünschten Website herunterladen.
Törzsmókus
5
@ inf3rno woher weißt du das? Nur weil eine heruntergeladene Erweiterung für Sie "funktioniert", kann sie auch Ihre Daten stehlen oder Ihre Kätzchen im Hintergrund töten. Aus diesem Grund sollten Sie nur von Google-Servern herunterladen, es sei denn, Sie können die Integrität der crx-Datei überprüfen (z. B. durch eine Prüfsumme)
törzsmókus
6
@ törzsmókus Ich habe den Code in der crx-Datei überprüft, so weiß ich es. Ofc. Es gibt keine Garantie dafür, dass dieser Downloader immer sicher ist.
inf3rno
2
Ich weiß, dass diese Antwort etwas alt ist, aber während diese Site noch lebt, versucht sie, Skripte von Drittanbietern zu laden. Seien Sie sich bewusst, bevor Sie es verwenden.
Jonathan Walker
7

Ich habe ein kleines Python-Skript geschrieben, um diesen Prozess zu automatisieren, was @serg @Rob W.

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

Sie können das auch verwenden.

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

So müssen Sie verwenden.

arulraj.net
quelle
3

Dies ist eine Low-Tech-Methode, als Fiddler zu verwenden, und mir ist klar, dass dies jetzt drei Jahre alt ist, aber ich schaue immer nach, ob jemand anderes das Problem gelöst hat. Also habe ich jemanden gefunden, der es getan hat, und ich habe seine Lösung nur mehrmals erfolgreich eingesetzt. Ihre Lösung ist eine Erweiterung, die andere Erweiterungen mit dem Namen Give Me CRX herunterladen kann:

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

Bewc
quelle
2

Erstellen Sie ein Lesezeichen und fügen Sie die Javascript-Funktion als Adresse hinzu. Navigieren Sie zu der Chrome-Erweiterung, die Sie herunterladen möchten, und klicken Sie dann auf das Lesezeichen. Der Download sollte beginnen.

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

Vielen Dank

Zalmy
quelle
1
@adardesign Hast du es versucht? Dies funktioniert aus zwei Gründen nicht einmal: 1. Verwenden Sie location.pathnameanstelle von location.href. Wenn die URL enthält ?lang=en, schlägt dieses Snippet fehl. 2. Chrome "startet den Download nicht", fordert Sie jedoch auf, die Erweiterung zu installieren.
Rob W
Sie haben Recht, ich habe nur versucht, diese Frage mit dem folgenden Kern zu beantworten, aber dann habe ich diese Antwort gesehen, bei der die gleiche Idee in ein Lesezeichen geschrieben wurde. Und nein, ich habe es nicht versucht. Siehe 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());
Alf Eaton
1
das funktioniert für michjavascript:(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'); })();
Ziege
2

Außerdem empfehle ich, diese Website http://crxextractor.com auszuprobieren . Hier können Sie eine Erweiterung über die Chrome Webstore-URL herunterladen und den Quellcode im Browser extrahieren, ohne dass zusätzliche Software erforderlich ist, und alles wird mit ein oder zwei Klicks erledigt.

Vladimir Ignatyev
quelle
Chrome blockiert den Download, ohne dass ich die Option habe, die Datei außer der Schaltfläche zum Verwerfen beizubehalten. Wie kann man das umgehen?
Echo
2

Sie können die folgende URL-Vorlage verwenden:

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

Die PRODVERSION ist die Chrome-Version. (Holen Sie es sich über Einstellungen -> Hilfe -> Über Google Chrome). Beispiel: Version 69.0.3497.100(Official Build) (64-Bit)

Die EXTENSIONID ist die ID für die Erweiterung. Beispiel: Hier ist ein Beispiel-Plugin: https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=de die ID lautethmhgeddbohgjknpmjagkdomcpobmllji

Die Beispielanforderung zum Herunterladen lautet also https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc

Prime
quelle
2

Um die Chrome-Erweiterung von einer bestimmten ID herunterzuladen, können Sie sie einfach so verwenden

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

Die obige ist die Download-URL für die Chrome-Erweiterung. Es gibt auch eine Chrome-Erweiterung, mit der Sie die Chrome-Erweiterung als Zip- oder CRX-Datei herunterladen können. https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda

In diesem Github-Repo finden Sie auch den Code, wie es gemacht wird

Ashokkumar
quelle
1
Bitte posten Sie nicht einfach ein Tool oder eine Bibliothek als Antwort. Zeigen Sie zumindest in der Antwort selbst , wie das Problem gelöst wird .
Zoe
0

Keine der manuellen Möglichkeiten in diesem Beitrag funktioniert für mich, daher habe ich nach einer URL gesucht, um die Erweiterung direkt herunterzuladen. Finden Sie dies und funktioniert perfekt für mich.

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

Sie müssen ### EXTENSION_ID ### durch die Erweiterungs-ID aus dem Chrome-Shop ersetzen. Es ist Teil der URL.

Beispiel für eine Google Translate-Erweiterung:

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