I guess I’ll join the Devember hype, since Wendell and the gang keep badgering us about it on the news…
Real quick about me, I’ve been working as a software engineer for around 10 years now. For most of my career, I’ve been a one-man-team full stack software engineer, creating utilities for various Norwegian internet service providers. I currently work as a test automation engineer and network orchestration engineer at nordic/european telecom provider (I play with Cisco NSO, Jenkins and Robot Framework, if that means anything to you ). In my free time I tinker with personal coding projects, polish my home automation setup, build computers and play video games.
I few months ago I made a quick and simple self-hosted clip sharing application to share gaming clips with a few friends. My motivations were:
- Uploading to YouTube or Streamable takes a long time and destroys the quality of my clips
- Uploading to Dropbox and sending links is inconvenient for my friends, as they have to download the entire clip before watching it, which can take a looooong time from Dropbox
- I want to be able to save a clip and immediately send a link to somebody. That link should let my friend immediately stream it in full quality directly from my clip folder.
I made a quick application using Next.js that does this, and it works fantastically! However, the only form of security is currently a NGINX reverse proxy with an ACL, and there are some features that are missing for this to be generally useful to other people.
Here’s a quick overview of the current functionality:
- Runs in a Docker container with my clips folder mounted
- When a user opens the application in a browser all the clips are listed, sorted by file name, with file size and creation date of the file
- When a clip is clicked, a player view opens and plays the clip using a HTML5 video element. The clip is played as-is without any conversion or compression. I use this to share 30-40 Mbps clips (5120x1440 at 120 fps) and they play perfectly, buttery smooth. This is not possible using services like YouTube or Streamable.
The entire user interface can be summarized from these two screenshots:
(Yes I called the project “Clippy Mc. Clipface”, or “Clipface” for short, and yes I game at 32:9 aspect ratio)
I’m guessing there must be other nerds out there that want a quick and convenient (and self-hosted) way to share clips with their friends, and to that end, Clipface is going to need some more features, which is what I aim to do during Devember:
Here are the features that I’ve identified that would need to be implemented for a proper “version 1.0” of the project:
- Authentication for viewing clips - I’m thinking a simple password should suffice here. This would remove the need to maintain an ACL or HTTP basic authentication on a reverse proxy.
- The ability to upload (drag-and-drop), rename and delete clips. Currently I add clips by saving them directly to the clips folder using a network share.
- Authentication for administration features (as listed above)
- Add filter box to search for specific clips
- Add a convenient “Copy link” button to the clip list page and the view clip page
This is what I’m aiming to do during Devember.
Here is the current code: https://github.com/Hubro/clipface
Is this project something anybody else would be interested in using? If so, which features would you like to see?