Frames is a VOD streaming service built with react and NextJs around the Google Drive API.
Frames is a web application that allows you to store, organise, download and stream media contents available on your Google Drive. The application enables you share this library without compromising the integrity of the original files. It organises the Movies and TV shows on your drive account, providing you with their trailer, HD images and other info
Clone the repository
git clone https://github.com/Eleven-am/frames.git
Install the dependencies
npm install
Go to the project directory
cd frames
Open the framesConfig.ts file and configure the parameters To do this you need to open the file in your favorite text editor, have a Supabase project, a TMDB API key, FANART API key and a Google Drive API credentials and token.
vim framesConfig.ts
Once you have configured the file, you can generate an environment file with the following command:
npm run generate-env
Once you have done this, you can build the application with the following command:
npm run setup
The application will be available on http://localhost:3000/
- For movies, it is recommended that only the movie file itself is placed directly in the movie folder like so but folders containing the movie file can be placed in the movie folder.
- For TV shows every Show should be placed in its folder like so
- When arranging the episodes you have two options
Disclaimer: The Social OAUTH feature requires a connection to a Phoenix-Elixir server. I intend to make my private server available to the public in the future.
-
The boarding page includes social authentication methods as well as email. Every user registered must be provided an auth key
-
The home page includes (ideally 7, may be less or 0) trending media that are available in your library. A synopsis of the media and trailer are also available directly from here
-
All the movies and tv shows available in the library are show in descending order from most recent or trending to less recent. The media can be filtered by genre or decade. just by interacting with the page.
-
Frames has the collection page that shows you default collection for media in your library
-
Media produced by a specific company can be seen by simply clicking on the company's name in the details pane
- Clicking on the company's logo begins playback of all the media produced by the company in the order they were made available by said company
-
Media a specific actor or director took part in creating are easily viewable by clicking on their name
- Clicking on the person's name begins playback of all the media they have taken part in.
-
Frames supports only mp4 files. These files are streamed securely to the user and your Google credentials are never made available to the client.
-
The left controls include, in that order, the AirPlay/Cast button (if available), the share button, the playlist button, the volume controls and download button
-
If logged in as a guest user, the download button and the Share button are not available
-
The right side controls include the player settings button(in development), the groupwatch button, the picture in picture button, the subtitle button, the up next button and the fullscreen button
- Clicking on the up next button plays the next video as expected.
-
Frames supports only three subtitle languages at this point (English, French, and German)
-
-
GroupWatch: This feature allows you to watch a media with your friends at the same time.
Disclaimer: The groupwatch feature requires a connection to a Phoenix-Elixir server. I intend to make my private server available to the public in the future.
- To create a new session click on one of these buttons The join button in the video player The join button in the info page
- When a session is created a link is copied to your clipboard anyone with access to this link can join the session
- A session spans multiple videos. As long as all parties remain connected, the session allows you to actually binge-watch videos together.
- There's no limit to the amount of people that can join a session
- Users in a session can send a ping to themselves with a maximum of 280 characters. Ping history isn't saved
-
Frames has AirPlay and Chromecast functionality built in
- Obviously frames controls the remote player based on local interactions
-
By clicking on the edit button inside a media page you can modify the information of the media. The images, TMDB ID
-
Frames allows any non-guest user download video files provided they are given a key from the admin(These links are only valid for 2 hours)
-
You can add three personalised categories to the home page.
-
These categories include a list of previously chosen media and a name to display said media
-
Adding these editor picks is as easy as visiting the settings page => Mange => manage picks.Here you can modify or create new editor picks to display on the homepage
-
You can also delete editor picks by clicking on the delete button
-
The home page has infinite scrolling, it will load more content as you scroll down based on the amount of content you have and the user's activity
-
-
Admin accounts can create and manage auth keys. These keys are used to create new accounts or download videos
- Creating and sharing your playlists with others
####* Creating a playlist is already supported by Frames but sharing your playlist is not