An open source video sharing app with recommendations, transcoding and more
An open source video sharing app with recommendations, transcoding and more
I updated my video sharing app!
In this update I polished code, started work on an iOS app and added suggested videos in the view video page!
Please check my previous ship message and devlogs for more details :)
Spent some time polishing things, and working on docker images, for a move to another server
If you spot anything that needs polishing - please let me know!
Log in to leave a comment
Log in to leave a comment
I started working on an iOS app using swift!
This is my first time ever using swift, so it took quite a while.
Initially I tried using NativeScript Svelte, then React Native. Its pretty hard to get gRPC working with them, needing a proxy or something for the gRPC server, so I switched to swift instead.
Xcode (Apples IDE) doesn’t run on linux, so I had to install xtool and vscode/zed. I have to rebuild everytime I make a change, and the builds are pretty slow, but Swift is a really nice language and I may use it in the future
Log in to leave a comment
I built Watchtower, a Youtube clone. It is entirely self hostable.
I worked on it for over 92 hours before I found out about Flavortown.
As of now, I have coded over 44 hours worth of updates!
Note: Live streams and uploading videos are disabled in the demo. I do not have a GPU server, so videos would take days to process and analyse. Live streams would probably blow up the laptop I’m hosting everything on. You can still live chat though
I built a tool called devman specifically for this. It allows you to run multiple services from a configuration file. Each services can wait for other services to be online, so programs do not crash if something not up yet.
You can check it out on Codeberg
Log in to leave a comment
I rewrote the video analyzer (NSFW detection) from Go to TypeScript, because the go package used for NSFW broke.
It might be slower, but at least it works
Can’t really have many screenshots for this update…
I also reduced the amount of things you need to install by using go tools,
where instead of installing the binary I run go get -tool and call it using go tool
More work for me, less work for someone trying to set this up themselves.
I also reinstalled my OS 2 times, so thats why this update took a while
You can view the changes on Codeberg
Log in to leave a comment
I added chats to live streams! (you can chat even when the stream is offline
This was implemented using websockets (this is like the 8th microservice)
I made it so scrolling pauses the chat, so you can read messages.
The colour of the usernames are based on the hash of your username, I should probably let you pick a colour though.
Log in to leave a comment
I fixed live streams by writing a proxy to the stream server
Also did a few bug fixes
View The Changes
Replaced dropzone.js with a custom upload script, so uploading matches the theme better
(4h of work because everything decided to break)
(ps don’t use RustFS, it is buggy and vibecoded)
Log in to leave a comment
Added a live indicator to profile pages
Log in to leave a comment
Log in to leave a comment
I added trending, and did a few other things, like improving security, working on a demo environment, improving code, fixing a bug and cleaning up processed thumbnails
Log in to leave a comment
I added view counter (a view counts once every six hours per users) and refactored the code!
View Changes
Log in to leave a comment
I added an admin dashboard with user/video count analytics.
(I spent a lot of time perfecting how the graph looks)
View the change
Log in to leave a comment
Improved UX by redirecting back to profile page after deleting a video (with a refresh) so deleted videos don’t show after deletion
Also changed some endpoints to use proper http semantics
Log in to leave a comment
I hid private/unprocessed videos in the recommended feed
Also had problems with atlas migrations which took hours to fix :)
Log in to leave a comment
I added a most popular sort option to the homepage of WatchTower.
I am planning to add a trending option as well.
I should probably remove some of the duplicated logic though and replace /videos/latest and /videos/popular with /videos/{sort_type}
Log in to leave a comment
I added a “latest” sort option to my video sharing platform
I also fixed a bug where usernames wouldn’t show on recommended videos
Next up is sorting by popularity
Log in to leave a comment