Skip to content
blurberyPublic

About

Automatic, beautiful collections for Emby, Jellyfin and Silo. Trending, streaming, genres and 65 movie franchises, with posters made from your own library.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

50 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CineSets

Automatic, beautiful collections for Emby, Jellyfin and Silo

CI Latest release Licence: AGPL-3.0-or-later Join the Discord Sponsor blurbery

Setup · Preview · Dashboard tour · How it fits together · Releases · Discord · ♥ Sponsor

I made CineSets because I wanted my server's Collections page to look good without having to look after it. It builds trending, streaming, genre, best of, kids, regional and seasonal collections, plus 114 franchises and studios (89 movie franchises from fixed film lists, 14 more from public lists, 7 studios and directors and 4 TV universes), from what's already in your library. Each one gets a matching poster, they stay in a set order and they update on a schedule.

It only ever touches collections it made itself. Your films, shows, libraries, users and settings are left alone. It talks to your server, public mdblist lists, Wikimedia Commons (for the streaming logos) and, only if a poster has Japanese, Chinese or Korean text, GitHub (once, for the font that draws it), and that's it. No account, no tracking.

Note

Emby is fully supported. Jellyfin and Silo work and are tested on every change, but they're beta until more people have run them. Plex is next.

Quick start

You need Python 3.9 or newer, git and an API key from your server, made by an administrator.

sudo install -d -o "$(id -un)" /opt/cinesets
git clone https://github.com/blurbery/cinesets.git /opt/cinesets
cd /opt/cinesets && ./install.sh

The installer works out whether your server is Emby, Jellyfin or Silo, finds your libraries, asks which collections you want, does a dry run and offers to make them and keep them updated. The setup guide has each server's details, updating and uninstalling.

Prefer Docker? The image ghcr.io/blurbery/cinesets comes ready for amd64 and arm64, with a compose file and an Unraid template: see Docker in the setup guide, which also covers TrueNAS SCALE and Synology.

Commands

Command What it does
./run.sh plan Dry run, shows what would change
./run.sh apply Creates and updates the collections
./run.sh posters Makes the posters only, with preview sheets in data/samples
./run.sh web Opens the dashboard: pick collections, style the posters and choose their artwork
./run.sh pick Asks which sections or collections you want and saves it in config.yml
./run.sh list Lists every section and collection with its key, and what's picked
./run.sh fonts Downloads the Japanese, Chinese and Korean font now, rather than the first time a poster needs it
./run.sh apply --reshuffle Picks new random artwork, or new mosaic tiles, for the posters (with artwork: random or mosaic)
./run.sh adopt --all Takes your collections back after a reinstall
./run.sh remove --only KEY Deletes a collection CineSets made (--unpicked for the ones you unpicked, --all for all of them)
./run.sh forget KEY Stops managing a collection and leaves it on your server as it is (adopt takes it back)

Most of them take --only key1,key2 or --group streaming. ./run.sh --help shows the rest.

Dashboard

./run.sh web starts a web page where you pick collections, change the poster colours, shading, text and font, drag and resize the title and label (for every poster, a whole section or one collection), shuffle or choose each collection's artwork, set how many titles each collection holds, add MDBList lists or make new collections from them, preview every poster, then save and apply. It prints a sign-in link; ./run.sh web --demo tries it with made-up artwork and no server.

It listens on this machine only, needs you signed in and never shows your API key to the browser. The dashboard tour shows each part of it, and the dashboard guide covers signing in, reaching it from another computer (Tailscale, Caddy, nginx) and keeping it running.

Picking collections

The collections come in sections: trending and charts, genres, streaming, best of, kids and family, seasonal, regional, and franchises and studios. Make them all, pick whole sections or pick single collections. Use the dashboard, or ./run.sh pick asks you a section at a time and saves your answer, or edit collections in config.yml:

collections:
  sections: [charts, genres, kids]   # or: all
  include: [m-oscars]                # single collections from other sections
  exclude: [s-trending]              # single collections to leave out

The preview shows every section with its posters and keys. Unpicking a collection doesn't delete it from your server, it just stops updating; ./run.sh remove --unpicked deletes those.

Poster style

Colours, shading, text, the font and where the text sits are settings under posters in config.yml, easiest changed in the dashboard. New installs also give every server its own random artwork from its library, so no two look the same (streaming posters keep their own look). With artwork: mosaic, a poster's background is a grid of the collection's own posters instead (preview). The preview has pictures of every setting.

posters:
  artwork: random    # or fixed, or mosaic: a grid of the collection's own posters
  mosaic: 3x3        # with artwork: mosaic, 3x3 or 2x2
  accent: auto       # each collection's own colour, or one for all: silver, orange, "#ff3366" and more
  shade: medium      # light, medium or dark
  title: gradient    # gradient, solid or white
  font: poppins      # or bebas-neue, cinzel-decorative, creepster and eight more
  align: left        # left or centre
  case: normal       # normal or upper

Every setting, artwork included, works for every poster, a whole section or a single collection (see sections and overrides in config.example.yml). Twelve fonts come with CineSets. Here's each one on a collection it suits; the preview lists them all. Noto Sans comes along too, not as a choice but to draw Greek, Cyrillic and Vietnamese letters the chosen font and Poppins don't have, and Noto Sans CJK, downloaded the first time a poster needs it, draws Japanese, Chinese and Korean.

Every font, each on a collection it suits

Your own collections

The easiest way is the dashboard's Lists tab: paste an MDBList list's address and CineSets makes a collection from it, or adds it to one you have. Those go in custom-collections.yml, which updates never touch.

To change the built-in catalogue itself, copy collections.yml to my-collections.yml (on Docker, put it in ./config), set collections_file: my-collections.yml in config.yml and change whatever you like. The top of the file explains every field. A collection needs at least 8 matches in your library before it's made (fewer for franchises and small lists), so streaming ones like Stan and regional ones like Korean Series only show up if you have enough of their titles.

Examples

From a public mdblist list (swap in a real user/slug):

  - key: m-heist
    group: bestof
    type: movie
    title: "Heist"
    subtitle: "Movies"
    accent: gold
    lists: [some-user/best-heist-movies]

A franchise from a fixed list of films. It needs min because there are only three. The last number on each film is its TMDB id, the one in its themoviedb.org address, so it's found whatever your server calls it. It can be left off: when there's no id, or nothing in your library has it, the title and year are matched instead.

  - key: m-karatekid
    group: universes
    type: movie
    title: "The Karate\nKid"
    accent: red
    min: 2
    titles:
      - ["The Karate Kid", 1984, 1885]
      - ["The Karate Kid Part II", 1986, 8856]
      - ["The Karate Kid Part III", 1989, 10495]

Docs

If CineSets is useful to you, you can sponsor me on GitHub. Thank you.

Contributing

Found a bug or got an idea? Open an issue. PRs are welcome too, just have a read of CONTRIBUTING.md first. Using AI is fine, but say so in the PR.

Got a question, or just want to chat? Come and say hi on Discord.

Caution

Security problems go through SECURITY.md, not public issues.

Licence

AGPL-3.0-or-later with a few extra terms in NOTICE: keep the "CineSets by blurbery" credit, mark your changes if you share a modified version, and the licence doesn't cover the CineSets name or logo. The poster fonts in assets/fonts, Noto Sans included, are under the SIL Open Font License, and so is Noto Sans CJK, which is downloaded to your own server when a poster first needs it rather than shipped. Streaming logos belong to their owners and are downloaded to your own server, not shipped with CineSets.

About

Automatic, beautiful collections for Emby, Jellyfin and Silo. Trending, streaming, genres and 65 movie franchises, with posters made from your own library.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages