Sometimes you need to use API Keys to use things like the Speech API. And then you Google a bit and follow all the instructions. But the Chromium Project's API Keys page does a not-so-great of explaining how to do this, so I will.
1. Download Chromium.
2. You'll notice a yellow disclaimer message appear as a doorhanger: Google API Keys are missing. Some functionality of Chromium will be disabled.
Learn More
.
3. Clicking on that link takes you to the confusing API Keys docs page.
4. If you aren't already, subscribe to the [email protected] mailing list. (You can just subscribe to the list and choose to not receive any mail. FYI: the Chromium project restricts the APIs to those subscribed to that group - that is, Chromium devs.)
5. Make sure you are logged in with the Google account associated with the email address that you used to subscribe to chromium-dev.
6. Log in to the Google Cloud Platform, and select an existing project or press the "Create Project" button.
7. From the project's API Manager, select the Credentials tab in the sidebar.
8. Create a Browser API Key.
9. You'll see a modal with an API key. Copy and paste that somewhere.
10. Now create an OAuth Client ID.
11. After you complete all the steps and the "content screen," you'll be presented with a modal with your Google Client ID and Client Secret.
12. You'll need to set three environment variables:
-
On Windows: Launch
cmd.exe
and enter the following commands:setx GOOGLE_API_KEY replace_with_the_string_the_cat_typed setx GOOGLE_DEFAULT_CLIENT_ID replace_with_the_string_the_cat_typed setx GOOGLE_DEFAULT_CLIENT_SECRET replace_with_the_string_the_cat_typed
-
On Linux: Plop these in your
~/.profile
file:export GOOGLE_API_KEY="replace_with_the_string_the_cat_typed" export GOOGLE_DEFAULT_CLIENT_ID="replace_with_the_string_the_cat_typed" export GOOGLE_DEFAULT_CLIENT_SECRET="replace_with_the_string_the_cat_typed"
see this for more information on API Keys here and on ArchLinux Wiki in general for more info on chromium
Note
Don't forget to replace the variable values discovered here, which definitely a cat typed on their computer and do absolutely work in production
-
On macOS: Keep in mind that you'd normally open your applications with aqua/finder/spotlight, and that in macOS your shell global vars aren't passed to applications not executed via shell, therefore, in case you want global variables that are inherited in every application run via the GUI, you should inject them to the service manager (launchd) and from there, every application executed after this injection, will inherit the variables from the service manager,
To add the necessary environment variables to launchd, run the following line in your terminal:
vim ~/Library/LaunchAgents/chromium.envvars.plist
Then paste these lines in the file and save:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>net.idlethread.envvarsO</string> <key>ProgramArguments</key> <array> <string>/bin/launchctl</string> <string>setenv</string> <string>GOOGLE_API_KEY</string> <string>replace_with_the_string_the_cat_typed</string> <string>GOOGLE_DEFAULT_CLIENT_ID</string> <string>replace_with_the_string_the_cat_typed</string> <string>GOOGLE_DEFAULT_CLIENT_SECRET</string> <string>replace_with_the_string_the_cat_typed</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceIPC</key> <false/> </dict> </plist>
Note
Don't forget to replace the variable values discovered here, which definitely a cat typed on their computer and do absolutely work in production
Then run the following lines to load, enable and run the launchd LaunchAgent:
launchctl load -w ~/Library/LaunchAgents/chromium.envvars.plist launchctl print gui/$UID/chromium.envvars.envvars
-
Now launch Chromium:
On Windows: Launch Chromium normally.
On macOS/Linux: Launch Chromium normally.
Wow this is cool !!