Repository navigation
Size IMDb chart posters for the clients instead of sending the originals - #321
Open
mike-echo-oscar-whiskey wants to merge 1 commit into
Open
mike-echo-oscar-whiskey wants to merge 1 commit into
mike-echo-oscar-whiskey wants to merge 1 commit into
Conversation
IMDb's GraphQL names the full-size poster, 1200 to 1400 pixels wide and between 100 KB and 4 MB each, and the charts handed that URL to the clients as it was, where every other external row gives a client a 342 or 500 pixel TMDB poster. The image host sizes a poster through the transform block before the extension, so the task now stores the 500 pixel variant, about 75 KB. Same change on the Emby port. Titles cached before this keep the original until the next sync, which runs at startup.
mike-echo-oscar-whiskey
force-pushed
the
imdb-poster-size
branch
from
October 13, 2026 04:27
732775a to
d083c53
Compare
Author
|
Closed in favour of a fresh pull request from the same branch with a rewritten commit. |
Contributor
|
No need to close a PR just to re-write a commit |
20 of 33 tasks
12 of 13 tasks
Author
|
Reopened, as there was no need to close it. The branch carries the rewritten commit (d083c53), and the before and after posters are in the Screenshots section now. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Summary
The IMDb chart rows hand clients the poster URL exactly as IMDb's GraphQL names it, which is the full-size original: 1200 to 1400 pixels wide and anywhere from 100 KB to 4 MB per title. Every other external row gives a client a 342 or 500 pixel TMDB poster. A Top 250 row is up to 250 of those originals, and the Tizen and Roku clients put the URL straight into an image tag with no resize.
The image host sizes a poster on request through the transform block before the extension (
._V1_.jpgis the original,._V1_UX500_.jpgthe 500 pixel wide variant), so the sync task now stores the 500 pixel variant. The Top 250 poster that was 4.2 MB at 1383x2048 comes back as 75 KB at 500x740. Width 500 matches the TMDBw500the clients already use for an external poster on the details page.Related Issues
None open. Found while chasing blank IMDb rows on Moonfin for Tizen 2.10.0, which turned out to be the client sending the Amazon URL to image.tmdb.org (fixed on Smart-TV master in 1c31b5ad, after 2.10.0). This change is the server-side half: it does not fix 2.10.0, it keeps the rows from shipping 4 MB posters once the client loads them.
Type of Change
Area
Changes Made
Jellyfin/backend/Services/ImdbListsTask.cs:SizedPosterUrlrewrites the transform block of an IMDb image URL toUX500; a URL without the block (or already transformed) is left as it is. Applied where the chart'sprimaryImage.urlis read.Emby/Emby.Plugins.Moonfin/Services/ImdbChartFetcher.cs: the same, so both ports hand out the same URL.ImdbChartPosterTests).Titles cached before this keep the original URL until the next sync, which runs at startup and daily, so an upgrade fixes itself on the restart that installs it.
Client Impact
Compatibility
Testing
mainat 657db79e, which carries the client fix, sideloaded on a Samsung TV. The IMDb rows show the posters, served as the 500 pixel variants this change stores)Test Steps
dotnet teston both test projects: 478 and 320 passed, including the three new ones; the salvage tool passes.Moonfin.Server.dllon Jellyfin 12.2.0 and restarted. The startup sync fetched all six charts;imdb_lists_cache.jsonholds 1050 poster URLs, all 1050 with_V1_UX500_.GET /Moonfin/CustomRows/Items?source=imdb&type=imdb_top_250_moviesreturns 250 items with the sized URLs; the first three fetch with HTTP 200 at 500x740 and 500x750.Screenshots (if applicable)
The same Top 250 poster as the task stored it before and as it stores it now. Both are the live files on IMDb's image host.
._V1_.jpg, 1200x1800, 334 KB._V1_UX500_.jpg, 500x750, 68 KBBefore: https://m.media-amazon.com/images/M/MV5BMDAyY2FhYjctNDc5OS00MDNlLThiMGUtY2UxYWVkNGY2ZjljXkEyXkFqcGc@._V1_.jpg
After: https://m.media-amazon.com/images/M/MV5BMDAyY2FhYjctNDc5OS00MDNlLThiMGUtY2UxYWVkNGY2ZjljXkEyXkFqcGc@._V1_UX500_.jpg
Checklist