Git Product home page Git Product logo

moviematch's Introduction

MovieMatch

Join a room Swipe on the movie Look at what you agree on

What is this?

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.

How it works

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.

Getting started

With Docker

docker run -it -e PLEX_URL=<Plex URL> -e PLEX_TOKEN=<Your Token> -p 8000:8000 lukechannings/moviematch

With Deno

  • Install Deno
  • Download the latest release and extract it, open a terminal in the extracted folder
  • Create a .env file (see .env-template for an example)
  • Run deno run --allow-net --allow-read --allow-env --unstable src/index.ts in your favourite terminal

Open localhost:8000

Configuration

The following variables are supported via a .env file or environment variables.

Name Description Required Default
PLEX_URL A URL for the Plex server, e.g. https://plex.example.com:32400 Yes null
PLEX_TOKEN 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
ROOT_PATH The root path to use when loading resources. For example, if MovieMatch is on a sub-path, the ROOT_PATH 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, or Films,Television, or Films,Workout Videos No The first library that has the type of DEFAULT_SECTION_TYPE_FILTER
DEFAULT_SECTION_TYPE_FILTER The first library with this type will be chosen as a default library No movie, (can be movie, artist, photo, or show)
LINK_TYPE The method to use for opening match links No app (app, http or plex.tv)
LOG_LEVEL How much the server should log No INFO (supported options are DEBUG, INFO, WARNING, ERROR, and CRITICAL)
MOVIE_BATCH_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

FAQ

Can a user get my Plex Token?

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.

Can it do TV shows too?

Yes, you can include a TV library in your LIBRARY_FILTER list.

Do you gather any data?

No. The server is entirely local to you and will work offline.

Do you support languages other than English?

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.

Can I run MovieMatch behind a reverse proxy?

Yes, you can read some documentation here

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.