MovieMatch for Plex
Have you ever spent longer deciding on a movie than it'd take to just watch a random movie? This is an app that helps you and your friends pick a movie to watch from a Plex server.
MovieMatch connects to your Plex server and gets a list of movies (from any libraries marked as a movie library).
As many people as you want connect to your MovieMatch server and get a list of shuffled movies. Swipe right to 👍, swipe left to 👎.
If two (or more) people swipe right on the same movie, it'll show up in everyone's matches. The movies that the most people swiped right on will show up first.
docker run -it -e PLEX_URL= -e PLEX_TOKEN= -p 8000:8000 lukechannings/moviematch
Note: There is also documentation for docker-compose over here 👈
.envfile (see .env-template for an example)
deno run --allow-net --allow-read --allow-env --unstable src/index.tsin your favourite terminal
Open localhost:8000
The following variables are supported via a
.envfile or environment variables.
| Name | Description | Required | Default | | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------- | | PLEXURL | A URL for the Plex server, e.g.
https://plex.example.com:32400| Yes | null | | PLEXTOKEN | An authorization token for access to the Plex API. How to find yours | Yes | null | | PORT | The port the server will run on | No | 8000 | | ROOTPATH | The root path to use when loading resources. For example, if MovieMatch is on a sub-path, the `ROOTPATH
should be set to that sub-path (_without a trailing slash_) | No | '' | | LIBRARY_FILTER | A list of libraries to be included in the cards, comma delimited. e.g.Films
, orFilms,Television
, orFilms,Workout Videos
| No | The first library that has the type ofDEFAULTSECTIONTYPEFILTER` | | COLLECTIONFILTER | A list of collections to be included in the cards, comma delimited. e.g.
Marvel, or
Marvel,HBO| No | '' | | DEFAULTSECTIONTYPEFILTER | The first library with this type will be chosen as a default library | No |
movie, (can be
movie,
artist,
photo, or
show) | | LINKTYPE | The method to use for opening match links | No |
app(
app,
httpor
plex.tv) | | LOGLEVEL | How much the server should log | No |
INFO(supported options are
DEBUG,
INFO,
WARNING,
ERROR, and
CRITICAL) | | MOVIEBATCH_SIZE | How many movies to get from the server initially. Unless you're running out of cards really quickly you should leave this alone. | No | 25 |
No. The client never talks directly to the Plex server and any requests that need the token (e.g. querying movies, getting poster art) are made by the server.
Furthermore, only a subset of the Plex response is given to the client to minimise the chance of sensitive information leaking out.
Yes, you can include a TV library in your
LIBRARY_FILTERlist.
No. The server is entirely local to you and will work offline.
Yes. The server will use your browser's preferred language by default if it's supported. Otherwise it'll fall back to English.
The translations can be found in the i18n folder.
The file names follow BCP47 naming. Feel free to submit a Pull Request if you'd like your language to be supported.
Yes, you can read some documentation here