Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mayeaux/nodetube
Open-source YouTube alternative that offers video, audio and image uploads, livestreaming and built-in monetization
https://github.com/mayeaux/nodetube
alternative audio-streaming image-hosting livestreaming monetization video-streaming youtube
Last synced: 1 day ago
JSON representation
Open-source YouTube alternative that offers video, audio and image uploads, livestreaming and built-in monetization
- Host: GitHub
- URL: https://github.com/mayeaux/nodetube
- Owner: mayeaux
- License: mit
- Created: 2018-04-17T20:04:25.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T11:03:09.000Z (almost 2 years ago)
- Last Synced: 2025-01-03T16:05:57.774Z (8 days ago)
- Topics: alternative, audio-streaming, image-hosting, livestreaming, monetization, video-streaming, youtube
- Language: JavaScript
- Homepage:
- Size: 8.93 MB
- Stars: 2,349
- Watchers: 64
- Forks: 266
- Open Issues: 173
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- awesome-open-source-alternatives - NodeTube
- awesome-github-star - nodetube - source YouTube alternative that offers video, audio and image uploads, livestreaming and built-in monetization | mayeaux | 2277 | (JavaScript)
- jimsghstars - mayeaux/nodetube - Open-source YouTube alternative that offers video, audio and image uploads, livestreaming and built-in monetization (JavaScript)
README
# NodeTube
NodeTube is an open-source YouTube alt that offers video, audio and image uploads, livestreaming and built-in monetizationA live NodeTube instance is available to interact with at [https://newtube.app](https://newtube.app)
You can join the open-source community actively developing NodeTube on [Discord](https://discord.gg/ejGah8H), [Riot.im](https://riot.im/app/#/room/#nodetube:matrix.org) and [Reddit](https://reddit.com/r/nodetube)
## Get Your Instance Running:
You can get an instance up instantly using one-click deployment with Heroku below:
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/mayeaux/nodetube)
## Running On Your Local Computer
### Required Software
- [Node.js 10.x+](https://nodejs.org/en/download/)
- [MongoDB](https://www.mongodb.org/downloads)
- [Redis](https://redis.io/download)
- [ffmpeg](https://www.ffmpeg.org/download.html)See instructions on installing these prerequisites for both [OS X](https://github.com/mayeaux/nodetube/wiki/Installation-Instructions---OS-X) and [Linux](https://github.com/mayeaux/nodetube/wiki/Installation-Instructions---Linux). There are also [Docker](https://github.com/mayeaux/nodetube/wiki/Docker) instructions if that's your thing.
Once Prerequisites Are Installed
---------------Now that the prerequisites are ready to go it's a few simple commands to get your instance up and running.
```bash
# Get the latest version of NodeTube
git clone https://github.com/mayeaux/nodetube# Enter the nodetube folder that was just created
cd nodetube# Install Node modules
npm install# Then simply start your app
npm start#If you're developing locally, you can boot the app with nodemon with:
npm run dev
```And that's it! Your first user registered will automatically be an admin user and you will be able to see the admin and moderation functionality. Each additional user will be a regular user and will be able to upload video, audio or images up to 500MB.
For ease of local development I recommend using [Nodemon](https://github.com/remy/nodemon) to automatically restart the app while working on backend code.
### Using ngrok
NodeTube comes with [ngrok](https://ngrok.com) preinstalled with the setting in `.env.settings` to run for new instances automatically. This means that when you boot the app you will see a log come through with a link where you can access the app from the ngrok subdomain. Great you're live on the internet, that was simple!## Technical Details
NodeTube is an Express application powered by NodeJS, with MongoDB as a database, with Redis for caching and `ffmpeg` for converting and compressing video content. It uses Pug as a templating engine and loads process variables through the `.env.settings` and `.env.private` files.
NodeTube uses `resumable.js` on the frontend as a library to allow stable and resumable uploads allowing for the upload process to not be broken during a system reboot.
NodeTube has the functionality to act as an authentication app for an nginx-rtmp server which allows NodeTube to facilitate livestreaming. NodeTube also has a built in livestreaming frontend with a live chat, live viewer count and which uses [hls.js](https://github.com/video-dev/hls.js/) to stream the files being created by [nginx-rtmp](https://github.com/arut/nginx-rtmp-module)
[This section is being expanded rapidly so please Watch this repo so you can easily see when more documentation is available]
## Reasons To Use NodeTube
### Reasons to use NodeTube as an Instance Host:
- Built in monetization for instance administrators: Users can optionally pay a monthly fee through Stripe to gain certain privileges which are able to be adjusted by the administrator but by default allow private and unlisted uploads, an increased maximum file-size limit from 500MB to 2GB, and livestreaming capabilities
- You can run an instance either with a cloud provider, a VPS or dedicated server or even locally using a built-in `ngrok` integration.
- Follow a few short steps and get setup on top of cloud providers and run for pennies a day with built-in Heroku and BackBlaze integrations, even with little technical knowledge
- Own your own data: data is happier when it's not in the hands of a multi-billion dollar corporation and plus Google knows enough about us already
- Built in features to get you started on Day 1 including moderation abilities, built-in analytics, administration interface, built-in reCAPTCHA
- Support open-source software, help decentralize and open the internet.
- Improve your software and server administration skills
- Build and foster a community### Reasons to use NodeTube as a Free User:
- No email necessary for registration. Optionally add an email to have password recovery functionality
- No ads
- Not tracked by a multibillion dollar corporation
- Public IP stays private, unlike some other YouTube alts
- Upload all forms of content (video, audio, image)
- 500 MB max upload size
- Able to load your account with credit and support creators directly [Note: This functionality exists in the NodeTube source tube but finding a payment processor to support this/legal implications are more difficult to pull off in practice.]
- Support open-source software, help decentralize and open the internet.
- Engage with and help grow a community### Reasons To Use NodeTube as a Paid User:
- Ability to monetize your account and be paid directly by the instance users [Note: This functionality exists in the NodeTube source tube but finding a payment processor to support this/legal implications are more difficult to pull off in practice.]
- Larger upload size, up to 2GB
- Private and unlisted uploads
- Livestreaming
- Plus Badge to show your support
- Support open-source software with your hard earned money, helping out in a big way to decentralize and open the internet
- Allow others to receive the benefits of using NodeTube as a free user including not being tracked by a multibillion dollar corporation and receiving their media ad free## Additional Info
You may also be interested in [videodownloader](https://github.com/mayeaux/videodownloader), a video downloader that supports 110 websites and is powered by Electron and youtube-dl.
Don't forget to join the open-source community developing NodeTube on [Discord](https://discord.gg/ejGah8H), [Riot.im](https://riot.im/app/#/room/#nodetube:matrix.org) and [Reddit](https://reddit.com/r/nodetube)
## Live NodeTube Instances
Domain | Registrations Open | Ratings Allowed
:---: | :---: | :---:
https://newtube.app | Yes | SFW Only
https://allwat.ch| Yes | SFW/NSFW/SensitiveLicense
-------Licensed under the [MIT License](LICENSE.md). © NodeTube Organization