SOYO : Built a website to stream content over local network

Hey every1

Kinda ran out of storage in my phone while watching anime, so I built SOYO (Stream Own Your Own)!

Basically, it turns my laptop into a local server so I can stream my personal media (like anime) over Wi-Fi. No cloud, no uploads—just stream directly from my laptop to any device on the same network.

What SOYO does:

  • lets you stream your media collection (anime, movies, whatever) straight from your local drive.
  • Works across your local network on any device.
  • Has a clean and simple UI.

What I used to build it:

  • Next.js for the website.
  • Tailwind CSS to make it look nice.
  • Node.js and file system APIs for all the backend stuff.

Check it out here: fal3n-4ngel/Soyo

Would love to know what you think. And hey, if you like it, dropping a :+1: would mean a lot!

Nice, was thinking of using Jellyfin for home streaming, any reason you decided to create your own solution instead of going for something like Jellyfin?

River said:
Nice, was thinking of using Jellyfin for home streaming, any reason you decided to create your own solution instead of going for something like Jellyfin?

Jellyfin uses more resources and all, for simply streaming files without affecting my PC, a Node server is better. So decided to make this.
Also having exams this week, so I get overly productive doing everything except studying.

@Chen
Understandable lol.

@Chen
>Jellyfin uses more resources and all

Does it use significantly more though? Don’t get me wrong, I’m all for building something just to see if I can. But Jellyfin will run on almost anything, assuming you don’t need to transcode. Years ago I tried it headless on a RPi2 and it was fine for very light direct streaming usage.

Looks good!
As a continuation of the project, you could look into adding Dockerfile and examples of how to set SOYO up in a container + a persistent Volume folder.

Nico said:
Looks good!
As a continuation of the project, you could look into adding Dockerfile and examples of how to set SOYO up in a container + a persistent Volume folder.

Okii, I’ll look into it! But is Docker really necessary? Since it’s a Node.js site, it runs on all platforms, and using a container might make it harder to share files from external drives.

edit :
I am not sure why I am getting down votes but isn’t my approach correct?

@Chen
I mean, it would be nice to be able to set it all up via a docker image in order to skip downloading and setting up the project. Just run docker and everyone has the same environment to run the project, which gives you some cool things you can do. You just need to reverse proxy or just give docker access to the network.

Other than that, really cool idea! Keep up the great work.

@Whitney
Wouldn’t it be harder to set up for a non-technical person?
Like setup network access for docker, allow external storage permission and all?

Haven’t used docker much other than basic containerization so I’m not really familiar with the methods.
But sure will look into it and update the projects.
Thanks for explaining it to me!

@Chen
I agree.

If that’s your consideration (and it should be as devs aren’t your target audience), then go the opposite direction.

Make this installable or wrap it in something like Electron.

@Chen
I would argue it would be just as hard for a non-technical person to do an npm install and to run the project, but mileage may vary person to person. You can just point to any folder from docker and that can be changed via settings on the front end. Plus then you don’t need to worry about different platforms like OS, Windows and Linux which all have their own quirks. Get the folder from OS, serve it via Docker and Bob’s your uncle.

@Whitney
Sounds fair, so yeah will work on it. Gotta change the file fetching a method a bit for that, will try to add Google Drive support too, if possible.

Chen said:
@Whitney
Sounds fair, so yeah will work on it. Gotta change the file fetching a method a bit for that, will try to add Google Drive support too, if possible.

In my experience, there’s very little that is not possible :muscle: Good luck!

@Chen
>Wouldn’t it be harder to set up for a non-technical person like setup network access for Docker?

I would also argue that a person wanting to set up a local streaming service would have some level of technical proficiency. At minimum, they would have a desire to learn.

Docker allows you to “standardize” your configuration so that there is “the one (approved) way” to set up the system. Moreover, it is executable. Meaning, the user can run the “standard” and have an out-of-the-box “best practices” configured system as a starting point. Leaving less room for user error.

@Chen
If someone wants Docker, they should be more than technical enough to handle that implementation on their own!

@Chen
I would argue that Docker is even easier to set up for non-technical people. Installing Docker with default settings is pretty easy. And afterwards, it’s mostly just a “docker run” with some arguments if the image is set up properly.

Network access is as easy as specifying which ports need to be open (Docker handles firewall on its own if you have a standard setup, which non-technical people probably have) and permissions should also be set up properly through the image mostly. Same with mounting storage (external or internal drive doesn’t matter) as long as the user can copy-paste the path.

@Whitney
>Wouldn’t it be harder to set up for a non-technical person?

I would argue that a person wanting to set up a local streaming service would have some level of technical proficiency. At minimum, they would have a desire to learn.

Docker allows you to “standardize” your configuration so that there is “the one (approved) way” to set up the system. Moreover, it is executable. Meaning, the user can run the “standard” and have an out-of-the-box “best practices” configured system as a starting point. Leaving less room for user error.

@Chen
> But is Docker really necessary?

I’m not downvoting you, but most people (myself included) consider Docker to be a requirement. I don’t ship anything bare metal, ever. Again not really sure why you’re getting downvoted and it’s your project, you don’t have to do it if you don’t want to.

@Owen
Yeah I am kind of a newbie in this field and haven’t used Docker much.
But since a few others like @Archikus mentioned the same, I will look into Docker and update it.

@Chen
Container images have become the standard way to distribute server-side software, and unfortunately, you’re getting downvoted because you maybe don’t know that.

A lack of a container build would be a bad sign to me, perhaps signifying that the author is inexperienced and therefore implying something about the quality of the software.

Not saying any of that is true here, but given only that information, I would assume it was badly written, or pre-alpha in its development.