peertube-plugin-hive-tube v8.8.7
Hive-Tube
THE FOSS, SELF-HOSTED ALTERNATIVE TO STREAMING PLATFORMS LIKE YOUTUBE AND SPOTIFY The Hive-Tube server plugin monetizes & massively syndicates any streaming media via the Hive and Fediverse networks, plus Certified Open RSS. Stream whatever you want, P2P (even 4K Livestreams). No more worries of shadow-bans, account deletion, demonetization or fees. Reach new audiences and earn more.
Hive-Tube Plugin Installation (for Site Host Administrators)
To install the Hive-Tube plugin, just securely login to your Peertube site as an administrator, such as "root". Then go to Administration -> Plugins/Themes, search for the "Hive" keyword and click "Install".
Hive-Tube plugin Settings
HiveSigner account
You can leave the "tdvsigner" username/value in this field if you want to, or remove the value from that field entirely. If there is a Hive username in that field, then the HiveSigner login choice will appear on your site's login page.
If your site imports a LOT of audios/videos/podcasts from sites such as Youtube, Odysee, Bitchute, Captivate, Podbean, Spotify, etc then those sites may try to limit the content that you scrape from them, or block your server entirely. To get around that, you can use Tor on your server and configure its address/ports/pwd etc in the Hive-Tube settings screen.
Peertube configuration (for System Administrators)
Raise the client_max_body_size on nginx to prevent possible 413 http errors:
Remove the 100k restriction from the Peertube nginx (as nginx uses 1m as default) https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L67
Change the other nginx parameter (server shared between multiple hosts) raising from 1m default to 12g as it is the max used on the Peertube nginx https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube#L95
Plugin Installation (for Developers)
These instructions are only for Devs that want to evolve and build the Hive-Tube plugin working on source code.
- Requirements
System must have git and nodejs installed to install and use the plugin
- Clone repo
To install the plugin on your Peertube site, you must first pull the repo
git clone 'repository_url'
- Use suggested node version (if needed, install nvm)
nvm use
- Install the node.js dependencies In the plugin directory run
npm install
- Compile the plugin with webpack In the plugin directory run
npm run build
- Install peertube client tools:
npm install -g @peertube/peertube-cli
- Configure peertube client tools (change the Peertube url and credentials):
peertube-cli auth add -u 'http://peertubeurl' -U 'root' --password 'rootpwd'
- Install the plugin:
peertube-cli plugins install --path /path/to/peertube/plugin
Develop the plugin locally
Copy firstTime-buildAndDeploy.template.sh to firstTime-buildAndDeploy.sh and buildAndDeploy.template.sh to buildAndDeploy.sh.
Edit the plugin code and run the shell files to install first time or update in a clean way.
Install plugin if Peertube is running inside a docker container
- Build plugin locally
npm run build
- Copy the entire folder to the server. For example, to:
/opt/peertube/docker-volume/plugins-src/peertube-plugin-hive-tube/
- Install/update/uninstall plugin (reloading the Peertube docker container):
Uninstall:
docker-compose exec -T --user peertube peertube npm run plugin:uninstall -- --npm-name peertube-plugin-hive-tube
Fresh install:
docker-compose exec -T --user peertube peertube npm run plugin:install -- --plugin-path /plugins-src/peertube-plugin-hive-tube && docker restart peertube_peertube_1
Update:
docker-compose exec -T --user peertube peertube npm run plugin:uninstall -- --npm-name peertube-plugin-hive-tube
docker-compose exec -T --user peertube peertube npm run plugin:install -- --plugin-path /plugins-src/peertube-plugin-hive-tube && docker restart peertube_peertube_1
Forced update and global plugin refresh:
This procedure was needed to upgrade for example the "@hiveio/hive-js" dependency from version 1.x to version 2.x. It was needed because somehow the Peertube plugins cache wasn't correctly cleaning up and updating.
If Peertube is running in dev mode:
- Uninstall all plugins
- Remove all contents of folder storage/plugins under Peertube folder (if data folder is not empty, please stop and check)
- Reinstall all the plugins and the new Hive one with updated libraries
If Peertube is running under docker (and new plugin version install fails):
- Uninstall all plugins
- Remove all contents of docker volume folder /data/plugins mapped to the Peertube storage/plugins folder
- Reinstall all plugins and the new Hive one
Focus on folder storage/plugins:
- In a local installation, it's under PEERTUBE_HOME/storage/plugins
- Into usual docker container setup, it's inside peertube container under /data/plugins
- Contents are data/, node_modules/, package.json, yarn.lock
- mapping is confirmed from original docker-compose yaml: https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/docker-compose.yml#L24
Peertube upgrade notes:
When upgrading to Peertube 3.4, we encountered an issue with the ui not updating.
We solved it by detaching the docker container from all persistence storage.
Peertube 4.1.1 special install flow:
There is a bug in the Peertube client tools: https://github.com/Chocobozzz/PeerTube/issues/4858
So we have to follow a special flow to install Peertube and build the client tools correctly (pull full repository, switch to 4.1.1 tag, and apply the fix as suggested from mantainer):
git clone https://github.com/Chocobozzz/PeerTube
git checkout tags/v4.1.1
git cherry-pick 74220db
and from now you can follow normal flow:
configure config/production.yaml
yarn
yarn build
yarn setup:cli
Debug flag:
If you append the param fEE with value fEmH to querystring you enable special features in these pages:
- Library: add buttons to manually bind Hive to a video (admins only)
- About: show multi precision transfers, to monitor simulation rates
Utils
imageUtil.sh
You can use this small script to update Peertube native images using all the images you put in a source folder, using correct Peertube folders tree.
imageUtil.sh sourceFolder destPeertubeFolder backupFolder
Original images are saved into backupFolder. destPeertubeFolder is into peertube main instance, usually client/dist/assets
Apply Peertube Patches
Into the peertube-patches folder there are some patches needed for specific PeerTube version. To apply:
- clone the desired PeerTube version
- apply the patch inside the PeerTube folder with this command:
git apply x.y.z-patch-name.patch
- build and run PeerTube as usual
Podcast improvements
You can use this patch with version 5.2.0 of Peertube to improve compatibility with PSP and ITunes rss podcast standards
5.2.0_podcast-fixes.patch
Podcast improvements and block Peertube rss for fixed channel id
You can use these patches with version 5.2.0 of Peertube to improve compatibility with PSP and ITunes rss podcast standards and block for a fixed video channel id (written inside patch) the generation of Peertube RSS
5.2.0_podcast-fixes-exclude-channel.patch
5.2.0_podcast-fixes-v2-exclude-channel.patch
5.2.0_podcast-fixes-v3-exclude-channel.patch
Podcast improvements and block Peertube rss with dynamic channel id
You can use this patch with version 5.2.0 of Peertube to improve compatibility with PSP and ITunes rss podcast standards and block rss for video channels with rss generation disabled into channel edit page
5.2.0_podcast-fixes-v4.patch
Podcast improvements and block Peertube rss with dynamic channel id
You can use this patch with version 5.2.0 of Peertube to improve compatibility with PSP and ITunes rss podcast standards and block rss for video channels with rss generation disabled into channel edit page (handle generator and detect if Hive-Tube is installed)
5.2.0_podcast-fixes-v5.patch
Podcast improvements and block Peertube rss with dynamic channel id (rss account fix)
You can use this patch with version 5.2.0 of Peertube to improve compatibility with PSP and ITunes rss podcast standards and block rss for video channels with rss generation disabled into channel edit page (handle generator and detect if Hive-Tube is installed)
5.2.0_podcast-fixes-v6.patch
You can use this patch with version 6.0.3 of Peertube to improve compatibility with PSP and ITunes rss podcast standards and block rss for video channels with rss generation disabled into channel edit page (handle generator and detect if Hive-Tube is installed)
6.0.3_podcast-fixes-v1.patch
Podcast improvements and magnet link, block Peertube rss with dynamic channel id
You can use this patch with version 6.0.3 of Peertube to improve compatibility with PSP and ITunes rss podcast standards and block rss for video channels with rss generation disabled into channel edit page (handle generator and detect if Hive-Tube is installed)
6.0.3_podcast-fixes-v2.patch
Podcast improvements and magnet link, block Peertube rss with dynamic channel id, fix explicit format
You can use this patch with version 6.0.3 of Peertube to improve compatibility with PSP and ITunes rss podcast standards and block rss for video channels with rss generation disabled into channel edit page (handle generator and detect if Hive-Tube is installed)
6.0.3_podcast-fixes-v3.patch
4 days ago
4 days ago
22 days ago
25 days ago
1 month ago
1 month ago
2 months ago
2 months ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
5 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
5 months ago
8 months ago
8 months ago
8 months ago
7 months ago
11 months ago
11 months ago
11 months ago
11 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
12 months ago
11 months ago
12 months ago
12 months ago
10 months ago
10 months ago
12 months ago
10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
12 months ago
9 months ago
9 months ago
10 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
12 months ago
1 year ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago