SX Google Drive Token Generator
This Python script/app is used to simplify the process of creating an OAuth token file for use with SX Installer homebrew app on the Nintendo Switch. SX Installer v3.00 added authenticated Google Drive support via gdrive:/ paths. Despite this, Xecuter does not appear to have posted any instructions on how to actually make use of the new feature. By poking around in the .nro file, I eventually figured out its usage. This utility should make it quick and easy to create the necessary files to make use of this new feature.
Note: I have not updated this utility in awhile, so it is possible this info is outdated or irrelevant. Whenever I have some free time, I will update the utility/thread.
Python script version
- Python 3.7+
- Python Packages:
Before adding an authenticated Google Drive folder to SX Installer, you will first need to generate your OAuth credentials/token files and transfer them to your Switch Micro SD.
- Download and extract the latest version of the Python script or EXE version from https://github.com/lahma0/SxGDriveTokenGenerator/releases
- Ensure you are logged into the relevant Google Drive account and navigate to https://developers.google.com/drive/api/v3/quickstart/python
- Complete Step 1, clicking the Download Client Configuration button when it appears, and save the credentials.json file to the same directory you extracted the app package to
- Run the Python script or EXE (depending on which you downloaded)
- Follow the prompts in the app cmd/shell window to verify your OAuth credentials (the app will open a browser window to complete this process)
- After the app completes and the cmd/shell window closes, ensure the following 2 files exist:
- From the app directory, copy the switch folder to the root of your Switch Micro SD card
- At the conclusion of this process, you should have the files credentials.json and gdrive.token in the directory /switch/sx on your Switch Micro SD
Adding a Google Drive Folder to SX Installer
After generating your credentials/token files and transferring them to your Micro SD, you will need to add a Google Drive path to SX Installer. You can do this through either the SX Installer UI or by manually adding a path to your SX Installer locations.conf file.
To add a File Browser entry to SX Installer that points to the root of your Google Drive, you simply leave use a blank gdrive path: gdrive:/. If you're adding a File Browser entry via the SX Installer UI, simply leave the Path element empty.
If however you want to add an entry that points to a specific folder in your Google Drive, you first need to get the ID of this folder. Foruntately, this is very easy to do. Simply open https://drive.google.com, navigate to the desired folder, and then look at your browser's address bar. You will see a URL in the format of: https://drive.google.com/drive/folders/XXXXXXXXXXXX. The long string of characters (represented by X's in this example) is your folder's ID.
If you're adding a File Browser entry using the SX Installer UI, insert your folder's ID into the Path element. If you're adding an entry by modifying your locations.conf file, insert your folder's ID following the 'gdrive:/' text such as in this example: gdrive:/XXXXXXXXXXXXX.
Add via SX Installer UI
To create a File Browser entry that points to the root directory of your Google Drive, do the following:
- Open SX Installer
- Scroll down to File Browser and hit (A) button
- Hit (-) button
- Select Protocol, hit (A) button, press down until gdrive is selected, and then hit the (A) button
- Select Title, hit (A) button, type in whatever name you want, and then hit the (+) button
- Hit the (X) button to save the entry
Add via locations.conf
Here are a few examples of a locations.conf file to demonstrate the use of Google Drive paths. The relevant parts will appear in bold font. In the examples below, the enabled variable defines whether you want SX Installer to automatically load/scan the URL at startup. I'm not entirely sure if SX Installer even pays attention to this value on gdrive entries.
Simple entry that points to the root of your Google Drive
Custom 'Display Name' - points to root of your Google Drive
Point to specific Google Drive folder
Note: Substitute the X's with your folder's ID.
Custom values can be provided to the app through the use of a JSON config file. By default, the app will attempt to load config.json from the app directory and if it is not found, a new config file will be generated using default values. A user-defined path to the config file can also be used by providing the config file path as an argument to the app:
Continue below for additional info.python GenerateSxiGdCreds.py "Documents/gsxigdcreds_config.json".
Config File - Key/Values
|"client_secret_json_paths"||["credentials.json", "client_secret*.json"]||All values in this array will be searched in order until a match is found. Paths support wildcards (*) in the filename part of the path (not directory). For example, the default value "client_secret*.json" will match a file named client_secret_XX-XX.apps.googleusercontent.com.json. If multiple wildcard matches are found, the 1st will be used. Windows paths must be separated with double backslashes (\\) or forwardslashes (/).|
|"output_folder_path"||"switch/sx/"||This is where the token and credentials file will be written to. The default path makes it easy to copy the switch folder to the root of your SD. Your client secret JSON is renamed/copied to the output folder as credentials.json. The output token file is named gdrive.token.|
|"scopes"||["https://www.googleapis.com/auth/drive.readonly"]||This value should be not be changed unless you have a good reason to do so. SX Installer uses the readonly scope and does not support writing anyways. Keeping it readonly means your files cannot be modified/deleted if your token is stolen.|
|"output_token_json_name"||"gdrive.token"||The name of the output token file. This should not be changed or SX Installer will not find it.|
|"output_client_secret_json_name"||"credentials.json"||The name of the output/copied client secret file. This should not be changed or SX Installer will not find it.|
- The client secrets JSON file can be named anything but most commonly it will be named one of the following:
- SX Installer requires the following 2 files to be located on the SD at '/switch/sx/' for authenticated Google Drive paths to work:
Last edited by lahma,