AIOMetadata - Complete Configuration and Operations Guide (2026)
AIOMetadata is a metadata addon layer. It provides metadata, posters, and catalog/search wiring. It is not a stream host.
What AIOMetadata Does (System View)
AIOMetadata unifies metadata for movies, series, and anime into one configurable addon endpoint.
Request lifecycle:
- Stremio requests catalog/search/meta data.
- AIOMetadata chooses provider routes based on your config.
- Catalog/search responses are normalized.
- Art provider and rating-poster logic are applied.
- Result is cached and returned.
Why this matters:
- You tune one metadata/control plane instead of many addons.
- You can keep provider choice explicit per media type.
- You can trade speed, quality, and strictness with clear toggles.
Prerequisites
- Stremio account and at least one signed-in client.
- AIOMetadata configure URL (public instance or self-host endpoint).
- API keys for providers you actually plan to use.
- Optional OAuth sessions (TMDB, Trakt, AniList, Simkl) if you need account-linked catalogs.
Setup Workflow (Recommended)
Safe Setup Sequence
- Open the AIOMetadata configure page.
- Set
Providersfirst (movie/series/anime sources). - Add API keys in
Integrationsand run key validation. - Configure
Art Providersand poster rating provider. - Configure
CatalogsandSearch. - Apply filter/safety toggles (
SFW, unreleased, age rating). - Save configuration and install URL in Stremio.
- Verify with 3 test titles (movie, series, anime).
If metadata appears unchanged after install, verify addon priority and client cache state before changing settings again.
Complete Configure Menu Reference
1) General Settings
These options control global metadata behavior.
language(defaulten-US): preferred metadata language.includeAdult(defaultfalse): allows adult catalogs/items where provider supports it.blurThumbs(defaultfalse): blurs thumbnails for safer browsing.showPrefix(defaultfalse): display source/provider prefixes in output labels.showMetaProviderAttribution(defaultfalse): shows provider attribution text in metadata output.castCount(default10): max cast entries shown.displayAgeRating(defaultfalse): show age-rating metadata badges.ageRating(defaultNone): content age filter baseline.sfw(defaultfalse): safe-for-work mode.hideUnreleasedDigital(defaultfalse): suppress unreleased digital content in catalogs.hideUnreleasedDigitalSearch(defaultfalse): suppress unreleased digital content in search results.showDisabledCatalogs(defaultfalse): expose disabled catalogs in configure view for management.catalogModeOnly(optional): catalog-focused behavior mode for special deployments.timezone: used for time-sensitive catalog behavior.
Operational note:
hideUnreleasedDigitalandhideUnreleasedDigitalSearchreduce false positives and placeholder results in discovery-heavy workflows.
2) Integrations and API Keys
This section controls external API credentials and account sessions.
Supported key fields:
tmdbtvdbfanartrpdbtopPostermdblistgemini
Session/token fields:
sessionId(TMDB auth session)traktTokenIdanilistTokenIdsimklTokenId
Related behavior toggles:
posterRatingProvider:rpdbortopusePosterProxy(defaulttrue)mdblistWatchTracking(defaulttrue)anilistWatchTracking(defaulttrue)simklWatchTracking(defaulttrue)
How TMDB auth works:
- You provide TMDB API key.
- Configure page starts TMDB OAuth flow.
- TMDB returns request token.
- Addon creates/stores session id.
Practical rule:
- Keep only keys you use. Large key sets increase troubleshooting surface.
3) Metadata Providers
Provider mapping is explicit per media family.
Movie provider
Options:
tmdbtvdbimdb
Default:
tmdb
Series provider
Options:
tvdb(recommended by UI)tmdbtvmazeimdb
Default:
tvdb
Anime provider
Options:
kitsu(recommended by UI)maltvdbimdb
Default:
mal
Anime ID provider
Options:
imdb(compatibility-first)kitsumal
Default:
imdb
Provider behavior toggles
forceAnimeForDetectedImdb(defaultfalse): forces anime meta provider after IMDb-detection mapping.tvdbSeasonType(defaultdefault):official,default,dvd,absolute,alternate,regional.
MAL options
skipFiller(defaultfalse)skipRecap(defaultfalse)allowEpisodeMarking(defaultfalse)useImdbIdForCatalogAndSearch(defaultfalse)
If useImdbIdForCatalogAndSearch is enabled, anime-provider choices are constrained in UI to avoid incompatible ID paths.
TMDB options
scrapeImdb(defaultfalse): enriches via IMDb mapping.forceLatinCastNames(defaultfalse): normalize cast naming style.
4) Art Providers
Art routing is independent from metadata routing.
Config families:
artProviders.movieartProviders.seriesartProviders.animeartProviders.englishArtOnly
Each media family can be configured either as:
- Single provider value
- Per-asset object:
posterbackgroundlogo
Movie/series provider options:
metatmdbtvdbfanartimdb
Anime art provider options:
metamalanilisttvdbfanartimdb
Important interaction:
- Rating poster providers (
rpdb/top) can override poster output, so art-provider poster choice is not always final. - Search results may use search-engine poster sources for performance, not full art-provider pipeline.
5) Catalogs
Catalog configuration is one of the largest surfaces in AIOMetadata.
Each catalog entry supports these core fields:
idnametype(movie,series,anime,all)source(tmdb,tvdb,mal,tvmaze,mdblist,trakt,streaming,stremthru,custom,anilist,letterboxd,simkl)enabledshowInHomesourceUrl(for custom/stremthru style sources)displayType(manifest type override)cacheTTLpageSizeenableRatingPostersrandomizePerPage
Optional filter/sort fields:
sortordersortDirectiongenreSelection(standard,anime,all)filter_score_minfilter_score_maxgenres
Metadata payload subfields may include:
itemCount,privacy,author,description- AniList-specific fields (
username,listName,isCustomList) - Trakt-specific fields (
useShowPosterForUpNext,airingSoonDays) - Letterboxd-specific fields (
isWatchlist,identifier,url) - TMDB discover state (
listId,listDescription,discover,discoverParams) - Simkl fields (
interval,pageSize,status)
Built-in catalog groups include:
- TMDB popular/trending/top-rated/by-year/by-language
- TVDB trending/genres/collections
- TVmaze daily schedule
- MAL airing/upcoming/schedule/seasons/top/popular/decade catalogs
- Streaming service catalogs by provider and media type
Catalog-level tuning guidance:
- Use shorter
cacheTTLonly for volatile lists. - Keep high-value catalogs on Home (
showInHome=true), push noisy sets to Discover-only. - Enable per-catalog rating posters only where poster overlays are useful.
6) Search
Search has a global enable flag plus per-engine controls.
Top-level controls:
search.enabledsearch.ai_enabledsearch.searchOrdersearch.searchNamessearch.searchDisplayTypessearch.engineEnabledsearch.engineRatingPosters
Primary provider map:
search.providers.movie:tmdb.search,tvdb.search,trakt.search,mdblist.searchsearch.providers.series:tmdb.search,tvdb.search,tvmaze.search,trakt.search,mdblist.searchsearch.providers.anime_movie:mal.search.movie,kitsu.search.moviesearch.providers.anime_series:mal.search.series,kitsu.search.seriessearch.providers.people_search_movie:tmdb.people.search,tvdb.people.search,trakt.people.searchsearch.providers.people_search_series:tmdb.people.search,tvdb.people.search,trakt.people.search
Additional optional engines:
tvdb.collections.search(requires TVDB key)gemini.search(requires Gemini key and AI toggle)
Search-specific controls that matter in production:
- Per-engine enable switch (
engineEnabled) lets you keep provider mapping but disable execution. - Search catalog drag-and-drop order controls UX priority.
- Custom search name/type helps align Stremio display taxonomy.
7) Poster/Library Extras
enableRatingPostersForLibrary(defaulttrue): keeps rating posters in Continue Watching and Library contexts.showRateMeButton(defaultfalse): adds rate-action entry in meta pages.displayTypeOverrides.movie/displayTypeOverrides.series: global type overrides when required by downstream behavior.
8) Hidden / Internal State Keys (Do Not Tune Blindly)
catalogSetupCompletedeletedCatalogsstreamingsearchEnabled(legacy/top-level companion)
Treat these as migration/state keys unless you are debugging config serialization.
Save, Install, and Priority Behavior
- Save config (UUID/password profile on backend).
- Install generated URL in Stremio.
- Verify catalog/search order in UI.
- If behavior appears stale, restart app client and re-check same title.
Common failure pattern:
- Users change config but do not persist/save the profile, then assume provider logic is broken.
Self-Hosting: Environment Configuration Reference
If you run AIOMetadata yourself, these env groups control behavior.
Core runtime
PORTHOST_NAMENODE_ENVLOG_LEVELTZADDON_LOGO_URLADDON_NAME_SUFFIXCUSTOM_DESCRIPTION_BLURB
Data and cache
DATABASE_URIREDIS_URLCATALOG_TTLMETA_TTLCATALOG_LIST_ITEMS_SIZE
Security and control
ADMIN_KEYADDON_PASSWORDDISABLE_METRICS
Provider/API keys
TMDB_APITVDB_API_KEYFANART_API_KEYRPDB_API_KEYMDBLIST_API_KEYGEMINI_API_KEY
OAuth integrations
TRAKT_CLIENT_IDTRAKT_CLIENT_SECRETTRAKT_REDIRECT_URIANILIST_CLIENT_IDANILIST_CLIENT_SECRETANILIST_REDIRECT_URISIMKL_CLIENT_IDSIMKL_CLIENT_SECRETSIMKL_REDIRECT_URI
Request and provider limits
DISABLE_TRAKT_SEARCHTRAKT_CONCURRENCYTRAKT_MIN_TIMESIMKL_ACTIVITIES_TTL
Global warming and refresh
ENABLE_CACHE_WARMINGCACHE_WARMUP_UUIDSCACHE_WARMUP_UUIDCACHE_WARMUP_MODECATALOG_WARMUP_INTERVAL_HOURSCATALOG_WARMUP_INITIAL_DELAY_SECONDSCATALOG_WARMUP_MAX_PAGES_PER_CATALOGCATALOG_WARMUP_RESUME_ON_RESTARTCATALOG_WARMUP_QUIET_HOURS_ENABLEDCATALOG_WARMUP_QUIET_HOURSCATALOG_WARMUP_TASK_DELAY_MSCATALOG_WARMUP_LOG_LEVELCATALOG_WARMUP_AUTO_ON_VERSION_CHANGETMDB_POPULAR_WARMING_ENABLEDCACHE_WARM_INTERVAL_HOURSCACHE_WARM_LANGUAGECACHE_WARMUP_ON_STARTUP
MAL-specific warming
MAL_WARMUP_ENABLEDMAL_WARMUP_INTERVAL_HOURSMAL_WARMUP_INITIAL_DELAY_SECONDSMAL_WARMUP_TASK_DELAY_MSMAL_WARMUP_QUIET_HOURS_ENABLEDMAL_WARMUP_QUIET_HOURS_RANGEMAL_WARMUP_PRIORITY_PAGESMAL_WARMUP_PRIORITYMAL_WARMUP_SCHEDULEMAL_WARMUP_DECADESMAL_WARMUP_SFWMAL_WARMUP_LOG_LEVEL
Cleanup scheduler
CACHE_CLEANUP_AUTO_ENABLEDCACHE_CLEANUP_QUIET_HOURS_ENABLEDCACHE_CLEANUP_QUIET_HOURS
Proxy and transport
SOCKS_PROXY_URLHTTP_PROXYHTTPS_PROXYTMDB_SOCKS_PROXY_URLMAL_SOCKS_PROXY_URL
Managed deployment override variables
Public/managed deployments can inject built-in provider keys and warmup defaults. Keep these for operators only:
BUILT_IN_TMDB_API_KEY,BUILT_IN_TVDB_API_KEY,BUILT_IN_FANART_API_KEY,BUILT_IN_RPDB_API_KEY,BUILT_IN_MDBLIST_API_KEY,BUILT_IN_GEMINI_API_KEYBUILT_IN_MAL_WARMUP_*family- API validator and rate-limit controls (
RATE_LIMIT_*,API_KEY_VALIDATOR_*)
Practical Presets
Preset A: Balanced (Most Users)
- Movie provider: TMDB
- Series provider: TVDB
- Anime provider: MAL
- Art providers:
metadefault - Search AI: off
hideUnreleasedDigital: on- Catalog TTL: default (24h)
Preset B: Anime-Heavy
- Anime provider: Kitsu or MAL (test both)
- Anime ID provider: Kitsu
- MAL
skipFiller: on - MAL
skipRecap: on - MAL warmup enabled (self-host)
Preset C: Performance-First
- Disable rarely used search engines
- Keep
engineRatingPostersonly on primary engines - Increase TTLs for stable catalogs
- Keep provider count minimal
Reddit-Informed Operational Notes
Recurring community findings (useful for troubleshooting):
- Some users report stale config until save + client restart cycle is completed.
- Catalog order confusion is often just low-priority placement in Stremio UI.
- Wrapping AIOMetadata inside AIOStreams is usually unnecessary; running them separately is simpler for most setups.
- AIOStreams users commonly reduce addon timeouts and rely on dynamic conditions for speed tuning.
Post-Setup Audit Tool
AIOMetadata Configuration Checklist
Run this after changing metadata providers, catalogs, or integrations. The checklist is stored locally in this browser.
Related Guides
- Metadata Explained
- Fix Wrong Posters/Titles
- Language & Regional Settings
- AIOStreams: Complete Setup and Configuration Guide
Sources
- AIOMetadata configure config schema (
AppConfig) - AIOMetadata defaults (
ConfigContext) - AIOMetadata providers settings source
- AIOMetadata art providers settings source
- AIOMetadata integrations settings source
- AIOMetadata search settings source
- AIOMetadata catalogs/search definitions
- AIOMetadata
.env.example - AIOMetadata env docs
- AIOMetadata MAL warmup docs
- Reddit: AIOMetadata not saving settings thread
- Reddit: AIOMetadata + AIOStreams together discussion
- Reddit: AIOStreams UUID/password and config usage discussion
- Reddit: AIOStreams timeout + dynamic condition tuning discussion