IbbyLabs image engine

Current deploymentv2.24.0Latest 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?

If you hit a rendering issue, need help with badges or language, or want a hand wiring this project into your setup, message me on Discord.

@ibbys89If the button does not open, search for @ibbys89 in 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

Adjust parameters once. The config string, live preview, and addon proxy export all reuse this same ERDB setup.

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
Media Target
Type
Media ID
Add TMDB key for lang
Poster Ratings Style
Poster Text
Layouts
Poster Layout
Quality Badges · Poster
Quality Badge Style
Max badges
Position
Poster Providers · drag to reorder

ERDB respects this order when rendering badges. Disabled providers stay available but are skipped.

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.

Output

Preview Output

Stateless dynamic layout generated via query parameters.

PosterBackdropLogo
Add a TMDB key to enable live preview.

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

No tokens needed. Pass parameters in the query string and let ERDB handle metadata and rendering.

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, rogerebert, myanimelist, anilist, kitsu (global fallback)all
posterRatingstmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, rogerebert, myanimelist, anilist, kitsu (poster only)all
backdropRatingstmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, rogerebert, myanimelist, anilist, kitsu (backdrop only)all
logoRatingstmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, rogerebert, myanimelist, anilist, kitsu (logo only)all
langAny TMDB ISO 639-1 code (en, it, fr, es, de, ja, ko, etc.)en
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
qualityBadgesStyleglass, square, plain (global fallback)glass
posterQualityBadgesStyleglass, square, plain (poster only)glass
backdropQualityBadgesStyleglass, square, plain (backdrop only)glass
posterQualityBadgesMax1+auto
backdropQualityBadgesMax1+auto
ratingStyleglass, square, plainglass (poster/backdrop), plain (logo)
imageTextoriginal, clean, alternativeoriginal (poster), clean (backdrop)
posterRatingsLayouttop, bottom, left, right, top bottom, left righttop bottom
posterRatingsMaxPerSide1+auto
backdropRatingsLayoutcenter, right, right verticalcenter
logoRatingsMax1+auto
logoBackgroundtransparent, darktransparent
tmdbKey (req)TMDB v3 API Keynone
mdblistKey (req)MDBList.com API Keynone
Transparent provider icons stay transparent across glass, square, and plain. 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.

Type Configs

TypeConfigLayouts / Values
poster
imageText
posterRatingsLayout
posterQualityBadgesPosition
posterRatingsMaxPerSide
posterQualityBadgesMax
original, clean, alternative
top, bottom, left, right, top bottom, left right
auto, left, right (top or bottom layouts only)
1+ (auto if omitted)
1+ (auto if omitted)
backdrop
imageText
backdropRatingsLayout
backdropQualityBadgesMax
original, clean, alternative
center, right, right vertical
1+ (auto if omitted)
logo
logoRatingsMax
logoBackground
1+ (auto if omitted)
transparent, dark
Direct image URLs support shared fallbacks like ratings, lang, ratingStyle, streamBadges, and qualityBadgesStyle. Generated erdbConfig payloads usually emit the per type fields instead 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

Base Structure

http://localhost:3000/{type}/{id}.jpg?ratings={ratings}&lang={lang}&ratingStyle={style}&imageText={text}&posterRatingsLayout={layout}&posterRatingsMaxPerSide={max}&backdropRatingsLayout={bLayout}&tmdbKey={tmdbKey}&mdblistKey={mdbKey}
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:...).
tmdbKey (required):Your TMDB v3 API Key.
mdblistKey (required):Your MDBList API Key.

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 | none ratings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, rogerebert, myanimelist, anilist, kitsu (global fallback) | all posterRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, rogerebert, myanimelist, anilist, kitsu (poster only) | all backdropRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, rogerebert, myanimelist, anilist, kitsu (backdrop only) | all logoRatings | tmdb, mdblist, imdb, tomatoes, tomatoesaudience, letterboxd, metacritic, metacriticuser, trakt, rogerebert, myanimelist, anilist, kitsu (logo only) | all lang | Any TMDB ISO 639-1 code (en, it, fr, es, de, ja, ko, etc.) | en 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 qualityBadgesStyle | glass, square, plain (global fallback) | glass posterQualityBadgesStyle| glass, square, plain (poster only) | glass backdropQualityBadgesStyle| glass, square, plain (backdrop only) | glass posterQualityBadgesMax | Number (1+) | auto backdropQualityBadgesMax| Number (1+) | auto ratingStyle | glass, square, plain | glass imageText | original, clean, alternative | original posterRatingsLayout | top, bottom, left, right, top bottom, left right | top bottom posterRatingsMaxPerSide | Number (1+) | auto backdropRatingsLayout | center, right, right vertical | center logoRatingsMax | Number (1+) | auto logoBackground | transparent, dark | transparent tmdbKey (REQUIRED) | Your TMDB v3 API Key | none mdblistKey (REQUIRED) | Your MDBList.com API Key | none TMDB NOTE: Always prefer tmdb:movie:id or tmdb:tv:id. Using bare tmdb:id can collide between movie and tv. 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. 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 : ratingStyle = cfg.posterRatingStyle, imageText = cfg.posterImageText backdrop : ratingStyle = cfg.backdropRatingStyle, imageText = cfg.backdropImageText logo : ratingStyle = cfg.logoRatingStyle, logoBackground = cfg.logoBackground (omit imageText) Ratings providers can be set per type via cfg.posterRatings / cfg.backdropRatings / cfg.logoRatings (fallback to cfg.ratings). Provider order is respected. Use cfg.qualityBadgesSide for poster top bottom layouts and cfg.posterQualityBadgesPosition for poster top or bottom layouts. Quality badge style/max can be set per type via cfg.posterQualityBadgesStyle / cfg.backdropQualityBadgesStyle and cfg.posterQualityBadgesMax / cfg.backdropQualityBadgesMax. 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?tmdbKey=${cfg.tmdbKey}&mdblistKey=${cfg.mdblistKey}&ratings=${cfg.ratings}&posterRatings=${cfg.posterRatings}&backdropRatings=${cfg.backdropRatings}&logoRatings=${cfg.logoRatings}&lang=${cfg.lang}&streamBadges=${cfg.streamBadges}&posterStreamBadges=${cfg.posterStreamBadges}&backdropStreamBadges=${cfg.backdropStreamBadges}&qualityBadgesSide=${cfg.qualityBadgesSide}&posterQualityBadgesPosition=${cfg.posterQualityBadgesPosition}&qualityBadgesStyle=${cfg.qualityBadgesStyle}&posterQualityBadgesStyle=${cfg.posterQualityBadgesStyle}&backdropQualityBadgesStyle=${cfg.backdropQualityBadgesStyle}&posterQualityBadgesMax=${cfg.posterQualityBadgesMax}&backdropQualityBadgesMax=${cfg.backdropQualityBadgesMax}&ratingStyle=${typeRatingStyle}&imageText=${typeImageText}&posterRatingsLayout=${cfg.posterRatingsLayout}&posterRatingsMaxPerSide=${cfg.posterRatingsMaxPerSide}&backdropRatingsLayout=${cfg.backdropRatingsLayout}&logoRatingsMax=${cfg.logoRatingsMax}&logoBackground=${cfg.logoBackground} Omit imageText when type=logo. Skip any params that are undefined. Keep empty ratings/posterRatings/backdropRatings/logoRatings to disable providers.

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

What is IbbyLabs Uptime Tracker?

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