crx DL link

  • /*
     * @title crx DL link
     * @description prompt download-link of Chrome Extension aka crx on Chrome Web Store
     * @include https://chrome.google.com/webstore/detail/*
     * @contributor taizooo http://let.hatelabo.jp/taizooo/let/gYC-x-e5r_G0bw (Fork of)
     * @license MIT License https://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    // alternative
    // https://robwu.nl/crxviewer/
    //  https://github.com/Rob--W/crxviewer
    
    // DEPRECATED: TODO fix
    // dev-doc c.f.
    // https://gist.github.com/noromanba/5776183
    
    // e.g.
    // https://chrome.google.com/webstore/detail/privacy-badger/pkehgijcmpdhfbdbbnkijodmdjhbjlgp
    (() => {
      'use strict';
    
      // url syntax of Extension Page;
      // https://chrome.google.com/webstore/detail/[<EXTENSION_NAME>]/<EXTENSION_ID>[/]
      const extid = location.pathname.split('/').filter(s => !!s).pop();
    
      // You can use http, but final url redirect to https
      const link = new URL('https://clients2.google.com/service/update2/crx');
      // URLSearchParams c.f.
      // https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
      link.searchParams.set('response', 'redirect');
      link.searchParams.set('x', 'id=' + extid + '&uc');
      // Chrome/ium ver
      // 32 or higher; e.g. 33, 64, 99, 999 to 2147483647 = 32-bit INT32 MAX c.f.
      //  http://let.hatelabo.jp/noromanba/let/hJmdmMS2rstJ
      // you can use manifest.json style; 70.0.0.0, 9999.9999.9999.9999 c.f.
      //  https://developer.chrome.com/apps/manifest/version
      link.searchParams.set('prodversion', -1 >>> 1);
      // crx2, crx3, ...
      link.searchParams.set('acceptformat', [
        ...Array(10).keys()
      ].map(v => 'crx' + v).join(','));
    
      window.prompt('.crx raw link', link);
    })();
    
    // DEV
    // https://clients2.google.com/service/update2/crx
    // ?response=redirect
    // &prodversion=999
    // &acceptformat=crx2,crx3,crx4
    // &x=id%3Dpkehgijcmpdhfbdbbnkijodmdjhbjlgp%26uc
    //
    // OBSOLETE e.g. `prod=chrome`
    // https://stackoverflow.com/questions/7184793/how-to-download-a-crx-file-from-the-chrome-web-store-for-a-given-id
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2018/12/07 09:22:19 - 2018-12-07
  2. 2018/12/07 08:55:49 - 2018-12-07
  3. 2017/03/02 06:48:21 - 2017-03-02
  4. 2017/03/01 04:48:16 - 2017-03-01
  5. 2017/03/01 04:44:40 - 2017-03-01
  6. 2014/11/06 06:52:07 - 2014-11-06
  7. 2014/11/06 06:37:03 - 2014-11-06
  8. 2014/02/11 05:33:54 - 2014-02-11
  9. 2013/06/14 03:57:23 - 2013-06-14
  10. 2013/06/14 03:56:40 - 2013-06-14
  11. 2013/06/14 02:30:48 - 2013-06-14
  12. 2013/06/14 02:27:14 - 2013-06-14
  13. 2013/06/14 01:27:48 - 2013-06-14
  14. 2013/06/14 00:58:32 - 2013-06-14