GithubHelp home page GithubHelp logo

leepeuker / movary Goto Github PK

View Code? Open in Web Editor NEW
351.0 3.0 14.0 6.98 MB

Self hosted web app to track and rate your watched movies

License: MIT License

PHP 72.04% Makefile 0.21% Dockerfile 0.04% Twig 17.19% CSS 0.20% JavaScript 10.31%
letterboxd plex self-hosted tmdb jellyfin trakt-tv emby netflix movie

movary's Introduction


Movary

The central hub to track, rate and explore your movie watch history

WebsiteInstallationDocsApiDemo

Movary is a free and open source web application to track, rate and explore your movie watch history. You can host it for yourself and others. It offers detailed statistics, third-party integrations for importing and exporting your history from platforms like Trakt, Letterboxd, or Netflix, automated play tracking for Plex, Jellyfin or Emby and much more.

Movary Dashboard Example

Disclaimer: This project is still in an experimental (but usable) state. There are plans to add more and improve existing features before creating the 1.0 Release, which can lead to sudden breaking changes from time to time, so keep the release notes in mind when updating until then.

Features

  • Movie watch history: Collect and manage your watch history and ratings
  • Statistics: Analyze your movie watching behavior and history, like e.g. most watched actors/directors/genres/languages/years
  • Customization: You decide how your dashboard should look like, what format to use when displaying dates and more
  • Third party integrations: Import and export your history and ratings from/to platforms like Trakt, Letterboxd, or Netflix
  • Scrobbler: Automatically add new plays and ratings from Plex, Jellyfin or Emby
  • Own your personal data: Users can decide who can see their data and export/import/delete the data and their accounts at any time
  • Locally stored metadata: Using e.g. themoviedb.org and imdb as sources, all metadata movary uses for your history entries can be stored locally
  • PWA: Can be installed as a smartphone app (How to install PWAs in chrome)
  • User-management: Use Movary alone or with others
  • Completely free, no ads, no tracking and open source! :)

Demo

A demo installation can be found here (User: [email protected] Password:testUser).

Documentation

The documentation for the latest release is located here. Please report missing or wrong information.

Support

Contributors

movary's People

Contributors

jvt038 avatar leepeuker avatar pbogre avatar sahinakkaya avatar tungbq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

movary's Issues

Better secure login

Currently there is no protection against stuff like brute force attacks.

Proposal:

Privatize plex webhook url

Currently there is a static webhook url /plex. This can lead to abuse.

Change it so that the webhook url contains a unique string (which you can regenerate on demand).

Improve user management via cli

  • add cli command to delete user
  • add cli command to list users
  • combine update/change user commands into one update command
  • add option to disable password changes
  • add option to disable account deletion

Save movie posters locally

Sometime there can be issues with the directly from TMDB api requested images in the frontend, e.g. when requesting a lot of them at once.

Movie posters should be saved and used locally when a movie is added.

Add privacy option for user

Currently the history, ratings, etc. of a user are publicly available. Add option for user to disable public access (which should be the new default).

Todo:

  • add new user attribute flag is_private
  • add way to set flag via settings page
  • evaluate flag when accessing user specific page

Inform user about job processing outcome

Currently a user does not know if a scheduled job was processed successfully, failed or processed at all.

Todo:

  • add dedicated job page for logged in users
  • list all jobs and their status (waiting, processing, succeeded, failed) for user
  • add possibility to delete jobs (optional, could be moved into a separate issue)

Add "password forgotten" feature

Currently the only way to help a user who has forgotten his/her password is to set a new password via cli command.

Todo:

  • add smtp mailer logic
  • add "Forgot Password" button to login page
  • create "Password reset" page, only with valid token
  • send link to password reset page on "Forgot Password" button press
    • create and store password reset token in backend
    • must have an expiration time
  • Extend users setttings page with new section "Password resets" with two buttons: "List Resets" and "Create Resets"

Handle tmdb sync on new data import

When importing data with new movies (movary first party import), a lot of tmdb meta data is missing.

Suggestions:

  • sync immediately in import
  • schedule events to sync

Add option to edit watch dates

Current workflow to change a wrong watch date:

  • delete wrong watch date on movie page
  • add new watch date with correct date on log movie page

Suggestion:

  • edit wrong watch date on movie page

Make what plex tracks configurable per user

Currently it is an application wide setting what plex webhooks should be trakt.

Make this configurable per user and the UI on the plex settings page (simple checkboxes should be enough).

Improve UX for logging new movie

Current steps to log a movie:

  • press menu icon -> opens menu dropdown
  • press "Log movie" -> loads log movie page
  • enter search term -> loads log movie page with search results

Better:

  • press log movie icon -> opens movie search modal
  • enter search term in modal -> loads log movie page with search results

Make trakt api keys configureable per user

Currently the trakt api keys used for syncing have to be supplied via ENV (makes not much sense anymore with the multi user setup)

Todo:

  • remove trakt keys from env
  • store user trakt api keys in database next to the rest of the user data and use them when syncing user data with trakt

Use username in user specific url routes instead of id

Currently the user id is used in the url route for user specific pages, e.g. /1/dashboard
Instead if the user id the username should be used.

Todo:

  • Set username to user id as default
  • only allow alphanumeric characters in username
  • use username in route instead of id

Followup: Add way to change username to settings page

Add filterable movie view

Add a new view which displays all uniquely watched movies with the possibility to filter (e.g. by ratings or release year)

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.