Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/calmerism/Tamed/llms.txt

Use this file to discover all available pages before exploring further.

Tamed integrates with several external services to enrich your listening experience. This page documents the preference keys for each integration, how they interact, and where to find the credentials you need. Sensitive values such as tokens and cookies are stored in Android DataStore and never transmitted beyond their intended service.

Scrobbling

ListenBrainz

ListenBrainz is an open-source listening history platform. Enabling scrobbling sends a “listen” event to your ListenBrainz account each time a track plays beyond the scrobble threshold.

Enable Scrobbling

Toggle ListenBrainzEnabledKey (listenbrainz_enabled, Boolean) to start sending listens to your account.

Authentication Token

Paste your personal access token into ListenBrainzTokenKey (listenbrainz_token, String). Obtain it from your profile at listenbrainz.org/profile.
Preference KeyDataStore KeyTypeDefaultDescription
ListenBrainzEnabledKeylistenbrainz_enabledBooleanfalseEnables scrobbling to ListenBrainz.
ListenBrainzTokenKeylistenbrainz_tokenString""Your ListenBrainz user token. The app shows “Set token” until a value is saved.

Last.fm

Last.fm scrobbling has a dedicated settings screen accessible from Settings → Integrations → Last.fm. The keys below are stored by that screen.
Preference KeyDataStore KeyTypeDescription
EnableLastFMScrobblingKeylastfmScrobblingEnableBooleanMaster toggle for Last.fm scrobbling.
LastFMSessionKeylastfmSessionStringLast.fm authenticated session key obtained via OAuth.
LastFMUsernameKeylastfmUsernameStringCached Last.fm username shown in the UI.
Full Last.fm scrobbling configuration — including now-playing updates, scrobble delay percent, and minimum track duration — is documented on the Scrobbling page. This page covers only the keys relevant to the Integrations screen.

Discord Rich Presence

Discord RPC publishes your currently playing track as your Discord activity. The integration has its own dedicated screen reachable from Settings → Integrations → Discord.
Preference KeyDataStore KeyTypeDescription
EnableDiscordRPCKeydiscordRPCEnableBooleanMaster toggle for Discord Rich Presence.
DiscordTokenKeydiscordTokenStringDiscord user token used to authenticate the RPC connection.
DiscordUsernameKeydiscordUsernameStringCached Discord username displayed in the UI.
DiscordNameKeydiscordNameStringCached Discord display name.
Activity customization keys (configured from the Discord settings sub-screen):
Preference KeyDataStore KeyTypeDescription
DiscordActivityNameKeydiscordActivityNameStringCustom activity name overriding the default.
DiscordActivityDetailsKeydiscordActivityDetailsStringActivity details line (typically the track title).
DiscordActivityStateKeydiscordActivityStateStringActivity state line (typically the artist name).
DiscordActivityTypeKeydiscordActivityTypeStringActivity type: PLAYING, STREAMING, LISTENING, WATCHING, or COMPETING.
DiscordPresenceStatusKeydiscordPresenceStatusStringPresence status: ONLINE, IDLE, DND, or INVISIBLE.
DiscordShowWhenPausedKeydiscordShowWhenPausedBooleanKeep the activity visible in Discord when playback is paused.
DiscordActivityButton1EnabledKeydiscordActivityButton1EnabledBooleanShow the first custom activity button.
DiscordActivityButton1LabelKeydiscordActivityButton1LabelStringLabel text for the first button.
DiscordActivityButton1UrlSourceKeydiscordActivityButton1UrlSourceStringURL source type for the first button.
DiscordActivityButton1CustomUrlKeydiscordActivityButton1CustomUrlStringCustom URL for the first button when source is custom.
DiscordActivityButton2EnabledKeydiscordActivityButton2EnabledBooleanShow the second custom activity button.
DiscordActivityButton2LabelKeydiscordActivityButton2LabelStringLabel text for the second button.
DiscordActivityButton2UrlSourceKeydiscordActivityButton2UrlSourceStringURL source type for the second button.
DiscordActivityButton2CustomUrlKeydiscordActivityButton2CustomUrlStringCustom URL for the second button when source is custom.
DiscordLargeImageTypeKeydiscordLargeImageTypeStringLarge image source: thumbnail, artist, appicon, or custom.
DiscordLargeTextSourceKeydiscordLargeTextSourceStringText shown on hover over the large image.
DiscordLargeTextCustomKeydiscordLargeTextCustomStringCustom hover text when DiscordLargeTextSourceKey is custom.
DiscordLargeImageCustomUrlKeydiscordLargeImageCustomUrlStringCustom image URL when DiscordLargeImageTypeKey is custom.
DiscordSmallImageTypeKeydiscordSmallImageTypeStringSmall image source: thumbnail, artist, appicon, or custom.
DiscordSmallImageCustomUrlKeydiscordSmallImageCustomUrlStringCustom image URL when DiscordSmallImageTypeKey is custom.
DiscordActivityPlatformKeydiscordActivityPlatformStringDiscord client platform identifier for the activity.
DiscordPresenceIntervalValueKeydiscordPresenceIntervalValueIntNumeric value for the presence update interval.
DiscordPresenceIntervalUnitKeydiscordPresenceIntervalUnitStringTime unit for the presence interval: S (seconds), M (minutes), H (hours).
DiscordInfoDismissedKeydiscordInfoDismissedBooleanTracks whether the Discord setup info banner has been dismissed.
Using a user token for Discord Rich Presence is against Discord’s Terms of Service. Tamed exposes this feature for personal use only. Proceed at your own risk.

YouTube Music Account

Linking your Google account enables personalized recommendations, syncing of liked songs and playlists, and browsing your library on YouTube Music.
Preference KeyDataStore KeyTypeDescription
AccountNameKeyaccountNameStringDisplay name of the signed-in Google account.
AccountEmailKeyaccountEmailStringEmail address of the signed-in Google account.
AccountChannelHandleKeyaccountChannelHandleStringYouTube channel handle (@handle) for the account.
InnerTubeCookieKeyinnerTubeCookieStringFull cookie header string for authenticated InnerTube requests.
VisitorDataKeyvisitorDataStringYouTube visitor data token used in API requests.
DataSyncIdKeydataSyncIdStringAccount data sync identifier used to correlate library state.
UseLoginForBrowseuseLoginForBrowseBooleanUses the authenticated session for catalog browsing, enabling personalized results.
PoToken is YouTube’s client-integrity token. Providing a valid PoToken allows playback of age-restricted and certain premium-quality streams that would otherwise be blocked.
Preference KeyDataStore KeyTypeDescription
PoTokenKeypoTokenStringPrimary PoToken value.
WebClientPoTokenEnabledKeywebClientPoTokenEnabledBooleanEnable PoToken for the web client request path.
PoTokenGvsKeypoTokenGvsStringPoToken for the GVS (Google Video Server) path.
PoTokenPlayerKeypoTokenPlayerStringPoToken for the player endpoint.
UseVisitorDataKeyuseVisitorDataBooleanInclude visitor data in requests alongside the PoToken.
PoTokenSourceUrlKeypoTokenSourceUrlStringURL of an external PoToken generation service.
Most users do not need to configure PoToken manually. It is auto-fetched by the app when required. Manual configuration is provided for advanced users running self-hosted token generation servers.
Preference KeyDataStore KeyTypeDescription
YtmSyncKeyytmSyncBooleanEnables periodic synchronization of your YouTube Music library (likes, albums, playlists, artists) with Tamed’s local database.
SelectedYtmPlaylistsKeyytm_selected_playlistsStringComma-separated list of YouTube Music playlist IDs to include in sync.

Content Settings

These preferences control what content appears in search results and the library.
Preference KeyDataStore KeyTypeDefaultDescription
HideExplicitKeyhideExplicitBooleanfalseFilters explicit-tagged tracks from search results and recommendations.
HideVideoKeyhideVideoBooleanfalseExcludes video entries from search results, showing audio-only tracks.

Content Language & Region

Preference KeyDataStore KeyTypeDefaultDescription
ContentLanguageKeycontentLanguageString (BCP-47)"SYSTEM_DEFAULT"Language used for YouTube Music catalog metadata (track titles, album names). "SYSTEM_DEFAULT" follows the device locale.
ContentCountryKeycontentCountryString (ISO 3166-1 alpha-2)"SYSTEM_DEFAULT"Country used for YouTube Music catalog regionalization. "SYSTEM_DEFAULT" follows the device locale.
Both keys use the LanguageCodeToName and CountryCodeToName maps defined in PreferenceKeys.kt. Supported countries include JP, KR, US, GB, CN, TW, HK, FR, DE, ES, MX, BR, RU, IT, NL, PL, TR, AU, CA, IN, ID, TH, VN, PH, MY, SG, AR, CL, CO, PE, ZA, EG, SA, AE.

Miscellaneous

Artist Name Separators

Preference KeyDataStore KeyTypeDefaultDescription
ArtistSeparatorsKeyartistSeparatorsString",;/&"Characters Tamed uses to split compound artist name strings into individual artist entries. For example, "Artist A & Artist B" is split into two separate artists.

External Downloader

Preference KeyDataStore KeyTypeDefaultDescription
ExternalDownloaderEnabledKeyexternalDownloaderEnabledBooleanfalseRoutes track downloads through a third-party downloader app.
ExternalDownloaderPackageKeyexternalDownloaderPackageString""Package name of the external downloader (e.g. com.example.downloader).

Build docs developers (and LLMs) love