Skip to content

mob-sakai/unity-activate

Repository files navigation

unity-activate

A tool to automate the manual activation of unity license using puppeteer.

Inspired by https://github.com/MizoTake/unity-license-activate (@MizoTake).

npm license downloads release semantic-release





Usage as a node module:

npm install unity-activate
const { ActivatorOptions, Activator } = require('unity-activate');

(async () => {
    new Activator({
        file :'input.alf',
        username :'username',
        password :'password',
        authKey :'authenticator_key',
        serial :'serial_code',
        out :'output_dir',
      }).run();
})();





Usage as a command-line utility:

# Installation:
npm install -g unity-activate
Usage:
  $ unity-activate [opts] <*.alf>

Activate Unity activation license file (Unity_v***.alf or Unity_lic.alf)
NOTE: If two-factor authentication is enabled, the verify code will be requested.

Options:
  -o, --out <dir>              Output ulf file to the specified directory (default: .)
  -u, --username <username>    Username (email) to login Unity (default: $UNITY_USERNAME)
  -p, --password <password>    Password to login Unity (default: $UNITY_PASSWORD)
  -k, --key <key>              The authenticator key to login (default: $UNITY_KEY).
  -s, --serial <serial>        Serial key to activate (default: $UNITY_SERIAL). If empty, activate as personal license.
NOTE: Unity Personal Edition is not available to companies or organizations that earned more than USD100,000 in the previous fiscal year.
 
  -d, --debug                  Display additional log and dump content to 'error.html' on error (default: false)
  --headful                    Run "headful" puppeteer (default: false)
  -h, --help                   Display this message 
  -v, --version                Display version number



Step 1: Get a license request file

Create a license activation file and import license file by command.

# On Windows:
$ "C:\Program Files\Unity\Editor\Unity.exe" -batchmode -createManualActivationFile

# On macOS:
$ /Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -createManualActivationFile

Or, with UnityHub (Settings > License Management > MANUAL ACTIVATION > SAVE LICENSE REQUEST).



Step 2: Request a license (*.ulf)

Run unity-activate to download the *.ulf file.

# For personal license (with interaction):
$ unity-activate ***.alf
$   > enter the username and password
$ username: [email protected]
$ password: *****
...

# For personal license:
$ unity-activate --username [email protected] --password your_password ***.alf

# For professional license (with --serial option):
$ unity-activate --username [email protected] --password your_password --serial your_serial_code ***.alf

# Use environment variables instead of options:
$ export [email protected]
$ export UNITY_PASSWORD=your_password
$ export UNITY_SERIAL=your_serial_code # If empty, activate as personal license.
$ unity-activate ***.alf



Step 3: Activate your license

Now that you have your license file, you can activate your Unity account by command.

# On Windows:
$ "C:\Program Files\Unity\Editor\Unity.exe" -batchmode -manualLicenseFile ***.ulf

# On macOS:
$ /Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -manualLicenseFile ***.ulf

Or, with UnityHub.



Option: Activate with authenticator key

Signing in to Unity requires authentication via email or a authenticator app (eg. Google Authenticator). You can use an authenticator key instead of those.

$ unity-activate --username [email protected] --password your_password --key your_authenticator_key ***.alf

How to obtain authenticator key

  • Login to Unity account and activate new two factor authentication.
    Go to https://id.unity.com/en/settings/tfa/new and click Start setup
  • Select Authenticator App and click Next
  • Click Can't scan the barcode?.
    Find and save the authenticator key
  • Verify activation with Google Authenticator. You can also verify using a QR code





Contributing

Issues

Issues are very valuable to this project.

  • Ideas are a valuable source of contributions others can make
  • Problems show where this project is lacking
  • With a question you show where contributors can improve the user experience

Pull Requests

Pull requests are, a great way to get your ideas into this repository.

Support

This is an open source project that I am developing in my spare time.
If you like it, please support me.
With your support, I can spend more time on development. :)





License

  • MIT

Author

See Also