src | ||
.dockerignore | ||
.env.sample | ||
.gitignore | ||
astro-i18next.config.mjs | ||
astro.config.mjs | ||
bun.lockb | ||
docker-compose.yml | ||
Dockerfile | ||
instances.json | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json |
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 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 in the Compatibility section. There seems to be some issues related to both @astrojs/vue
and @iconoir/vue
.
You'll still need to have NodeJS 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 | ||||||
🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | |
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
- API
- Languages
- English
- Japanese
- French
- Spanish
- Russian
- Data
- Track Events (Users should be opted-out by default, OpenPanel will be used)
- Make privacy policy adaptive
- Mobile Support
- Server Configuration (.env)
- Quality
- Allow 1080p
- Allow 4K
- Allow 8K
- Quality
- Account System (Based on Account System Demo)
- Use Supabase Library
- Create Pages:
- Subscription Feed
- History (Maybe, maybe not)
- Login
- Register
- Account
- Preferences
- Delete
- Anomymous Account Creation
- Email Confirmation Code
- Ability to:
- Update Data
- Username
- Pasword
- Delete Account
- Update Data
- API
/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
/api/auth/login
/api/auth/register
/api/auth/delete
/api/auth/confirm
/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)
- Use Header over Sidebar
- Generic
- Dropdown
- Buttons
- Toggle
- Inputs
- Radio Buttons
- Toast
- Tooltip
- Hovercard (For Creators) Example
- 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
- Watch Page
- Search
- Creator
- Video/Stream
- Playlist
- Paginations
- Discovery Pages
- Animation
- Automotive
- Comedy
- Courses
- Educational
- Family Friendly
- Fashion
- Fitness
- Food
- Games
- Music
- News
- Podcasts
- Science
- Sports
- Tech
- Web Series
- Twitch Support
- API
- 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
- Auto Complete
- Video Player
- Dash Format (1080p/4K/8K)
- 360° Support
- Mobile Gestures
- Embed Page
- Download
- Share
- Report
- Controls
- Play/Pause
- Volume
- Fullscreen
- Close Captians
- Quality Changer
- Theater Mode
- Cast
- Video Page
Important Infomation Card (Example)Controversial, do not proceed- Viewers Note (Like Community Notes, in experimental phase at YouTube)
- Toggle:
- Audio Only
- Autoplay
- User Settings
- Invidious Server Selection
- 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 Settings
- Import/Export Twitch/SafeTwitch Subscription (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