Android app to show movie ratings when browsing Netflix, Amazon Prime Video and other supported video streaming apps on the phone

Overview

Flutter - Movie Ratings

status

You can get the latest Playstore version here on Playstore - or download directly - 0.4.5

Screenshots of master

Search Page Favorites Page Movie Page
Collections Page Collection Page Settings Page
Series Page List of Episodes on Series Page Episode Page

Contribute

Contributions are welcome!

To build the project, create local.properties in the base directory if it does not exist and add following line to it.

omdb_api_key=<API_KEY>
ratings_endpoint=<RATINGS_ENDPOINT>
ratings_api_key=<RATINGS_API_KEY>

You can get your API key here - OMDB API Key

If you don't have an API key, you can use omdb_api_key="" and the project will use PreloadedMovieProvider in debug build. It will return search results for thor and batman only.

RATINGS_ENDPOINT is Flutter's private server to obtain accurate ratings. You may keep it as empty string and it will fallback to OMDB api. If you wish to contribute to the project, please send me an email and I can give you a temporary api key.

What can you contribute?

  • Bug fixes and improvements
  • Features (make sure that you are assigned to it)
  • Design changes (If you're a designer and would like to improve the designs, please get in touch)
  • Architecture changes (Please discuss what you want to improve before working on it)
  • Support for more apps (You're the best!)
  • Any other changes? Please get in touch.

Beginners?

Are you new to android development? I encourage you to contribute to the project. If you find some issue that you want to fix but don't know where to start? I'd by happy to guide you.

Playstore description

Flutter is a smart app that helps you decide what to watch on streaming apps like Netflix and Amazon Prime! It shows movie ratings on your screen making sure that you don't even have to search for it. It's completely ad-free and promotion-free.

Accessibility services disclaimer

This app uses Accessibility services. Flutter uses accessibility services to retrieve and read the window content to obtain name of the movies when you're using supported streaming apps. Once the title is obtained, the app will show its IMDb rating on your screen.

What does Flutter do?

Some of the video streaming apps do not show you ratings of the title that you want to see, be it a movie, a documentary or a TV show. The change in Netflix rating system caused an uproar in the online community. When you want to find out if a movie is good or bad before watching it on your streaming services, you would probably search it on Google or Imdb to find the ratings and reviews. Flutter makes your life easier by showing you the movie ratings directly on your screen without typing a single letter. Flutter also offers a support for Text to speech and speaks out the movie rating which is very useful for someone with disabilities.

Is that all Flutter does?

That is the primary functionality of the app. But it has much more to offer. Flutter provides an in-built search to find new movies, TV shows to watch. You can create your own collections based on your personal choices, browse your history and keep a list of everything that you like. Keep up with the latest version to get the new features.

How does Flutter work?

Flutter is smart and lightweight (just over 2MB in size). It uses Android's accessibility feature to get movie names from streaming apps like Netflix, BBC iPlayer, Jio TV, etc. It looks up the movie on the internet, gets basic details and accurate ratings from Open Movie Database, and shows you the ratings on your phone instantly without any hassles. Whenever you open a page of a movie or a TV show, you'll see the ratings on the bottom-right side of your screen.

This movie rating app doesn't ask for your contacts or personal details, bother you with push notifications. It’s active only when you're browsing the content on video streaming apps and it will sleep peacefully the rest of the time to save as much battery as possible. We care about your privacy and do not send your personal information to the cloud.

How to make it work?

Flutter is brilliant but you're the boss! You need to enable Flutter's accessibility in Accessibility settings on your phone. But there's an easier way. Open the app, click the button and it will open up settings for you. Enable it. Sit back, relax and enjoy watching your movies!

Apps that Flutter supports?

  • Netflix, Amazon Prime Video and Google Play Movies & TV for the worldwide audience.
  • BBC iPlayer for UK users.
  • Hotstar, Jio TV and Jio Cinema for our Indian users.
  • Redbox app (as per use request)
  • Support for other popular streaming apps coming soon!

What’s the future of Flutter?

  • Support for Android TV!
  • Support for more streaming apps - so that whatever you use, Flutter will be there to help you out with movie ratings!
  • We want Flutter to be your go-to pal for anything related to movies, documentaries and TV shows from ratings to recommendations.

Concerns?

Flutter uses Open Movie Database to get movie ratings so it is possible that it might not have the ratings of some not so popular movies. Open Movie Database has ratings gathered from various popular websites like Imdb. Flutter is not endorsed by or affiliated with Imdb.com or omdbapi.com For any concerns, queries, or feedback, write to us at [email protected]


Comments
  • Investigate other APIs (TVDb, etc)

    Investigate other APIs (TVDb, etc)

    Right now, Flutter is using OMDb API. It works most of the times, but we need something better.

    • Better search results even if provided year is incorrect.
    • Able to find movies based on translated titles.
    • Give rotten tomatoes ratings also.
    wontfix 
    opened by jayrambhia 3
  • Use My Anime List to get anime ratings

    Use My Anime List to get anime ratings

    Is your feature request related to a problem? Please describe. IMDb does not have all the anime ratings and now Netflix has been slowly adding more and more anime to the collections so it would be great to support more anime. A user suggested that we integrated my anime list in Flutter to get anime ratings.

    Describe the solution you'd like First, let's check if my anime list has some database that we can integrate with Flutter. If we're able to get some data, the server would still look for titles in imdb and if it's not there, then fallback to my anime list.

    Describe alternatives you've considered Look for alternatives if my anime list does not work out.

    enhancement user request 
    opened by jayrambhia 2
  • Support for 'Redbox' app

    Support for 'Redbox' app

    Is your feature request related to a problem? Please describe. Yes. One of the users requested that we add support for 'Redbox' app. The app does not show correct ratings.

    enhancement user request 
    opened by jayrambhia 1
  • Invalidate movie ratings after a thresold

    Invalidate movie ratings after a thresold

    Is your feature request related to a problem? Please describe. Some times the server returns incorrect ratings (because of title collisions) and even if the correct rating is available at a later point, the app never requests the rating again. So the app shows incorrect rating to the user.

    Describe the solution you'd like We already have a timestamp column in the database table MOVIE_RATINGS. The app is not using at this time, but we can start adding the timestamp when the rating is fetched. We can have a threshold of 2 weeks and the if the app requests the rating after 2 weeks, it would check the timestamp and get the rating online.

    Additional context This would potentially increase in the app sending more requests to the server, but we can consider it as marginal since the threshold is 2 weeks. This would also help getting better trending movies.

    enhancement 
    opened by jayrambhia 1
  • Stop multiple successive rating api calls for the same title

    Stop multiple successive rating api calls for the same title

    Sometimes there are multiple calls within 50-100 msec for the same title. The code has debounce but it's totally wrong. It debounces a just which is LOL. Fix it!

    bug 
    opened by jayrambhia 1
  • Handle 404 errors from flutter API

    Handle 404 errors from flutter API

    If the API returns 404, it's not going to return the ratings the next time. In order to decrease the stress on the server, we should "cache" 404 responses for certain time period.

    enhancement 
    opened by jayrambhia 1
  • Support for private ratings API

    Support for private ratings API

    The basic api to get accurate movie ratings is ready.

    • [x] Integrate API with the app
    • [ ] Add security
    • [x] Give option to switch to omdb api (till the API is stable)
    enhancement In progress 
    opened by jayrambhia 1
  • i will love to do copywriting for you

    i will love to do copywriting for you

    I love your application and would want to contribute to it, I'm not a developer but I am good at copywriting. I would love to make a copywrite for your Readme and make a pull request for you to merge. Your response would be highly appreciated. Also I would like to request if we could communicate via email, so I don't have to create issues. Thank you.

    opened by Hamzeto938 1
  • IllegalStateException error in DonatePageFragment (Crash)

    IllegalStateException error in DonatePageFragment (Crash)

      at com.fenchtose.movieratings.features.f.a.a (SourceFile:91)
      at com.fenchtose.movieratings.features.f.a.a (SourceFile:15)
      at com.fenchtose.movieratings.features.f.a$e.a (SourceFile:64)
      at com.android.billingclient.api.c$3$1.run (SourceFile:484)
      at android.os.Handler.handleCallback (Handler.java:790)
      at android.os.Handler.dispatchMessage (Handler.java:99)
      at android.os.Looper.loop (Looper.java:164)
      at android.app.ActivityThread.main (ActivityThread.java:6494)
      at java.lang.reflect.Method.invoke (Native Method)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)
    

    And

      at com.fenchtose.movieratings.features.f.a$e.a (SourceFile:64)
      at com.android.billingclient.api.c$3$1.run (SourceFile:484)
      at android.os.Handler.handleCallback (Handler.java:751)
      at android.os.Handler.dispatchMessage (Handler.java:95)
      at android.os.Looper.loop (Looper.java:154)
      at android.app.ActivityThread.main (ActivityThread.java:6692)
      at java.lang.reflect.Method.invoke (Native Method)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1468)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1358)
    
    bug 
    opened by jayrambhia 1
  • Playstore crash report - NPE in NetflixReaderService (0.2.2)

    Playstore crash report - NPE in NetflixReaderService (0.2.2)

    Reported in version 0.2.2

    java.lang.NullPointerException: 
      at com.fenchtose.movieratings.NetflixReaderService.onAccessibilityEvent (SourceFile:149)
      at android.accessibilityservice.AccessibilityService$2.onAccessibilityEvent (AccessibilityService.java:1550)
      at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper.executeMessage (AccessibilityService.java:1735)
      at com.android.internal.os.HandlerCaller$MyHandler.handleMessage (HandlerCaller.java:37)
      at android.os.Handler.dispatchMessage (Handler.java:105)
      at android.os.Looper.loop (Looper.java:164)
      at android.app.ActivityThread.main (ActivityThread.java:6938)
      at java.lang.reflect.Method.invoke (Native Method)
      at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
    
    bug 
    opened by jayrambhia 1
  • Support added for Disney+

    Support added for Disney+

    Please include following detatils for a pull request.

    Title: Support added for Disney+ app

    Description This MR adds support to show ratings for Disney+. It reads title and year.

    opened by jayrambhia 0
  • Add the app to f-droid

    Add the app to f-droid

    I found out this app is in Play Store, GPL-3 licensed, but not in F-droid, as I don't have a Google account, I cannot get it if I don't download the APK and reinstall it manually at every update.

    I haven't seen if this app has Google services or Analytics or not, but I don't think it would be really hard to remove them too.

    user request 
    opened by lulucca12 3
  • DisplayedRating table has title names instead of imdb ids

    DisplayedRating table has title names instead of imdb ids

    Describe the bug DisplayedRating table has title names instead of ids. This is caused feeding incorrect data to HistoryKeeper by history publisher. The publisher gets incorrect data because it publishes RatingRequest which does not have id.

    TODO

    1. Check the importance is the id that need to be stored in the db. Maybe, we can keep using title. If we can keep using title, create a new schema and migrate column.
    2. If we must keep the id, create a new schema and delete the current table.
    bug 
    opened by jayrambhia 0
  • Add Detekt

    Add Detekt

    Add Detekt checks and formatting to the project. The project started with tab characters and now it also has space tabs. Use Detekt and auto-format it. Also, Detekt has good useful checks to make the code better.

    alpha 
    opened by jayrambhia 0
  • Support for 'Stan' app

    Support for 'Stan' app

    Is your feature request related to a problem? Please describe. Yes. One of the users requested that we add support for 'Stan' app. The app does not show correct ratings.

    The priority is low as the app has 1M+ downloads and is restricted to Australia.

    enhancement user request 
    opened by jayrambhia 0
  • Show trending movies based on Region/country

    Show trending movies based on Region/country

    Is your feature request related to a problem? Please describe. Right now, the trending page is global, but it's completely influenced by majority of the users (US). So it would be better if users could see what's trending in their country/region.

    Describe the solution you'd like Give an option to the user to select Global or regional option in the trending page.

    Describe alternatives you've considered Instead of the region, the language of the device can be used. This could mean that someone in the Netherlands using en-us would see trends of en-us instead of the Netherlands.

    enhancement 
    opened by jayrambhia 0
  • Show date labels in recently browsed page

    Show date labels in recently browsed page

    Is your feature request related to a problem? Please describe. No. It's an improvement.

    Describe the solution you'd like Show labels of timeperiod in the movie list. Eg. Today, Yesterday, This week, Last week, Month, etc.

    Additional context This would help the user find something that they browsed in a particular time period.

    enhancement 
    opened by jayrambhia 0
Releases(v0.4.6)
Owner
Jay Rambhia
Android Developer.
Jay Rambhia
Provide easy and flexible way to show SnackBar. Simple text, undo, and error style are supported.

snack_bar_presenter Provide easy and flexible way to show SnackBar. Simple text, undo, and error style are supported. . . . Usage import 'package:exam

Masayuki Ono (mono) 8 Nov 30, 2020
Application that consumes the Movie Database (TMDB) api to show and search any kind of movie with its actors.

# cartelera A new Flutter project. ## Getting Started This project is a starting point for a Flutter application. A few resources to get you start

null 2 Jan 11, 2022
A Flutter package which implements a ConvexAppBar to show a convex tab in the bottom bar. Theming supported.

English | 简体中文 The official BottomAppBar can only display a notch FAB with an app bar, and sometimes we need a convex FAB. BottomAppBar and NotchShape

Thinking in code 647 Dec 28, 2022
Playify is a Flutter plugin for play/pause/seek songs, fetching music metadata, and browsing music library.

Playify Playify is a Flutter plugin for play/pause/seek songs, fetching music metadata, and browsing music library. Playify was built using iOS's Medi

Ibrahim Berat Kaya 32 Dec 14, 2022
Munem Sarker 1 Jan 25, 2022
The Flutter Firebase Phone Auth application for authenticating the user's mobile phone

Flutter Firebase Phone Auth ✨ About The Flutter Firebase Phone Auth application

Dileepa Bandara 3 Aug 25, 2022
A weather application that show the current weather for your location and forecast for 6 days, and favorite city and other locations

Weather Application App concept created with Flutter using Dart programming language ad it's a demanded task in my internship at Algoriza About An app

Mohamed Mohamedy 4 Nov 13, 2022
Generate a new file by compressed video, and provide metadata. Get video thumbnail from a video path, supports JPEG/GIF. To reduce app size not using FFmpeg in IOS.

flutter_video_compress Generate a new path by compressed video, Choose to keep the source video or delete it by a parameter. Get video thumbnail from

天海るり 179 Dec 8, 2022
This project consist of Netflix UI for Mobile and Web using Flutter

Flutter Netflix Clone(Pending) A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to g

Aby T Mathew 1 Oct 24, 2021
A mobile music streaming app with a complex UI built with Flutter and the Deezer API🚀

Sap Sap is a music streaming & discovery app built with the Deezer API for iOS and Android. It includes a mini player, search and local storage. Be su

Carlton Aikins 53 Dec 28, 2022
Music Streaming and Downloading app made in Flutter

Musify Music Streaming and Downloading app made in Flutter! Show some ❤️ and ⭐ the Repo Features Online Song Search ?? Streaming Support ?? Offline Do

Harsh Sharma 257 Dec 30, 2022
A clone of Netflix using flutter

A clone of Netflix using flutter

Sreehari vr 2 Nov 14, 2021
Treino flutter com tempo: Criando pagina inicial da NetFlix | Tempo: 1h

netflix A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Josia Almeida 1 Oct 30, 2021
A Netflix clone built with @appwrite + @flutter

Almost Netflix - Flutter Requirements Before using this project, you will need to have Appwrite instance with Almost Netflix project ready. You can vi

Appwrite 49 Dec 26, 2022
Video player-2.2.10 - A Flutter plugin for iOS, Android and Web for playing back video on a Widget surface

Video Player plugin for Flutter A Flutter plugin for iOS, Android and Web for pl

null 2 Sep 29, 2022
Flutter Radio Player, A Plugin to handle streaming audio without a hassle

Flutter radio plugin handles a single streaming media preciously. This plugin was developed with maximum usage in mind. Flutter Radio player enables S

Sithira Munasinghe 104 Dec 27, 2022
Flutter Android application for tracking Osu! user, beatmaps statistic and other features provided by Osu! API

TMP-team-2-Osu-track Целью проекта является написание приложения на платформе Android и IOS с помощью Dart+Flutter с интуитивно понятным интерфейсом,

Aleksandr P. 11 Nov 23, 2022
Real short video app with firebase and pixels API.Where you can create a short video with pixels' stock videos and also merge your audio.

Flutter Short Videos Platform Short videos platform with Flutter and Firebase. About Real short video app with firebase and pixels API.Where you can c

Ansh rathod 55 Dec 26, 2022
Login and signup using a Phone number and otp verification in flutter app

phone_authentication A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you sta

Ambaliya Avnit Karshanbhai 2 Aug 31, 2022