recloudstream / recloudstream/cloudstream

Feature Request: Optional external metadata provider for high-quality posters and banners

Open
#3,087 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Kotlin
Stars
10.7k
Forks
1.1k
Avg merge
1d 23h
Merged PRs (30d)
15

Description

Describe your suggested feature
Summary

Add an optional metadata resolver that can retrieve posters, banners, backgrounds, and additional metadata from external services (such as AniList for anime or TMDB for movies/TV) instead of relying exclusively on the images provided by extensions.

Image
Motivation

Many extensions scrape websites that only expose small thumbnail images (300–500 px). These thumbnails look acceptable in grids but become heavily pixelated when displayed in CloudStream's featured hero carousel.

Since CloudStream simply displays the image URL returned by the extension, the application has no way to improve image quality.

Instead of requiring every extension to provide high-resolution artwork, CloudStream could optionally resolve metadata from dedicated metadata providers.

Proposed Architecture

Extension

title
year
type

Metadata Resolver (optional)

AniList / TMDB / other providers

poster
banner
background
logo
description (optional)
genres (optional)

The extension would still provide the playable content.

CloudStream would only replace (or supplement) the visual metadata.

Benefits
  • High-resolution artwork across all providers.

  • Consistent UI regardless of extension quality.

  • Less work for extension developers.

  • Better-looking featured carousel.

  • Future support for additional assets such as banners, logos, and fanart.

Optional Behavior

This feature should be configurable.

For example:

Metadata source

  • Extension (default)

  • AniList

  • TMDB

  • Automatic

Users who prefer the extension's metadata could keep the current behavior.

Caching

Resolved metadata should be cached locally.

Possible cache key:

title
year
type

or, when available,

provider ID

This would avoid repeated API requests.

Matching

Matching would naturally be the most difficult part.

Possible matching strategy:

  • exact title

  • alternative titles

  • release year

  • media type

  • fuzzy matching as fallback

Since this would only affect artwork, an occasional mismatch would be far less critical than playback errors.

Why this should not be implemented inside extensions

Every extension currently has to solve the same problem independently.

Moving artwork resolution into CloudStream would:

  • reduce duplicated work

  • improve consistency

  • allow future metadata providers without modifying existing extensions

Other details

This is not intended to replace extension metadata.

It would simply be an optional enhancement for users who prefer higher-quality artwork, especially on large displays such as Android TV or tablets, where low-resolution thumbnails become very noticeable.

Acknowledgements
  • My suggestion is NOT about adding a new provider
  • I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by tracing how extensions currently provide artwork and metadata, then review the proposed provider selection, matching, and local caching requirements. Done should include a defined integration design and validation for optional AniList/TMDB resolution without disrupting extension metadata or playback.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
api, mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.