Hello,
I'm serving videos to authenticated users in one of my projects. For this, I first tried to use Xdata server entirely, but XData server is not exactly the appropriate method for this job. I do this as follows:
User submits authentication and video filename to a function (GetVideoURL) on Xdata server. After Xdata server authentication, it creates a "presigned URL" for the video file stored in a private storage on Amazon S3 or Google Storage. The "presigned URL" created is valid only for a certain period of time. Web Core assigns this result (presigned URL) obtained from GetVideoURL function to video src.
Thus, XData server only performs the task of authentication and generating presigned URL. The video file is served by Amazon or Google servers.
When the browser video src is assigned, it can send multiple requests to the server depending on the situation (video preload attribute etc.). This may be because of pulling "metadata" information about the video. In order to meet this, the Xdata server needs to understand the incoming method options and header parameters and serve accordingly, but Xdata is not optimized for this.
I hope this experience helps some.