promotional bannermobile promotional banner

PixelReel

Turn Minecraft into your own cinema with playable movies, shows, and live tv

pixelReel

Fabric mod for Minecraft Java Edition 1.21.1 that lets you place televisions and cinema screens in your world and watch live TV and on-demand media together with friends.

Live channels come from a Tunarr (or any M3U + XMLTV) playlist. Movies and shows can come from Jellyfin, Emby, or Plex. Each display keeps its own channel or title, multiple screens can play at once, and audio is positional.

This branch targets the stable 1.21.1 Fabric toolchain. For the newer snapshot build, see the 26.3-snapshot-5 branch / release.

Requirements

Requirement Notes
Java 21+ Required by Minecraft 1.21.1 / this toolchain.
Minecraft 1.21.1 Built against this release specifically.
Fabric Loader >=0.19.3 Pinned in gradle.properties.
Fabric API Use 0.116.15+1.21.1 (or the matching build in gradle.properties).
VLC (64-bit) Needed on each client for video/audio. Install from videolan.org.

Without VLC, menus, guide, commands, and multiplayer sync still work, but screens show a “video player unavailable” state instead of video.

If VLC is installed in a non-standard location, launch the game with:

-Dpixelreel.vlc.path=C:\Path\To\VLC

The mod runs on clients and servers (environment: *). For multiplayer, both sides need the mod. VLC is only required on clients.

Configuration

Created on first launch at config/pixelreel.json.

Tunarr (Live TV / M3U / XMLTV)

Key Default Meaning
m3uUrl "" Tunarr base URL or full M3U URL. A base like http://1.1.1.1:8000 expands to /api/channels.m3u.
xmltvUrl "" XMLTV guide URL. Auto-filled from a Tunarr base as /api/xmltv.xml when empty.

Tunarr Config

Jellyfin

Tip: create a dedicated Jellyfin user with access only to Movies and TV Shows, or Anime, then use that user’s API key here. It’s simpler and safer than pointing the mod at your admin account.

Key Default Meaning
jellyfinUrl "" Server URL (often port 8096).
jellyfinApiKey "" API key.
jellyfinUserId "" Optional user id.
jellyfinMoviesEnabled true Show movies.
jellyfinTvShowsEnabled true Show TV series.

Emby

Tip: create a dedicated Emby user with access only to Movies and TV Shows, or Anime, then use that user’s API key here. It’s simpler and safer than pointing the mod at your admin account.

Key Default Meaning
embyUrl "" Server URL.
embyApiKey "" API key.
embyUserId "" Optional user id.
embyMoviesEnabled true Show movies.
embyTvShowsEnabled true Show TV series.

Plex

Tip: prefer a Plex account/user that only has access to Movies, TV Shows, and/or Anime, then use that account’s token here instead of a full admin setup.

How to get plexToken

  1. Open your Plex web app and sign in.
  2. Click any movie or TV show (for example American Dad).
  3. Click the three dotsGet InfoView XML.
  4. In the address bar of the XML page, find X-Plex-Token= — the value after it is your Plex token.
  5. Paste that value into plexToken in the in-game GUI.
Key Default Meaning
plexUrl "" Server URL (often port 32400).
plexToken "" Plex token (see steps above).
plexMoviesEnabled true Show movies.
plexTvShowsEnabled true Show TV series.

Plex config

API keys and tokens stay server-side. Clients only receive non-secret public config.

Displays

Block Size Audio range
Compact Television 3 × 2 16
Wall Television 6 × 4 24
Ultrawide Monitor 8 × 4 24
Cinema Screen 14 × 8 80
Curved Cinema Screen 16 × 7 80

Using a curved cinema screen is the best way to watch 4K HDR content when creating your own home movie theater. (just my opinion)

Curved Screen with glasses

All are craftable, appear in the pixelReel creative tab, and are findable by searching television, TV, screen, cinema, or monitor.

Pixel Glasses are also craftable: wear them for a fullscreen overlay of a nearby playing screen (HUD hotbar/crosshair hidden while active).

Only the active screen area has collision — bezels stay buildable so you can frame screens with your own blocks. Breaking the center/controller removes the whole display; player builds are never touched.

  • Right-click a display: open the media menu.
  • Sneak + right-click: toggle power.
  • Video is letterboxed/pillarboxed to the screen aspect (never stretched); it keeps its original aspect ratio.

Choose your sourceMedia selectorPosters MoviesPosters TV Shows

Commands

Most screen actions use these commands (look at a display when required):

/tv menu                 open the media menu
/tv channels             list live channels
/tv channel <n or name>  tune a live channel
/tv next | previous      change channel
/tv guide                now/next programme overview
/tv status               power, channel, stream, and volume diagnostics
/tv retry                restart playback
/tv reload               re-download playlist/guide
/tv stop | resume        pause/resume playback
/tv power on|off|toggle  power control
/tv volume <0-100>       per-display volume
/tv rebuild              rebuild screen collision without touching builds
/tv jellyfin status|refresh|configure

Multiplayer

Display state (type, power, channel/media, facing, volume, playback position) is server-auth and synced to every client, including players who join later.

Each client decodes the stream locally with its own VLC. Credentials are never stored in world data.

The PixelReel Team

profile avatar
  • 1
    Projects
  • 112
    Downloads