Back to home page

YT Localizer step-by-step setup guide

Good news, it's actually quite easy to install and use — you don't have to be an IT professional or be proficient with computers to do it! The first setup usually takes about 10 minutes.
You only complete steps 1–5 once; later launches use the single command in step 6.

01

Download the app and open its folder in Terminal

Open the project on GitHub, choose Code → Download ZIP, extract the ZIP, and find the Vagabondity-YouTube-Localizer folder. It doesn't matter where this folder is located. The app stays in this folder and is not installed like a typical application.

GitHub Code menu with the Download ZIP option

Alternatively, use the button below to download the ZIP directly from GitHub.

Download the latest ZIP
macOS
  1. Open the Terminal app. It's usually found in Utilities folder in your Applications.
  2. Type cd , including the space.
  3. Drag the extracted project folder from Finder into Terminal.
  4. Press Enter.
Windows
  1. Open the extracted folder in File Explorer.
  2. Click the address bar.
  3. Type powershell.
  4. Press Enter.
02

Install uv

What is this uv you want me to install?

Worry not, it is a popular developer tool that installs the exact Python version and packages this app needs, basically helps to make this app portable and easy to install. Millions of developers around the world use it every day. It does not run continuously or use CPU and memory when you are not using it.

Copy the command for your operating system, paste it into Terminal, and press Enter.

macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Close and reopen Terminal after installation. If you use Homebrew, brew install uv is also supported.

03

Create a private settings file

Next commands copy the included sample into a private file where you will add your own provider keys. The private version is ignored by Git.
Alternatively you can just rename settings.example.toml to settings.toml.

macOS and Linux
cp config/settings.example.toml config/settings.toml
Windows PowerShell
Copy-Item config/settings.example.toml config/settings.toml
config
settings.toml Your private settings
04

Create your own YouTube access in Google Cloud

This is the core of the local-first model: the OAuth app belongs only to you! YT Localizer never asks you to sign in to somebody else's Google Cloud project, you stay in control.

  1. 1
    Open Google Cloud Console, create or select a project, and make it active. A name such as YT Localizer is fine.
  2. 2
    Enable YouTube Data API v3 for that project. You can use your email in the fields (it's your own project after all).
  3. 3
    Open Google Auth Platform. If prompted, choose Get started, enter the basic app information, and use an External audience.
  4. 4
    Open Audience → Test users, add the Google account that manages your YouTube channel, and save.
  5. 5
    Open Google Auth Platform → Clients. Create an OAuth client of type Desktop app.
  6. 6
    Download its JSON file, rename it to account_client_secrets_main.json, and place it inside the project's config folder.
config
account_client_secrets_main.json Correct location

While your OAuth app stays in Testing mode, Google normally expires its authorization after seven days. Repeating sign-in with your test-user account restores it.

05

Add at least one translation provider

DeepL is the simplest starting option. Provider plans, free allowances, availability, and billing requirements can change, so check the provider's current terms.

DeepL APIRecommended for the simplest setup
  1. Choose an available API plan on the DeepL API plans page.
  2. Copy the key from DeepL → Account → API Keys & Limits.
  3. Open config/settings.toml in a text editor and replace the placeholder:
settings.toml
[deepl]
api_key = "paste_your_deepl_api_key_here"
Prefer Google Cloud Translation?Show optional setup
  1. Enable Cloud Translation API and billing in the same Google Cloud project.
  2. Create a service account with the Cloud Translation API User role.
  3. For that service account, choose Keys → Add key → Create new key → JSON.
  4. Rename the downloaded file to translate_key.json and place it in config.
06

Start the app

Run this from the project folder. The first launch takes longer while uv downloads Python 3.12 and the exact locked packages.

Terminal
uv run vagabondity-youtube-localizer

Complete Google's authorization once.

Sign in with the account you added under Test users and approve the requested YouTube access. A “Google hasn't verified this app” warning is expected for your personal OAuth app in Testing mode.

If you see Error 403: access_denied, confirm that the selected account is listed under Google Auth Platform → Audience → Test users.

Keep Terminal open, then visit:

http://127.0.0.1:5050

To stop the app, return to Terminal and press Ctrl+C. Your local OAuth token is saved as token.pickle.

07

Test with one video and one language

  1. Open TEST and verify your translation-provider connection.
  2. Confirm the correct provider is selected on the main screen.
  3. Select one public or unlisted video.
  4. Choose one language that has not already been published.
  5. Start localization and follow each result in the progress window.
  6. Confirm the localized title and description in YouTube Studio.
You are ready.

Once the first result looks right, select more videos and languages whenever you want.