Skip to content

anthonycaccese/240-MP

240-MP

240-MP is a retro VCR style frontend to play content on Raspberry Pi (preferably hooked up to a CRT TV).

Playback experiences are handled via modules to enable new integrations without requiring major changes to the overall frontend. There are 3 currently included playback modules; one for Local Files, one for Plex and a module similar to art/wallpaper modes on modern tvs called (Ambient:Mode)

It's built to work in conjuction with MPV which will be installed (or updated) as a dependency during the install steps outlined below.

Video Overview

Watch on YouTube: https://youtu.be/r-gylGDoELY

Photos

Module Selection Item Detail
Resume Option Playback Settings

Current Features

Local Files Module (Wiki)

  • Supported file types: "mp4", "mkv", "avi", "mov", "m4v", "webm", "wmv", "flv", "f4v", "mpg", "mpeg", "vob"
  • Playlist support using m3u and m3u8 files
  • Folder browsing
  • Loop playback support
  • Playback history options
  • Switch audio/subtitle tracks during playback

Plex Module (Wiki)

  • Designed for CRT navigation (simple, fast, list browsing)
  • Supported library types: Movies, TV Shows, Other Videos
  • Server switching
  • User profile switching and auto sign in
  • Select specific libraries to display
  • Continue Watching and Resume
  • Hub, Playlist, Collection and Category support
  • Movie editions
  • Select preferred audio/subtitle track before playback and switch tracks during playback
  • Full library browsing by letter
  • Show/Season browsing
  • Video quality selection: Direct Playback (Default) or Transcode options

Ambient:Mode Module (Wiki)

  • Supported video file types: "mp4", "mkv", "avi", "mov", "m4v", "webm", "wmv", "flv", "f4v", "mpg", "mpeg", "vob"
  • Playlist support for audio tracks using m3u and m3u8 files
  • Mix video with a different audio track
  • Loops forever until you stop it

Install

FAQs

  • Why didn't you use Kodi/LibreELEC/OSMC?
    • I've used all of those distros and they are all excellent but I also like making things and wanted something simpler without as many options. Something that felt like a VCR from my youth.
  • Should I use 240-MP instead of Kodi/LibreELEC/OSMC?
    • Nope 😄
    • All of those distros are amazing, feature rich, work across a ton of devices and have awesome supportive teams behind them.
    • I on the other hand am just one person making nostalgic things for my own niche use cases. If those use cases match with what you're looking for, then 240-MP is a bunch of fun and I'd be happy for you to try it. Otherwise, the well known distros are spectacular and you should likely open those doors instead.
  • Will this work on other Raspberry Pi models? (like the 5, 2 zero, etc...)
    • Sorry, I can't say for sure as I've only tested on the 4b, 3b+ and 3b and don't have plans to test on other devices at this time.
  • Where does the name "240-MP" come from?
    • 240 has a double meaning referring to the longest VHS tape length and my primary display target for it of CRT TVs.
    • MP also has a double meaning of "Media Player" and a play on the "SP/LP/EP/SLP" terminology that was used to refer to the recording quality for VHS recordings.
  • Does the 240 in the name mean that it outputs at 240p resolution?
    • No and I apologize for any confusion I've caused on this, it's 240 in name only.
    • The output resolution for the menu and video playback when using it on a CRT is 480i.
  • Does 240-MP work over HDMI on a modern television too?
    • Yes! The UI was built to scale on modern televisions over HDMI as well.
    • Please make sure you use the config.txt I provide for HDMI and it will output at the proper resolution for a modern tv.

Credits & Acknowledgments

  • The VCR OSD Mono font was created by Riciery Santos Leal (a.k.a. mrmanet) https://www.dafont.com/vcr-osd-mono.font
  • Because this is a hobby project (and a fairly niche use case), I am using Claude Code to build a large part of the backend C++ code and structure the modules. If you have concerns with that, I am glad to talk through it. Also, please feel free to fork this repo, update any aspects and tailor things to your own use case; that's why the source is fully open and available.
  • Thank you to Plex for providing an open and free API with all the endpoints needed for me to make my own custom client
  • Thank you to the MPV team for a simple, extensible and cross platform media player
  • And thank you to the Raspberry Pi Foundation for helping me fill a drawer with SBCs to tinker with and inspire fun ideas like this project ❤️

License

This project is licensed under the GNU General Public License v3.0. See LICENSE for the full text.

You are free to use, study, and modify this code. If you distribute a modified version, you must also distribute it under GPL-3.0 and make the source available.

About

240-MP is a retro VCR style frontend to playback local media or content from a plex library on Raspberry Pi 4 or 3B+

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors