{"id":13403231,"url":"https://github.com/mayeaux/nodetube","last_synced_at":"2025-05-15T08:08:38.639Z","repository":{"id":38108824,"uuid":"129958568","full_name":"mayeaux/nodetube","owner":"mayeaux","description":"Open-source YouTube alternative that offers video, audio and image uploads, livestreaming and built-in monetization","archived":false,"fork":false,"pushed_at":"2023-01-24T11:03:09.000Z","size":9361,"stargazers_count":2349,"open_issues_count":172,"forks_count":264,"subscribers_count":63,"default_branch":"master","last_synced_at":"2025-04-07T03:12:03.802Z","etag":null,"topics":["alternative","audio-streaming","image-hosting","livestreaming","monetization","video-streaming","youtube"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mayeaux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://newtube.app/donate"]}},"created_at":"2018-04-17T20:04:25.000Z","updated_at":"2025-04-01T23:29:38.000Z","dependencies_parsed_at":"2023-01-31T14:45:21.639Z","dependency_job_id":null,"html_url":"https://github.com/mayeaux/nodetube","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayeaux%2Fnodetube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayeaux%2Fnodetube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayeaux%2Fnodetube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayeaux%2Fnodetube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mayeaux","download_url":"https://codeload.github.com/mayeaux/nodetube/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248871122,"owners_count":21175156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alternative","audio-streaming","image-hosting","livestreaming","monetization","video-streaming","youtube"],"created_at":"2024-07-30T19:01:27.119Z","updated_at":"2025-04-14T11:28:12.364Z","avatar_url":"https://github.com/mayeaux.png","language":"JavaScript","funding_links":["https://newtube.app/donate"],"categories":["JavaScript","Resources","HarmonyOS","Infrastructure \u0026 Delivery"],"sub_categories":["[Youtube](https://youtube.com)","Windows Manager"],"readme":"# NodeTube\nNodeTube is an open-source YouTube alt that offers video, audio and image uploads, livestreaming and built-in monetization\n\nA live NodeTube instance is available to interact with at [https://newtube.app](https://newtube.app)\n\nYou 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)\n\n\u003cbr\u003e\n\n\u003ca href=\"https://newtube.app\" /\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/7200471/73618225-630e5d80-45e3-11ea-8772-9f10f5b9ef16.png\" width=\"800\" \u003e\n\n## Get Your Instance Running:\n\nYou can get an instance up instantly using one-click deployment with Heroku below:\n\n[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/mayeaux/nodetube)\n\n## Running On Your Local Computer\n\n### Required Software\n- [Node.js 10.x+](https://nodejs.org/en/download/)\n- [MongoDB](https://www.mongodb.org/downloads)\n- [Redis](https://redis.io/download)\n- [ffmpeg](https://www.ffmpeg.org/download.html)\n\nSee 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.\n\nOnce Prerequisites Are Installed\n---------------\n\nNow that the prerequisites are ready to go it's a few simple commands to get your instance up and running.\n\n```bash\n# Get the latest version of NodeTube\ngit clone https://github.com/mayeaux/nodetube\n\n# Enter the nodetube folder that was just created\ncd nodetube\n\n# Install Node modules\nnpm install\n\n# Then simply start your app\nnpm start\n\n#If you're developing locally, you can boot the app with nodemon with:\nnpm run dev\n```\n\nAnd 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.\n\nFor ease of local development I recommend using [Nodemon](https://github.com/remy/nodemon) to automatically restart the app while working on backend code.\n\n### Using ngrok\nNodeTube 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!\n\n## Technical Details\n\nNodeTube 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.\n\nNodeTube 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.\n\nNodeTube 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)\n\n\n[This section is being expanded rapidly so please Watch this repo so you can easily see when more documentation is available]\n\n## Reasons To Use NodeTube\n### Reasons to use NodeTube as an Instance Host:\n- 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\n- You can run an instance either with a cloud provider, a VPS or dedicated server or even locally using a built-in `ngrok` integration.\n- 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\n- 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\n- Built in features to get you started on Day 1 including moderation abilities, built-in analytics, administration interface, built-in reCAPTCHA\n- Support open-source software, help decentralize and open the internet.\n- Improve your software and server administration skills\n- Build and foster a community\n\n### Reasons to use NodeTube as a Free User:\n- No email necessary for registration. Optionally add an email to have password recovery functionality\n- No ads\n- Not tracked by a multibillion dollar corporation\n- Public IP stays private, unlike some other YouTube alts\n- Upload all forms of content (video, audio, image)\n- 500 MB max upload size\n- 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.]\n- Support open-source software, help decentralize and open the internet.\n- Engage with and help grow a community\n\n### Reasons To Use NodeTube as a Paid User:\n- 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.]\n- Larger upload size, up to 2GB\n- Private and unlisted uploads\n- Livestreaming\n- Plus Badge to show your support\n- Support open-source software with your hard earned money, helping out in a big way to decentralize and open the internet\n- 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\n\n## Additional Info\n\nYou 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.\n\nDon'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)\n\n## Live NodeTube Instances\n\nDomain | Registrations Open | Ratings Allowed \n:---: | :---: | :---: \nhttps://newtube.app | Yes | SFW Only\nhttps://allwat.ch| Yes | SFW/NSFW/Sensitive\n\n\nLicense\n-------\n\nLicensed under the [MIT License](LICENSE.md). \u0026copy; NodeTube Organization\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayeaux%2Fnodetube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmayeaux%2Fnodetube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayeaux%2Fnodetube/lists"}