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/
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
Here's how a media's metadata is displayed on frames
Media produced by a specific company can be seen by simply clicking on the company's name in the details pane
Media a specific actor or director took part in creating are easily viewable by clicking on their name
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
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.
Frames has AirPlay and Chromecast functionality built in
By clicking on the edit button inside a media page you can modify the information of the media. The images, TMDB ID
The up next UI when the present video is done playing
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
Two of these categories appear like this
And the last one appears like this
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