![MinPluto Banner](https://img.sudovanilla.org/3iPweoL.png) # MinPluto MinPluto is a modern privacy frontend for YouTube and Twitch(planned) giving your personal total anonymity. It provides additional features such as an account system, no annoying ads, multilingual support, custom video player, and additional customization. ___ ## Requirements ### Hardware | | Minimum | Recommended | |-------------------|--------------------|------------------| | CPU Cores | 2 | 4 | | Memory | 2GB*1 | 8GB | | Storage | 20GB | 60GB | | Network Speed | 300Mbps/Upload | 1Gbps/Upload | | Traffic | 20TB Monthly | Unlimited/No Cap | > *1: At least have 512Mb free for the operating system.
Recommended VPS
| Host | Plan | Monthly Pricing | Yearly Pricing | |------------------|-------------|-------------------|------------------| | BuyVM | SLICE 4096 | $15.00 | $180.00 | | Regxa | EVA3 | $15.00 | $171.00 | > A provider with unlimited bandwidth is preferred. > All prices are listed in USD.
### Software The package manager that you need to use with MinPluto must be [Bun](https://bun.sh/) since it appears to be the most functional option for this project. Attempting to use another package manager like Yarn or PNPM may cause issues, view [Package Managers](#package-managers) in the [Compatibility](#compatibility) section. There seems to be some issues related to both `@astrojs/vue` and `@iconoir/vue`. You'll still need to have [NodeJS](https://nodejs.org/en/download/package-manager) v21 or newer install in order for translations to work properly. ___ ## Compatibility ### Package Managers | Package Manager | Install Packages | Run Project | |---------------------|------------------|-------------| | NPM | ❌ | ❌ | | PNPM | ❌ | ❌ | | Bun | ✅ | ✅ | | Yarn v1 | ✅ | ❌ | | Yarn v3 | ✅ | ❌ | | Yarn v4 | ✅ | ❌ | ### Deployment | Software | Build | Run | |---------------------|-------|------| Bun (Local) | ✅ | ✅ | Node (Local) | ✅ | ✅ | Docker (Local) | ✅ | Mix | Cloudflare Pages | 🔘 | 🔘 | > MinPluto can use a lot of bandwidth, which most services will charge extra for. So this list is small and limited to certain services that allow unlimited bandwidth. ### Web Browsers | Browser | Live Streams |Player | CSS | JavaScript | Account System | Embed | |--------------------|--------------|-------|-----|------------|----------------|-------| | **Other Browsers**| | FOSS Browser | ❌ | ✅ | ❌ | ✅ | 🔘 | 🔘 | | Ladybird*3 | ❌ | ❌ | ✅ | ✅ | 🔘 | 🔘 | | **WebKit Browsers**| | Safariᴸᴬ | ✅ | ✅ | ❌ | ✅ | 🔘 | 🔘 | | GNOME Web | ✅ | ❌*2 | ✅ | ✅ | 🔘 | 🔘 | | DuckDuckGoᴸᴬ | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | **Electron Browsers**| | Min | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | **Chromium Browsers**| | Braveᴸᴬ | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | Chromium | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | | Google Chrome | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | | Microsoft Edge | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | | Opera | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | | Vivaldi | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | Yandex | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | **Firefox Browsers**| | ~~Dot Browser~~*1 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | | Falkon | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | Firefox | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | Floorp | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | IceCat | ❌ | ✅ | ❌ | 🔘 | 🔘 | 🔘 | | Librewolf | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | Mull | ❌ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | Mullvad | ✅ | ❌ | ✅ | ✅ | 🔘 | 🔘 | | Tor | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | | Waterfox | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | | **Outdated Browsers**| | Internet Explorer | ❌ | ✅ | ❌ | ✅ | 🔘 | 🔘 | > 🔘: Untested > All browsers are tested as-is out of box. Some functions with ❌ can probably work if you tweak the settings or interact with a built-in extension. > For Firefox-based browsers: Timestamp may show wrong data on first load, everything works correctly after a reload and so on. > ᴸᴬ: Tested in Lambdatest > *1: This web browser is unstable to operate > *2: Seeking doesn't work > *3: Ladybird is a new web browser that is uncompleted. This browser is not expected to work correctly for MinPluto at the moment. ___ ## To Do - [ ] i18n - [x] API - [ ] Languages - [x] English - [x] Japanese - [ ] French - [ ] Spanish - [x] Russian - [x] Data - [x] Track Events (Users should be opted-out by default, OpenPanel will be used) - [x] Make privacy policy adaptive - [x] Mobile Support - [ ] Server Configuration (.env) - [ ] Quality - [ ] Allow 1080p - [ ] Allow 4K - [ ] Allow 8K - [ ] Account System (Based on [Account System Demo](https://ark.sudovanilla.org/MinPluto/Account-System-Demo)) - [x] Use Supabase Library - [ ] Create Pages: - [ ] Subscription Feed - [ ] History (Maybe, maybe not) - [x] Login - [x] Register - [x] Account - [ ] Preferences - [ ] Delete - [ ] Anomymous Account Creation - [x] Email Confirmation Code - [ ] Ability to: - [ ] Update Data - [x] Username - [ ] Email - [ ] Pasword - [ ] Delete Account - [ ] API - [x] `/api/update/name` - [ ] `/api/update/email` - [ ] `/api/update/password` - [ ] `/api/update/preference/ui/theme` - [ ] `/api/update/preference/ui/color-scheme` - [ ] `/api/update/preference/ui/zen` - [ ] `/api/update/preference/ui/sidebar/size` - [ ] `/api/update/preference/player-type` - [ ] `/api/update/preference/image-proxy` - [ ] `/api/update/preference/instance/invidious/media` - [ ] `/api/update/preference/instance/invidious/data` - [ ] `/api/update/preference/instance/safetwitch/media` - [ ] `/api/update/preference/instance/safetwitch/data` - [x] `/api/auth/login` - [x] `/api/auth/register` - [ ] `/api/auth/delete` - [x] `/api/auth/confirm` - [x] `/api/auth/logout` - [ ] `/api/anon/create` - [ ] `/api/anon/delete` - [ ] `/api/anon/signout` - [ ] `/api/subscription/add` - [ ] `/api/subscription/remove` - [ ] Revamp Design and Layout ([UI Library Repo](https://ark.sudovanilla.org/MinPluto/UI-Library/)) - [ ] Use Header over Sidebar - [ ] Generic - [ ] Dropdown - [ ] Buttons - [ ] Toggle - [ ] Inputs - [ ] Radio Buttons - [ ] Toast - [ ] Tooltip - [ ] Hovercard (For Creators) [Example](https://www.radix-vue.com/components/hover-card) - [ ] Scrollable Areas - [ ] KBD - [ ] Empty State - [ ] Create Footer - [ ] Make more re-usable components - [ ] Watch Page - [ ] Video Player - [ ] Title, Actions, and Description Area - [ ] Comments/Chat - [ ] Related Content - [ ] Dialogs/Modal - [ ] Share - [ ] Download - [ ] Error - [ ] Search - [ ] Creator - [ ] Video/Stream - [ ] Playlist - [ ] Paginations - [ ] Discovery Pages - [ ] Animation - [ ] Automotive - [x] Comedy - [ ] Courses - [ ] Educational - [ ] Family Friendly - [ ] Fashion - [ ] Fitness - [ ] Food - [x] Games - [ ] Music - [ ] News - [ ] Podcasts - [ ] Science - [ ] Sports - [x] Tech - [ ] Web Series - [ ] Twitch Support - [x] API - [x] Video Player HLS Support (Required to play streams) - [ ] Polycentric Chat - [ ] Categories - [ ] Games - [ ] Music - [ ] Just Chatting - [ ] IRL - [ ] Sports - [ ] Animals - [ ] Creativity - [ ] Inline Player - [ ] Dedicated Redirect Page - [ ] Should pull from instances list - [ ] YouTube Playlists - [ ] RSS - [ ] Component for Search - [ ] Add to Watch Page - [ ] Search - [ ] Revamp Experience - [ ] Filters - [x] Auto Complete - [ ] Video Player - [x] Dash Format (1080p/4K/8K) - [ ] 360° Support - [ ] Mobile Gestures - [x] Embed Page - [ ] Download - [ ] Share - [ ] Report - [ ] Controls - [ ] Play/Pause - [ ] Volume - [ ] Fullscreen - [ ] Close Captians - [ ] Quality Changer - [ ] Theater Mode - [ ] Cast - [ ] Video Page - [ ] ~~Important Infomation Card ([Example](https://img.sudovanilla.org/pXqzT10.png))~~ Controversial, do not proceed - [ ] Viewers Note (Like Community Notes, in [experimental phase at YouTube](https://blog.youtube/news-and-events/new-ways-to-offer-viewers-more-context/)) - [ ] Toggle: - [ ] Audio Only - [ ] Autoplay - [ ] User Settings - [ ] Invidious Server Selection - [ ] [SafeTwitch](https://codeberg.org/SafeTwitch/safetwitch) Backend Server Selection - [ ] Platform Selection (YouTube/Twitch) - [ ] Video Player - [ ] Toggle: - [ ] Proxy - [ ] Theme - [ ] Preferred Language (For audio track on YouTube) - [ ] Custom CSS/JS - [ ] Switch Auth Servers - [ ] Import [SafeTwitch](https://codeberg.org/SafeTwitch/safetwitch) Settings - [ ] Import/Export Twitch/[SafeTwitch](https://codeberg.org/SafeTwitch/safetwitch) Subscription ([SafeTwitch](https://codeberg.org/SafeTwitch/safetwitch) needs to be looked into further) - [ ] Import/Export YouTube/FreeTube/NewPipe Subscription - [ ] Import/Export MinPluto User Settings - [ ] Feed Page - [ ] Universal Feed (YouTube and Twitch) - [ ] Subscription Management ___ MinPluto is inspired by [Poke](https://poketube.fun/), a project by [Ashley](https://codeberg.org/ashley).