Skip to content

Troubleshooting

mpv is not installed or not on PATH

Install mpv, then open a new terminal and retry.

yt-dlp is not installed or not on PATH

Install yt-dlp. mpv uses it to resolve YouTube Music streams.

auth status fails but search works

Search uses unauthenticated YouTube Music access; library playlists and playlist editing require a login (bester-ytm auth login). A browser login that stops working means the saved session has expired — run bester-ytm auth login again.

auth login cannot read my browser

Make sure that browser is actually signed in at https://music.youtube.com. On macOS, a Chromium browser needs you to approve the one-time "Chrome Safe Storage" keychain prompt (click Always Allow); Safari needs your terminal to have Full Disk Access. If nothing works, fall back to bester-ytm auth login --paste and paste a Copy as cURL request, or export a cookies file and use --cookies-file (see Getting Started → Logging in).

Browser login keeps expiring

YouTube rotates account cookies on open YouTube tabs, so a login read from a browser you actively use there can expire sooner. For a longer-lived session, export cookies from a private/incognito window (log in, open https://www.youtube.com/robots.txt, export, close the window) and pass the file to bester-ytm auth login --cookies-file, or dedicate a separate browser profile to YouTube Music that you never open interactively.

Error 403: access_denied during OAuth login

The Google OAuth app is probably still in testing. Add the exact Google account as a test user on the OAuth consent screen, or publish/verify the app.

Terminal display looks corrupted during playback

Restart the app after updating. Playback launches mpv with terminal I/O disabled, so mpv output should not draw over the TUI.

AI builds fail with codex exec failed

The status line shows codex's final error. Most commonly the codex login expired — run codex logout && codex login — or the CLI is not installed, in which case set a different provider in config.toml.