IbbyLabs image engine

Current deploymentv2.42.2Latest releaseChecking

Stunning Ratings.
Stateless API.

Forked by IbbyLabs for the same ecosystem as Uptime Tracker. Generate dynamic posters, backdrops, and logos with a cleaner config to output workflow.

Checking the latest release on GitHub now.

Need help with ERDB, ratings, or the addon proxy?

Join the ERDB communities for help with rendering issues, badges, language settings, or addon setup. The AIOStreams channel is great for shared troubleshooting, and the official ERDB server is the direct project home.

If an invite does not open or has expired, message @ibbys89 on Discord.
Poster, backdrop, and logo output
One config string for every integration
Manifest proxy for Stremio addons

Workspace

Configurator & Proxy

Tune layout, ratings, badges, and language once, then export a shareable config string or generate a proxy manifest from the same state. Saved workspace values stay in this browser until you copy or export them.

Shared workspaceLive previewConfig string exportProxy manifest export

Inputs

Configurator

Pick a setup mode, start from a preset, then tune the same state that powers the preview, config string, and addon proxy.

Setup Mode

Simple View

Simple keeps the high signal controls in front of you. Presets, keys, media targeting, and the most visible artwork switches stay easy to reach.

Guided Setup

Preset Studio

Start from a preset, or answer a few questions and let ERDB recommend one for you. Presets only touch rendering and proxy defaults. Your keys and manifest URL stay intact.

Not sure what to pick?

The guide recommends a preset based on deployment, density, and how much manual tuning you expect to do afterwards.

Wizard Summary
Custom
No preset applied yet

Apply a preset to get a curated starting point, then keep tuning from there.

Workspace

Save the shared ERDB settings plus proxy manifest setup to this browser, or export them as a JSON file.

Saved workspace values only affect this page. Share the config string or the generated proxy manifest if you want the same settings somewhere else.

Access Keys

Optional. Only needed when the ERDB host enables request protection. When present, the configurator carries it into previews, config strings, proxy manifests, and exported URL patterns.

Optional. Recommended. Your key is used first. If left blank, ERDB falls back to the service key when one exists. This helps if the shared service key is rate limited or blocked later.

Media Target
Type
Media ID
Add TMDB key for lang
Quick Tune

Everyday artwork controls

Simple mode keeps the obvious artwork switches here. Advanced mode reveals manual provider ordering, badge sizing, layout offsets, and per source styling.

Presentation
Rating Style
Artwork Text
Poster Size
Artwork Source
Genre Badge
Stream Badges

Output

Preview Output

Stateless dynamic layout generated via query parameters.

PosterBackdropLogo
Add a TMDB key to enable live preview.
Genre Badge Samples

Curated movie, show, animation, and anime renders that keep the badge decision fixed while you compare mode, style, and placement.

Add a TMDB key above to load the curated sample board.

Export

ERDB Config String

Base64url string containing API keys and all settings. Base URL is detected automatically from the current domain.

Use this when another tool expects one ERDB config field. The settings travel inside this string, not inside your saved workspace by itself.

Add TMDB key and MDBList key to generate the config string.

Add TMDB key and MDBList key to generate a valid config string.

AIOMetadata URLs

Ready to paste URL patterns for the AIOMetadata art override fields.

These presets match the live AIOMetadata defaults: poster uses IMDb, background and logo use type aware TMDB IDs, and episode thumbs use IMDb with season and episode placeholders.

Preset mapping

Poster: {imdb_id}

Background: tmdb:{type}:{tmdb_id}

Logo: tmdb:{type}:{tmdb_id}

Episode thumb: {imdb_id}, {season}, {episode}

Proxy

Addon Proxy

Paste a Stremio addon manifest here. The generated ERDB proxy manifest carries the configurator values from this workspace as its ERDB source of truth.

ERDB parameters

Use the configurator for keys, language, ratings, layout, badges, and text.

A plain addon manifest URL will not pick up saved workspace values by itself. Use the generated ERDB proxy manifest below if you want those settings applied to addon artwork.

Export

Generated Manifest

Use this URL in Stremio. It ends with manifest.json and has no query params.

https://erdb.example.com/proxy/{config}/manifest.json
Open

Add manifest URL, TMDB key and MDBList key to generate a valid link.

Rewrite all addon artwork
Proxy rewrites `meta.poster`, `meta.background`, and `meta.logo` for both `catalog` and `meta` responses using the configurator state above.

Developers

Reference surfaces with clearer grouping

The docs area now follows the same section rhythm as the rest of the page, with feature summaries first and the heavier tables and prompt content grouped underneath.

Dynamic Rendering

Stateless by default. Pass parameters in the query string and let ERDB handle metadata and rendering. Protected hosts can also require erdbKey.

Addon Friendly

Perfect for Stremio, Kodi or any media center addon. Use simple URL patterns for easy integration in your code.

API Reference

ParameterValuesDefault
type (path)poster, backdrop, logonone
id (path)IMDb, TMDB, Kitsu, etc.none
ratingstmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (global fallback)all
posterRatingstmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (poster only)all
backdropRatingstmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (backdrop only)all
logoRatingstmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (logo only)all
langAny TMDB ISO 639-1 code (en, it, fr, es, de, ja, ko, etc.)en
genreBadgeoff, text, icon, both (global fallback)off
genreBadgeStyleglass, square, plain (global fallback)glass
genreBadgePositiontopLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight (global fallback)topLeft
streamBadgesauto, on, off (global fallback)auto
posterStreamBadgesauto, on, off (poster only)auto
backdropStreamBadgesauto, on, off (backdrop only)auto
qualityBadgesSideleft, right (poster top bottom layout only)left
posterQualityBadgesPositionauto, left, right (poster top or bottom only)auto
posterQualityBadgescertification, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (poster only, empty string disables all)all
backdropQualityBadgescertification, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (backdrop only, empty string disables all)all
qualityBadgesStyleglass, square, plain, media, silver (global fallback)glass
posterQualityBadgesStyleglass, square, plain, media, silver (poster only)glass
backdropQualityBadgesStyleglass, square, plain, media, silver (backdrop only)glass
posterQualityBadgesMax1+auto
backdropQualityBadgesMax1+auto
providerAppearancebase64url or JSON provider overrides for iconUrl, accentColor, iconScalePercent, stacked width, stacked body opacity, stacked accent mode, stacked line controls, and stacked X/Y offsets for line, logo, and ratingnone
ratingPresentationstandard, minimal, average, dual, dual minimal, editorial, blockbusterstandard
aggregateRatingSourceoverall, critics, audienceoverall
ratingValueModenative, normalized, normalized100native
ratingStyleglass, square, plain, stackedglass (poster/backdrop), plain (logo)
genreBadgeScale70 to 150 (% scale, global fallback)100
posterRatingBadgeScale70 to 150 (% scale)100
backdropRatingBadgeScale70 to 150 (% scale)100
logoRatingBadgeScale70 to 150 (% scale)100
posterQualityBadgeScale70 to 150 (% scale)100
backdropQualityBadgeScale70 to 150 (% scale)100
imageTextoriginal, clean, alternative, randomoriginal (poster), clean (backdrop)
posterImageSizenormal (580x859), large (1280x1896), 4k (2000x2926)normal
posterArtworkSourcetmdb, fanart, cinemeta, random (poster artwork source)tmdb
backdropArtworkSourcetmdb, fanart, cinemeta, random (backdrop artwork source)tmdb
posterRatingsLayouttop, bottom, left, right, top bottom, left righttop bottom
posterRatingsMax1+auto
posterRatingsMaxPerSide1+auto
backdropRatingsLayoutcenter, right, right verticalcenter
backdropRatingsMax1+auto
posterEdgeOffset0 to 80 (poster edge badges only)0
sideRatingsPositiontop, middle, bottom, customtop
sideRatingsOffset0 to 100 (custom only)50
logoRatingsMax1+auto
logoBackgroundtransparent, darktransparent
logoArtworkSourcetmdb, fanart, cinemeta, randomtmdb
erdbKeyERDB request key when the host enables route protectionnone
tmdbKey (req)TMDB v3 API Keynone
mdblistKey (req)MDBList.com API Keynone
fanartKeyFanart API Key for fanart poster, backdrop, and logo sourcesservice fallback when available
simklClientIdSIMKL client_id for direct SIMKL ratingsnone
In the configurator UI, Compact Average maps to minimal, Labeled Average maps to average, Critics + Audience maps to dual, and Compact Critics + Audience maps to dual minimal. Query values remain unchanged.
Genre badges use a small curated family set. Strong buckets such as horror, comedy, drama, sci fi, fantasy, crime, documentary, animation, and anime resolve. Thriller and mystery now map into the crime family for consistent icon output.
Transparent provider icons stay transparent across glass, square, plain, and stacked. In glass, icons with transparency such as Kitsu render on a neutral inner chip with an accent ring so the accent color does not bleed through the icon cutouts.
Media quality badges use local asset based artwork for 4K, Bluray, HDR10, Dolby Vision, and Dolby Atmos. Certification badges include a small AGE label above the rating.
erdbKey is optional. Add it only when the ERDB host protects render or proxy routes with ERDB_REQUEST_API_KEY or ERDB_REQUEST_API_KEYS.
fanartKey is optional. If present, ERDB uses your key first for fanart requests. If it is blank, ERDB falls back to ERDB_FANART_API_KEY or FANART_API_KEY when the server has one.
Poster posterArtworkSource=fanart uses fanart.tv poster art for original, clean, alternative, and random. Original and clean use the top ranked fanart image. Alternative uses the next ranked fanart image when one exists. Random uses a seeded pick. posterArtworkSource=cinemeta uses the official MetaHub Cinemeta poster when ERDB can resolve an IMDb ID, then falls back to TMDB. posterArtworkSource=random picks a seeded random source across TMDB, fanart, and Cinemeta when available.
Backdrop backdropArtworkSource=fanart uses fanart.tv backdrop art for original, clean, alternative, and random. Original and clean use the top ranked fanart image. Alternative uses the next ranked fanart image when one exists. Random uses a seeded pick. backdropArtworkSource=cinemeta uses the official MetaHub Cinemeta backdrop when ERDB can resolve an IMDb ID, then falls back to TMDB. backdropArtworkSource=random picks a seeded random source across TMDB, fanart, and Cinemeta. logoArtworkSource=fanart uses fanart.tv HD or clear logo assets for logo output. logoArtworkSource=cinemeta uses the official MetaHub Cinemeta logo when ERDB can resolve an IMDb ID, then falls back to TMDB. logoArtworkSource=random does a seeded pick across TMDB, fanart, and Cinemeta logos.
Future work: season aware fanart support is a good next step for TV because fanart.tv exposes seasonposter and seasonthumb assets.

Type Configs

TypeConfigLayouts / Values
poster
imageText
posterImageSize
posterArtworkSource
posterRatingPresentation
posterAggregateRatingSource
posterGenreBadge
posterGenreBadgeStyle
posterGenreBadgePosition
posterGenreBadgeScale
posterRatingsLayout
posterRatingsMax
posterEdgeOffset
sideRatingsPosition
sideRatingsOffset
posterQualityBadges
posterQualityBadgesPosition
posterRatingsMaxPerSide
posterQualityBadgesMax
posterRatingBadgeScale
posterQualityBadgeScale
original, clean, alternative, random
normal (580x859), large (1280x1896), 4k (2000x2926)
tmdb, fanart, cinemeta, random
standard, minimal, average, dual, dual minimal, editorial, blockbuster
overall, critics, audience
off, text, icon, both
glass, square, plain
topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight
70 to 150 (% scale)
top, bottom, left, right, top bottom, left right
1+ (auto if omitted)
0 to 80 (edge aligned poster badges)
top, middle, bottom, custom (side layouts only)
0 to 100 (custom only)
certification, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (empty string hides all)
auto, left, right (top or bottom layouts only)
1+ (auto if omitted)
1+ (auto if omitted)
70 to 150 (% scale)
70 to 150 (% scale)
backdrop
imageText
backdropArtworkSource
backdropRatingPresentation
backdropAggregateRatingSource
backdropGenreBadge
backdropGenreBadgeStyle
backdropGenreBadgePosition
backdropGenreBadgeScale
backdropRatingsLayout
backdropRatingsMax
sideRatingsPosition
sideRatingsOffset
backdropQualityBadges
backdropQualityBadgesMax
backdropRatingBadgeScale
backdropQualityBadgeScale
original, clean, alternative, random
tmdb, fanart, cinemeta, random
standard, minimal, average, dual, dual minimal, editorial, blockbuster
overall, critics, audience
off, text, icon, both
glass, square, plain
topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight
70 to 150 (% scale)
center, right, right vertical
1+ (auto if omitted)
top, middle, bottom, custom (right vertical only)
0 to 100 (custom only)
certification, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (empty string hides all)
1+ (auto if omitted)
70 to 150 (% scale)
70 to 150 (% scale)
logo
logoRatingsMax
logoBackground
logoArtworkSource
logoRatingPresentation
logoAggregateRatingSource
logoGenreBadge
logoGenreBadgeStyle
logoGenreBadgePosition
logoGenreBadgeScale
logoRatingBadgeScale
1+ (auto if omitted)
transparent, dark
tmdb, fanart, cinemeta, random
standard, minimal, average, dual, dual minimal, editorial, blockbuster
overall, critics, audience
off, text, icon, both
glass, square, plain
topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight
70 to 150 (% scale)
70 to 150 (% scale)
Direct image URLs support shared fallbacks like ratings, lang, ratingValueMode, genreBadge, genreBadgeStyle, genreBadgePosition, genreBadgeScale, ratingPresentation, aggregateRatingSource, aggregateAccentMode, aggregateAccentColor, aggregateAccentBarOffset, aggregateAccentBarVisible, ratingStyle, streamBadges, qualityBadgesStyle, and providerAppearance. Generated erdbConfig payloads usually emit per type fields instead, including poster/backdrop/logo genre badge overrides, and omit unchanged defaults.

ID Formats

SourceFormatExample
IMDbtt + numberstt0133093
TMDBtmdb:id or tmdb:movie:id or tmdb:tv:idtmdb:movie:603, tmdb:tv:1399
Kitsukitsu:idkitsu:1
Animeprovider:idanilist:123, mal:456, tvdb:12345, anidb:6789

Base Structure

http://localhost:3000/{type}/{id}.jpg?
ratings={ratings}
&lang={lang}
&ratingStyle={style}
&imageText={text}
&posterImageSize={posterImageSize}
&posterRatingsLayout={layout}
&posterRatingsMaxPerSide={max}
&posterEdgeOffset={posterEdgeOffset}
&backdropRatingsLayout={bLayout}
&sideRatingsPosition={sidePos}
&sideRatingsOffset={sideOffset}
&erdbKey={erdbKey}
&tmdbKey={tmdbKey}
&mdblistKey={mdbKey}
&fanartKey={fanartKey}
lang (optional):All TMDB ISO 639-1 codes are supported (en, it, fr, es, de, etc.). Default: en.
id (required):IMDb ID (tt...), TMDB ID (prefer tmdb:movie:id or tmdb:tv:id), or Kitsu ID (kitsu:...).
erdbKey (optional):Only needed when the ERDB host enables route protection.
tmdbKey (required):Your TMDB v3 API Key.
mdblistKey (required):Your MDBList API Key.
fanartKey (optional):Recommended when you use fanart sources. Your key is used first, then ERDB can fall back to the service key when one exists.
providerAppearance:Accepts base64url or raw JSON overrides for iconUrl, accentColor, iconScalePercent, stackedWidthPercent, stackedSurfaceOpacityPercent, stackedAccentMode, stacked line controls, and per element offsets such as stackedLineOffsetY, stackedIconOffsetY, or stackedValueOffsetY.
posterQualityBadges / backdropQualityBadges:Comma separated badge ids such as certification,hdr,remux. Send an empty string if you want no quality badges rendered for that type.

AI Developer Prompt

Copy this prompt to help an AI agent implement this API in your addon.

Act as an expert addon developer. I want to implement the ERDB Stateless API into my media center addon. CONFIG INPUT Add a single text field called "erdbConfig" (base64url). The user will paste it from the ERDB site after configuring there. Do NOT hardcode API keys or base URL. Always use cfg.baseUrl from erdbConfig. DECODE Node/JS: const cfg = JSON.parse(Buffer.from(erdbConfig, 'base64url').toString('utf8')); FULL API REFERENCE Endpoint: GET /{type}/{id}.jpg?...queryParams Parameter | Values | Default type (path) | poster, backdrop, logo | none id (path) | IMDb (tt...), TMDB (tmdb:id / tmdb:movie:id / tmdb:tv:id), Kitsu (kitsu:id), AniList, MAL, TVDB, AniDB | none ratings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (global fallback) | all posterRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (poster only) | all backdropRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (backdrop only) | all logoRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, simkl, rogerebert, myanimelist, anilist, kitsu (logo only) | all lang | Any TMDB ISO 639-1 code (en, it, fr, es, de, ja, ko, etc.) | en genreBadge | off, text, icon, both (global fallback) | off posterGenreBadge | off, text, icon, both (poster only) | off backdropGenreBadge | off, text, icon, both (backdrop only) | off logoGenreBadge | off, text, icon, both (logo only) | off genreBadgeStyle | glass, square, plain (global fallback) | glass posterGenreBadgeStyle | glass, square, plain (poster only) | glass backdropGenreBadgeStyle| glass, square, plain (backdrop only) | glass logoGenreBadgeStyle | glass, square, plain (logo only) | glass genreBadgePosition | topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight (global fallback) | topLeft posterGenreBadgePosition| topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight (poster only) | topLeft backdropGenreBadgePosition| topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight (backdrop only) | topLeft logoGenreBadgePosition | topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight (logo only) | topLeft streamBadges | auto, on, off (global fallback) | auto posterStreamBadges | auto, on, off (poster only) | auto backdropStreamBadges | auto, on, off (backdrop only) | auto qualityBadgesSide | left, right (poster top bottom layout only) | left posterQualityBadgesPosition | auto, left, right (poster top or bottom only) | auto posterQualityBadges | certification, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (poster only, empty string disables all) | all backdropQualityBadges | certification, 4k, bluray, hdr, dolbyvision, dolbyatmos, remux (backdrop only, empty string disables all)| all qualityBadgesStyle | glass, square, plain, media, silver (global fallback) | glass posterQualityBadgesStyle| glass, square, plain, media, silver (poster only) | glass backdropQualityBadgesStyle| glass, square, plain, media, silver (backdrop only) | glass posterQualityBadgesMax | Number (1+) | auto backdropQualityBadgesMax| Number (1+) | auto providerAppearance | base64url or JSON provider overrides for icon, accent, stacked chrome, and stacked element offsets | none ratingPresentation | standard, minimal, average, dual, dual-minimal, editorial, blockbuster | standard aggregateRatingSource | overall, critics, audience | overall aggregateAccentMode | source, genre, custom | source aggregateAccentColor | Hex color (used when aggregateAccentMode=custom) | #a78bfa aggregateAccentBarOffset| Number (-12 to 12, aggregate badges only) | 0 aggregateAccentBarVisible| true, false (aggregate compact/labeled accent line toggle) | true ratingValueMode | native, normalized, normalized100 | native ratingStyle | glass, square, plain, stacked | glass genreBadgeScale | Number (70 to 150) (global fallback) | 100 posterGenreBadgeScale | Number (70 to 150) | 100 backdropGenreBadgeScale | Number (70 to 150) | 100 logoGenreBadgeScale | Number (70 to 150) | 100 posterRatingBadgeScale | Number (70 to 150) | 100 backdropRatingBadgeScale| Number (70 to 150) | 100 logoRatingBadgeScale | Number (70 to 150) | 100 posterQualityBadgeScale| Number (70 to 150) | 100 backdropQualityBadgeScale| Number (70 to 150) | 100 imageText | original, clean, alternative, random | original posterImageSize | normal (580x859), large (1280x1896), 4k (2000x2926) | normal posterArtworkSource | tmdb, fanart, cinemeta, random (poster artwork source) | tmdb backdropArtworkSource | tmdb, fanart, cinemeta, random (backdrop artwork source) | tmdb posterRatingsLayout | top, bottom, left, right, top bottom, left right | top bottom posterRatingsMax | Number (1+) | auto posterRatingsMaxPerSide | Number (1+) | auto posterEdgeOffset | Number (0 to 80, poster edge badges only) | 0 backdropRatingsLayout | center, right, right vertical | center backdropRatingsMax | Number (1+) | auto sideRatingsPosition | top, middle, bottom, custom | top sideRatingsOffset | Number (0 to 100, custom only) | 50 logoRatingsMax | Number (1+) | auto logoBackground | transparent, dark | transparent logoArtworkSource | tmdb, fanart, cinemeta, random | tmdb erdbKey | ERDB request key when the host enables route protection | none tmdbKey (REQUIRED) | Your TMDB v3 API Key | none mdblistKey (REQUIRED) | Your MDBList.com API Key | none fanartKey | Your Fanart API Key (used first for fanart sources) | service fallback when available simklClientId | Your SIMKL client_id for direct SIMKL ratings | none TMDB NOTE: Always prefer tmdb:movie:id or tmdb:tv:id. Using bare tmdb:id can collide between movie and tv. ACCESS NOTE: erdbKey is optional and only needed when the ERDB host protects render and proxy routes with ERDB_REQUEST_API_KEY or ERDB_REQUEST_API_KEYS. STYLE NOTE: Transparent provider icons stay transparent in every style. In glass, icons with transparency such as Kitsu render on a neutral inner chip with an accent ring to avoid accent color bleed through. QUALITY NOTE: Media quality badges use local asset based artwork for 4K, Bluray, HDR10, Dolby Vision, and Dolby Atmos. Certification badges include a small AGE label above the rating. FANART NOTE: fanartKey is optional. If present, ERDB uses your key first for fanart poster, backdrop, and logo requests. If fanartKey is blank, ERDB falls back to ERDB_FANART_API_KEY or FANART_API_KEY when the server has one. POSTER NOTE: posterArtworkSource=fanart uses fanart.tv poster art for original, clean, and alternative poster modes when a fanart key is available. Original and clean use the top ranked fanart image. Alternative uses the next ranked fanart image when one exists. posterArtworkSource=cinemeta uses the official MetaHub Cinemeta poster when ERDB can resolve an IMDb ID, then falls back to TMDB. POSTER SIZE NOTE: posterImageSize controls the poster output target. normal=580x859, large=1280x1896, 4k=2000x2926. BACKDROP NOTE: backdropArtworkSource=fanart uses fanart.tv moviebackground or showbackground art for original, clean, and alternative backdrop modes when a fanart key is available. Original and clean use the top ranked fanart image. Alternative uses the next ranked fanart image when one exists. backdropArtworkSource=cinemeta uses the official MetaHub Cinemeta backdrop when ERDB can resolve an IMDb ID, then falls back to TMDB. LOGO NOTE: logoArtworkSource=fanart uses fanart.tv HD or clear logo assets when a fanart key is available. logoArtworkSource=cinemeta uses the official MetaHub Cinemeta logo when ERDB can resolve an IMDb ID, then falls back to TMDB. FUTURE NOTE: season aware fanart support is a strong next step for TV because fanart.tv exposes seasonposter and seasonthumb assets. INTEGRATION REQUIREMENTS 1. Use ONLY the "erdbConfig" field (no modal and no extra settings panels). 2. Add toggles to enable or disable poster, backdrop, and logo. 3. If a type is disabled, keep the original artwork (do not call ERDB for that type). 4. Build ERDB URLs using the decoded config and inject them into both catalog and meta responses. PER TYPE SETTINGS poster : posterImageSize = cfg.posterImageSize (normal, large, 4k) poster : ratingStyle = cfg.posterRatingStyle, imageText = cfg.posterImageText backdrop : ratingStyle = cfg.backdropRatingStyle, imageText = cfg.backdropImageText logo : ratingStyle = cfg.logoRatingStyle, logoBackground = cfg.logoBackground all : genreBadge = cfg.genreBadge, genreBadgeStyle = cfg.genreBadgeStyle, genreBadgePosition = cfg.genreBadgePosition, genreBadgeScale = cfg.genreBadgeScale (optional global fallbacks) poster : genreBadge = cfg.posterGenreBadge, genreBadgeStyle = cfg.posterGenreBadgeStyle, genreBadgePosition = cfg.posterGenreBadgePosition, genreBadgeScale = cfg.posterGenreBadgeScale backdrop : genreBadge = cfg.backdropGenreBadge, genreBadgeStyle = cfg.backdropGenreBadgeStyle, genreBadgePosition = cfg.backdropGenreBadgePosition, genreBadgeScale = cfg.backdropGenreBadgeScale logo : genreBadge = cfg.logoGenreBadge, genreBadgeStyle = cfg.logoGenreBadgeStyle, genreBadgePosition = cfg.logoGenreBadgePosition, genreBadgeScale = cfg.logoGenreBadgeScale poster artwork source : use cfg.posterArtworkSource for poster original, clean, or alternative backdrop artwork source : use cfg.backdropArtworkSource for backdrop original, clean, or alternative logo artwork source : use cfg.logoArtworkSource when rendering logo output Ratings providers can be set per type via cfg.posterRatings / cfg.backdropRatings / cfg.logoRatings (fallback to cfg.ratings). Provider order is respected. Use cfg.ratingValueMode to keep provider native scales or normalize everything to ten point or rounded hundred point values. Rating presentation can be set per type via cfg.posterRatingPresentation / cfg.backdropRatingPresentation / cfg.logoRatingPresentation (fallback to cfg.ratingPresentation). Aggregate source can be set per type via cfg.posterAggregateRatingSource / cfg.backdropAggregateRatingSource / cfg.logoAggregateRatingSource (fallback to cfg.aggregateRatingSource). Use cfg.aggregateAccentMode to keep source colours, match the genre badge, or force a custom aggregate accent through cfg.aggregateAccentColor. Use cfg.aggregateAccentBarOffset to nudge the aggregate badge accent bar up or down a few pixels in compact, compact dual, labeled, and dual aggregate layouts. Use cfg.aggregateAccentBarVisible=false to hide the compact or labeled aggregate accent line entirely. Editorial presentation gives posters a fixed top left print style and falls back to the labeled average badge on backdrop and logo output. Use cfg.posterEdgeOffset to push poster side rating stacks, side quality columns, and corner genre badges inward from the poster edges. Use cfg.qualityBadgesSide for poster top bottom layouts and cfg.posterQualityBadgesPosition for poster top or bottom layouts. Quality badge visibility/style/max can be set per type via cfg.posterQualityBadges / cfg.backdropQualityBadges / cfg.logoQualityBadges, cfg.posterQualityBadgesStyle / cfg.backdropQualityBadgesStyle / cfg.logoQualityBadgesStyle, and cfg.posterQualityBadgesMax / cfg.backdropQualityBadgesMax / cfg.logoQualityBadgesMax. Rating badge max and badge scale can be set per type via cfg.posterRatingsMax / cfg.backdropRatingsMax / cfg.logoRatingsMax plus cfg.posterRatingBadgeScale / cfg.backdropRatingBadgeScale / cfg.logoRatingBadgeScale. Genre badge mode/style/position/scale can be set per type via cfg.posterGenreBadge* / cfg.backdropGenreBadge* / cfg.logoGenreBadge* and fall back to the shared cfg.genreBadge* fields. Quality badge scale can be set per type via cfg.posterQualityBadgeScale / cfg.backdropQualityBadgeScale / cfg.logoQualityBadgeScale. Provider icon overrides can be shared through cfg.providerAppearance. Send base64url or raw JSON shaped like {"trakt":{"iconUrl":"https://...","accentColor":"#7c3aed","iconScalePercent":116,"stackedWidthPercent":88,"stackedSurfaceOpacityPercent":72,"stackedAccentMode":"logo","stackedLineVisible":false,"stackedLineWidthPercent":88,"stackedIconOffsetY":-6,"stackedValueOffsetY":4}}. Use cfg.sideRatingsPosition for poster side layouts and backdrop right vertical stacks. If cfg.sideRatingsPosition=custom, send cfg.sideRatingsOffset as a 0 to 100 vertical anchor. URL BUILD const typeRatingStyle = type === 'poster' ? cfg.posterRatingStyle : type === 'backdrop' ? cfg.backdropRatingStyle : cfg.logoRatingStyle; const typeImageText = type === 'backdrop' ? cfg.backdropImageText : cfg.posterImageText; ${cfg.baseUrl}/${type}/${id}.jpg?erdbKey=${cfg.erdbKey}&tmdbKey=${cfg.tmdbKey}&mdblistKey=${cfg.mdblistKey}&fanartKey=${cfg.fanartKey}&ratings=${cfg.ratings}&posterRatings=${cfg.posterRatings}&backdropRatings=${cfg.backdropRatings}&logoRatings=${cfg.logoRatings}&lang=${cfg.lang}&ratingValueMode=${cfg.ratingValueMode}&genreBadge=${cfg.genreBadge}&genreBadgeStyle=${cfg.genreBadgeStyle}&genreBadgePosition=${cfg.genreBadgePosition}&genreBadgeScale=${cfg.genreBadgeScale}&posterGenreBadge=${cfg.posterGenreBadge}&backdropGenreBadge=${cfg.backdropGenreBadge}&logoGenreBadge=${cfg.logoGenreBadge}&posterGenreBadgeStyle=${cfg.posterGenreBadgeStyle}&backdropGenreBadgeStyle=${cfg.backdropGenreBadgeStyle}&logoGenreBadgeStyle=${cfg.logoGenreBadgeStyle}&posterGenreBadgePosition=${cfg.posterGenreBadgePosition}&backdropGenreBadgePosition=${cfg.backdropGenreBadgePosition}&logoGenreBadgePosition=${cfg.logoGenreBadgePosition}&posterGenreBadgeScale=${cfg.posterGenreBadgeScale}&backdropGenreBadgeScale=${cfg.backdropGenreBadgeScale}&logoGenreBadgeScale=${cfg.logoGenreBadgeScale}&streamBadges=${cfg.streamBadges}&posterStreamBadges=${cfg.posterStreamBadges}&backdropStreamBadges=${cfg.backdropStreamBadges}&qualityBadgesSide=${cfg.qualityBadgesSide}&posterQualityBadgesPosition=${cfg.posterQualityBadgesPosition}&posterQualityBadges=${cfg.posterQualityBadges}&backdropQualityBadges=${cfg.backdropQualityBadges}&logoQualityBadges=${cfg.logoQualityBadges}&qualityBadgesStyle=${cfg.qualityBadgesStyle}&posterQualityBadgesStyle=${cfg.posterQualityBadgesStyle}&backdropQualityBadgesStyle=${cfg.backdropQualityBadgesStyle}&logoQualityBadgesStyle=${cfg.logoQualityBadgesStyle}&posterQualityBadgesMax=${cfg.posterQualityBadgesMax}&backdropQualityBadgesMax=${cfg.backdropQualityBadgesMax}&logoQualityBadgesMax=${cfg.logoQualityBadgesMax}&providerAppearance=${cfg.providerAppearance}&ratingPresentation=${cfg.ratingPresentation}&aggregateRatingSource=${cfg.aggregateRatingSource}&aggregateAccentMode=${cfg.aggregateAccentMode}&aggregateAccentColor=${cfg.aggregateAccentColor}&aggregateAccentBarOffset=${cfg.aggregateAccentBarOffset}&aggregateAccentBarVisible=${cfg.aggregateAccentBarVisible}&ratingStyle=${typeRatingStyle}&posterRatingBadgeScale=${cfg.posterRatingBadgeScale}&backdropRatingBadgeScale=${cfg.backdropRatingBadgeScale}&logoRatingBadgeScale=${cfg.logoRatingBadgeScale}&posterQualityBadgeScale=${cfg.posterQualityBadgeScale}&backdropQualityBadgeScale=${cfg.backdropQualityBadgeScale}&logoQualityBadgeScale=${cfg.logoQualityBadgeScale}&imageText=${typeImageText}&posterImageSize=${cfg.posterImageSize}&posterArtworkSource=${cfg.posterArtworkSource}&backdropArtworkSource=${cfg.backdropArtworkSource}&posterRatingsLayout=${cfg.posterRatingsLayout}&posterRatingsMax=${cfg.posterRatingsMax}&posterRatingsMaxPerSide=${cfg.posterRatingsMaxPerSide}&posterEdgeOffset=${cfg.posterEdgeOffset}&backdropRatingsLayout=${cfg.backdropRatingsLayout}&backdropRatingsMax=${cfg.backdropRatingsMax}&sideRatingsPosition=${cfg.sideRatingsPosition}&sideRatingsOffset=${cfg.sideRatingsOffset}&logoRatingsMax=${cfg.logoRatingsMax}&logoBackground=${cfg.logoBackground}&logoArtworkSource=${cfg.logoArtworkSource} Omit imageText when type=logo. Skip any params that are undefined. Keep empty ratings/posterRatings/backdropRatings/logoRatings to disable rating providers. Keep empty posterQualityBadges/backdropQualityBadges/logoQualityBadges to hide all quality badges.

Live Examples

Movie Poster (IMDb)
http://localhost:3000/poster/tt0133093.jpg?ratings=imdb,tmdb&ratingStyle=plain
Backdrop (TMDB)
http://localhost:3000/backdrop/tmdb:movie:603.jpg?ratings=mdblist&backdropRatingsLayout=right%20vertical&sideRatingsPosition=middle

What is IbbyLabs Uptime Tracker?

It is the IbbyLabs public status board for popular Stremio addons, including current health and incident updates.