A program to make it easier to pick movies to watch in a group. Make a list of the movies you're interested in watching, and then vote on which movies everyone is willing to watch.
The search and add movies screen.
The results screen.
Setting up your own instance of Okies.
- A current version of NodeJS installed
- NPM installed
- For docker installations: Docker and Docker Compose
- An instance of Jellyfin, an API Key, and a UserID (for grabbing metadata and cover art).
- Clone the repository.
git clone https://git-site/this-repository
- Open the folder in terminal, and install npm packages
npm i
- Adjust the docker-compose.yml file as needed.
- Run docker compose in the root folder of your copied repository.
docker compose up -d
- Clone the repository.
git clone https://git-site/this-repository
- Open the folder in terminal, and install npm packages
npm i
- Run node to start the server in the root folder of your copied repository.
node ./index.js
- Access the web app in your web browser. (http://localhost:3500/)
- Copy the default config.json.sample to config.json in the repository folder.
- Add your API_Key, UserID, and jellyfinURL.
- You can get an API key for your Jellyfin server from the admin dashboard API key settings page.
- See Jellyfin documentation for additional information
Your UserID is the long UserID used by the Jellyfin API, not your username. If you don't know how to use the API to get this, you can have Okies dump the full userlist for you.
-
Add your API key and Server URL for Jellyfin to config.json
-
Manually run Okies by either executing "node index.js" OR running "docker compose up" without the -d (detached) flag.
-
Go to your Web browser and navigate to localhost:PORT/userID.
-
The server will dump all current userIDs from your jellyfin server in the server log.
-
Copy and paste the userID for the library that Okies should use for searches and metadata.
-
Press ctrl+c in the server terminal window to stop Okies
-
Restart the server.
- Recreate/create the container (docker compose up -d)
- or restart node if not using Docker
-
Access the web app in your web browser. (http://localhost:PORT/)
-
There will be no movies added by default. Click "Propose additional movies" or navigate to http://localhost:PORT/search.
-
Test the API by searching for something that you know is in your jellyfin library.
-
Add items to the default list
- Search for items from your library by name
- select list # from the dropdown (will be 0 since there is only one list in default configuration)
- click "Add" in the row with the movie you'd like to add.
-
When finished adding, you can vote at http://localhost:3500/
Polls can be managed at http://localhost:3500/manage. This page must be accessed by the direct link. Options here include:
- Remove items from lists - remove items from poll lists. WARNING: These also dumps all votes for deleted items.
- Save My Polls to Server - writes out current polls to save.json. If you are using the default configuration, this JSON will load the next time the server starts. Votes are also saved, but all API data is refreshed on restart.
- Add List - Write the prompt and press "Create new list" to create an additional survey list. Lists are for helpful for organizing when you may want to pick multiple rounds of movies, such as for a movie night.
- Remove list - This removes a list and all of its' associated items.
- Reset Votes - Lists and items are preserved, but the vote count is zeroed on all items.