Adding remote video support to the Grayjay peertube Plugin
Nov 02 2023
Correction I originally wrote that Grayjay was FOSS, this isn’t true. Grayjay is simply source-available, even if the plugins actually are licensed under the GPL.
Grayjay appears to be intended to be a one-stop-shop for all of one’s digital consumption needs. It has support for YouTube, Rumble, Odysee, and others, but what got my attention was the PeerTube support.
I still don’t quite understand how plugins work under the hood. It seems that they inherit functionality from classes that provide standard interfaces for the client to use. Essentially the goal seems to be that every platform can be abstracted in the form of a plugin.
Switching from Synapse to Dendrite was always inevitable. I had dragged my feet on it largely due to an if it ain’t broke, don’t fix it mentality. The challenge was that eventually it did break. Somewhere between Synapse 1.8 and 1.9 I was unable to update without getting DB errors. I had tried a query based off someone having similar issues, but when the issue reappeared, it was for a different relation in the synapse db. This was when I decided to throw the towel and start fresh. Up until this time, my matrix instance has really only been for me and immediate family, and this was bound to happen because at the time of writing, you can’t migrate to dendrite and keep your messages.
I was wrong! if you migrate your videos with rclone you can seamlessly update the video location on PeerTube by changing the base_url parameter in your production.yaml file.
streaming_playlists:
bucket_name: 'streaming-playlists'# Allows setting all buckets to the same value but with a different prefixprefix: '' # Example: 'streaming-playlists:'# Base url for object URL generation, scheme and host will be replaced by this URL# Useful when you want to use a CDN/external proxybase_url: '' # Example: 'https://mirror.example.com'# CHANGE THIS# Same settings but for webtorrent videosvideos:
bucket_name: 'videos'prefix: ''base_url: ''#and this too!
Object storage Troubles
I’ve spent some time experimenting with S3 / Object Storage for public content.
I’ve found it useful for things like fediverse attachments & PeerTube videos.
Ensure you’ve got PeerTube setup.
From your peertube directory (or docker volume) you’ll want to update your config/local-production.json / config/localproduction.yaml file.
NOTE:At the time of writing, Updating your server configuration from themanagementconsole will ERASE your settings.
This means you’ll want to make sure to back up your settings so you can copy over your changes when needed.
I’ve moved many of my self-hosted services away from the pi-server to a proper deskstop. The primary motivation was to get more CPU for PeerTube hosted at peertube.libresolutions.network
The programmer can now access the machine behind the firewall by connecting to a different machine on the internet at a specific port that forwards ssh to the machine behind the firewall. This command has to be run from the internal network, or in this case the machine we want to grant access to from the outside.