|
|
@ -1,82 +1,93 @@ |
|
|
|
<h1>movie-web</h1> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p align="center"><img align="center" width="280" src="./.github/logo-dark.svg#gh-dark-mode-only"/></p> |
|
|
|
|
|
|
|
<p align="center"><img align="center" width="280" src="./.github/logo-light.svg#gh-light-mode-only"/></p> |
|
|
|
<p align="center"> |
|
|
|
<p align="center"> |
|
|
|
<a href="https://github.com/movie-web/movie-web/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/movie-web/movie-web/deploying.yml?branch=master&style=flat-square"></a> |
|
|
|
<img src="https://skillicons.dev/icons?i=react,vite,ts" /> |
|
|
|
<a href="https://github.com/movie-web/movie-web/blob/master/LICENSE.md"><img alt="GitHub license" src="https://img.shields.io/github/license/movie-web/movie-web?style=flat-square"></a> |
|
|
|
<br/> |
|
|
|
<a href="https://github.com/movie-web/movie-web/network"><img alt="GitHub forks" src="https://img.shields.io/github/forks/movie-web/movie-web?style=flat-square"></a> |
|
|
|
<a href="https://discord.movie-web.app"><kbd>🔵 discord</kbd></a> <a href="https://movie-web.app"><kbd>🟢 website</kbd></a> |
|
|
|
<a href="https://github.com/movie-web/movie-web/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/movie-web/movie-web?style=flat-square"></a> |
|
|
|
|
|
|
|
<a href="https://github.com/movie-web/movie-web/stargazers"><img src="https://weblate.movie-web.app/widget/movie-web/movie-web/svg-badge.svg"></a><br /> |
|
|
|
|
|
|
|
<a href="https://discord.movie-web.app"><img src="https://discord.com/api/guilds/871713465100816424/widget.png?style=banner2" alt="Discord Server"></a> |
|
|
|
|
|
|
|
</p> |
|
|
|
</p> |
|
|
|
|
|
|
|
<br/><br/> |
|
|
|
|
|
|
|
|
|
|
|
movie-web is a web app for watching movies easily. Check it out at **[movie-web.app](https://movie-web.app)**. |
|
|
|
# ⚡What is movie-web? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
movie-web is a web app for watching movies easily. Check it out at <a href="https://movie-web.app"><kbd>movie-web.app</kbd></a>. |
|
|
|
|
|
|
|
|
|
|
|
This service works by displaying video files from third-party providers inside an intuitive and aesthetic user interface. |
|
|
|
This service works by displaying video files from third-party providers inside an intuitive and aesthetic user interface. |
|
|
|
|
|
|
|
|
|
|
|
Features include: |
|
|
|
# 🔥Features |
|
|
|
|
|
|
|
|
|
|
|
- 🕑 Saving of your progress so you can come back to a video at any time! |
|
|
|
- Automatic saving of progress - optionally synced to an account. |
|
|
|
- 🔖 Bookmarks to keep track of videos you would like to watch. |
|
|
|
- Bookmark shows or movies, keep track of what you want to watch. |
|
|
|
- 🎞️ Easy switching between seasons and episodes for a TV series; binge away! |
|
|
|
- Minimalistic interface that only shows whats required - no algorithm to consume you. |
|
|
|
- ✖️ Supports multiple types of content including movies, TV shows and Anime (coming soon™️) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Goals of movie-web |
|
|
|
## 🍄 Philosophy |
|
|
|
|
|
|
|
|
|
|
|
- No ads |
|
|
|
This project is meant to be simple and easy to use. Keep features minimal but polished. |
|
|
|
- No BS: just a search bar and a video player |
|
|
|
We do not want this project to be yet another bulky streaming site, instead it aims for minimalism. |
|
|
|
- No responsibility on the hoster, no databases or api's hosted by us, just a static site |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Self-hosting |
|
|
|
On top of that, hosting should be as cheap and simple as possible. Just a static website with a proxy, with an optional backend if you want cross-device syncing. |
|
|
|
|
|
|
|
|
|
|
|
A simple guide has been written to assist in hosting your own instance of movie-web. |
|
|
|
Content is fetched from third parties and scraping is done fully done on the client. This means that the hoster has no files or media on their server. All files are streamed directly from the third parties. |
|
|
|
|
|
|
|
|
|
|
|
Check it out here: [https://github.com/movie-web/movie-web/blob/dev/SELFHOSTING.md](https://github.com/movie-web/movie-web/blob/dev/SELFHOSTING.md) |
|
|
|
## ⚠️ Limitations |
|
|
|
|
|
|
|
|
|
|
|
## Running locally for development |
|
|
|
- Due to being a static site, there can be no SSR |
|
|
|
|
|
|
|
- To keep it cheap to host, amount of proxied requests need to be kept to a minimum |
|
|
|
|
|
|
|
- Also to keep it cheap, no content must ever be streamed through the proxy. So only streams not protected by CORS headers. |
|
|
|
|
|
|
|
|
|
|
|
To run this project locally for contributing or testing, run the following commands: |
|
|
|
# 🧬 Running locally for development |
|
|
|
<h5><b>note: must use pnpm to install packages and run NodeJS 16 (install with `npm i -g pnpm`)</b></h5> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To run locally, you must first clone the repository. After that run the following commands in the root of the repository: |
|
|
|
```bash |
|
|
|
```bash |
|
|
|
git clone https://github.com/movie-web/movie-web |
|
|
|
|
|
|
|
cd movie-web |
|
|
|
|
|
|
|
pnpm install |
|
|
|
pnpm install |
|
|
|
pnpm run dev |
|
|
|
pnpm run dev |
|
|
|
``` |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
To build production files, simply run `pnpm run build`. |
|
|
|
To build production files, run: |
|
|
|
|
|
|
|
```bash |
|
|
|
You'll need to deploy a cloudflare service worker as well. Check the [selfhosting guide](https://github.com/movie-web/movie-web/blob/dev/SELFHOSTING.md) on how to run the service worker. Afterwards you can make a `.env` file and put in the URL. (see `example.env` for an example) |
|
|
|
pnpm build |
|
|
|
|
|
|
|
``` |
|
|
|
<h2>Contributing - <a href="https://github.com/movie-web/movie-web/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/movie-web/movie-web?style=flat-square"></a> |
|
|
|
|
|
|
|
<a href="https://github.com/movie-web/movie-web/pulls"><img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr/movie-web/movie-web?style=flat-square"></a></h2> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Check out [this project's issues](https://github.com/movie-web/movie-web/issues) for inspiration for contribution. Pull requests are always welcome. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**All pull requests must be merged into the `dev` branch. it will then be deployed with the next version** |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Credits |
|
|
|
> [!TIP] |
|
|
|
|
|
|
|
> You must use pnpm (`npm i -g pnpm`) and run NodeJS 16 |
|
|
|
|
|
|
|
|
|
|
|
This project would not be possible without our amazing contributors and the community. |
|
|
|
# 🧬 Selfhosting |
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/movie-web/movie-web/graphs/contributors"><img alt="GitHub contributors" src="https://img.shields.io/github/contributors/movie-web/movie-web?style=flat-square"></a> |
|
|
|
A simple guide has been written to assist in hosting your own instance of movie-web. Check it out below |
|
|
|
|
|
|
|
|
|
|
|
<div style="display:flex;align-items:center;grid-gap:10px"> |
|
|
|
|[Selfhosting guide](https://docs.movie-web.app/self-hosting/self-hosting)| |
|
|
|
<img src="https://github.com/JamesHawkinss.png?size=20" width="20"><span><a href="https://github.com/JamesHawkinss">@JamesHawkinss</a> for original concept.</span> |
|
|
|
|---| |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="display:flex;align-items:center;grid-gap:10px"> |
|
|
|
|
|
|
|
<img src="https://github.com/JipFr.png?size=20" width="20"><span><a href="https://github.com/JipFr">@JipFr</a> for initial work on <a href="https://github.com/JipFr/movie-cli">movie-cli</a>.</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="display:flex;align-items:center;grid-gap:10px"> |
|
|
|
## Contributors |
|
|
|
<img src="https://github.com/mrjvs.png?size=20" width="20"><span><a href="https://github.com/mrjvs">@mrjvs</a> for leading the port to React, and for the beautiful design.</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="display:flex;align-items:center;grid-gap:10px"> |
|
|
|
This project would not be possible without our amazing contributors and the community. |
|
|
|
<img src="https://github.com/binaryoverload.png?size=20" width="20"><span><a href="https://github.com/binaryoverload">@binaryoverload</a> for help rewriting the application into React and making the README look ✨ pretty ✨.</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="display:flex;align-items:center;grid-gap:10px"> |
|
|
|
<table> |
|
|
|
<img src="https://github.com/lem6ns.png?size=20" width="20"><span><a href="https://github.com/lem6ns">@lem6ns</a> for helpfully implementing extra scrapers.</span> |
|
|
|
<tbody> |
|
|
|
</div> |
|
|
|
<tr> |
|
|
|
|
|
|
|
<td align="center" valign="top" width="100px"> |
|
|
|
|
|
|
|
<img src="https://images.weserv.nl/?url=https://github.com/JamesHawkinss.png&mask=circle"/><br /> |
|
|
|
|
|
|
|
<sub><a href="https://github.com/JamesHawkinss">@JamesHawkinss</a></sub> |
|
|
|
|
|
|
|
</td> |
|
|
|
|
|
|
|
<td align="center" valign="top" width="100px"> |
|
|
|
|
|
|
|
<img src="https://images.weserv.nl/?url=https://github.com/JipFr.png&mask=circle"/><br /> |
|
|
|
|
|
|
|
<sub><a href="https://github.com/JipFr">@JipFr</a></sub> |
|
|
|
|
|
|
|
</td> |
|
|
|
|
|
|
|
<td align="center" valign="top" width="100px"> |
|
|
|
|
|
|
|
<img src="https://images.weserv.nl/?url=https://github.com/mrjvs.png&mask=circle"/><br /> |
|
|
|
|
|
|
|
<sub><a href="https://github.com/mrjvs">@mrjvs</a></sub> |
|
|
|
|
|
|
|
</td> |
|
|
|
|
|
|
|
<td align="center" valign="top" width="100px"> |
|
|
|
|
|
|
|
<img src="https://images.weserv.nl/?url=https://github.com/binaryoverload.png&mask=circle"/><br /> |
|
|
|
|
|
|
|
<sub><a href="https://github.com/binaryoverload">@binaryoverload</a></sub> |
|
|
|
|
|
|
|
</td> |
|
|
|
|
|
|
|
</tr> |
|
|
|
|
|
|
|
<tr> |
|
|
|
|
|
|
|
<td align="center" valign="top" width="100px"> |
|
|
|
|
|
|
|
<img src="https://images.weserv.nl/?url=https://github.com/lem6ns.png&mask=circle"/><br /> |
|
|
|
|
|
|
|
<sub><a href="https://github.com/lem6ns">@lem6ns</a></sub> |
|
|
|
|
|
|
|
</td> |
|
|
|
|
|
|
|
</tr> |
|
|
|
|
|
|
|
</tbody> |
|
|
|
|
|
|
|
</table> |
|
|
|