Read-only video source?

Hi,

I’m a member of the FOSDEM team, and the person who maintains the software stack we use for postprocessing our videos.

FOSDEM releases its videos on video.fosdem.org. This contains (currently) about 1TiB of data that’s synced to a number of mirrors; these mirrors are then used for the actual streaming of the video in question (i.e., if you click on a link on video.f.o, the webserver replies with an HTTP 3xx status code, redirecting you to one of the mirrors instead). We also have a YouTube channel.

A regular request is that we serve our videos on a PeerTube instance.

We have talked to some of the larger PeerTube instances, but they told us that our video archive is just too big for them, and so uploading it to an existing instance seems too complicated.

We could run our own instance, but that has two downsides:

  1. The FOSDEM team goes into hibernation after FOSDEM until it is time to start preparations on the next FOSDEM. Running something interactive, such as PeerTube, which would require us to actively moderate things when the team is in hibernation, would not work very well.
  2. AIUI, making things available to PeerTube requires us to re-upload all our content into a PeerTube instance, which would mean we would need to have twice the bandwidth available (because video.f.o is not going away).

As such, we would rather prefer if it would be possible for us to serve metadata for all our videos in a way that we don’t need to run a full PeerTube instance, and that we don’t need to serve all our content multiple times.

Is this something that Framasoft would be willing to work on?

Failing that, is there a description of the protocol that PeerTube uses to sync between instances available somewhere? If I find the time, and it does not appear to be too complicated, I might be willing to look into writing something like that myself.

I don’t think we have the ressources (only a part-time dev FYI) to cater for such a specific need¹. With the recent addition of custom transcoding profiles though, we tend to relax our approach towards videos resulting from third-party transcoding profiles. But the specific development time remains.

¹: so far we have had a similar request by CCC supporters.

The protocol is called ActivityPub, and we use our own extensions. But maybe contributing that same development time to implementing a circumvention of our transcoding mechanism by specifying a remote video URL as CDN could be done instead, and be simpler for you. This would need prior discussion with @Chocobozzz though.

I was aware of the ActivityPub/Fediverse part of the protocols. Thanks for pointing to the extensions, although I’m not sure I’ll need those.

I guess that what I meant is, what would be the minimum required (ActivityPub is huge) for someone to be able to add something to a PeerTube instance as a video they want to watch, and/or to subscribe? Which parts of the ActivityPub API are so critical that PeerTube just won’t work without it?

We don’t have a writeup of that, nor a tutorial. I’d say having a single actor publishing create activities for video objects would be enough. Dealing with update activities would be good too, as well as supporting webfinger. This is essentially the same a following any AP tutorial and using Video objects instead of Note ones.

EDIT: you would also need a working inbox in order to process Follow activities and send activities to your subscribers, which is probably what you want the most.