Media Streaming With Sia: Jellyfin

Skunk_Ink
The Sia Blog
Published in
7 min readFeb 2, 2024

--

What Is Jellyfin

Jellyfin stands out as a free, open-source media server, offering a compelling alternative to proprietary platforms like Emby and Plex. It’s designed to give you complete control over organizing, managing, and streaming your media collection, which includes movies, TV shows, music, and photos. Its client/server model ensures cross-platform compatibility, enabling access to various devices, including desktops, smartphones, and smart TVs. The main allure of setting up Jellyfin is the autonomy it offers: you have full control over your media, free from hidden fees or data tracking. Its user-friendly interface and robust community support make it highly customizable and continuously evolving. Jellyfin is ideal for creating a personal media hub, akin to having your own private Netflix, where your entire media library is organized and easily streamable to your chosen devices anywhere in the world. This combination of features makes Jellyfin not just a media server but a customizable, privacy-respecting solution that adapts to your growing media needs.

Why Sia?

Sia has been at the cutting edge of decentralized storage technology for nearly a decade. Its platform offers a secure, performant, affordable way to store data on a decentralized cloud. Unlike traditional cloud storage solutions that rely on centralized data centers, Sia leverages peer-to-peer technology to create a distributed and decentralized network. This network comprises many individual nodes, each offering a portion of their unused storage space to the network. This combination of low cost, security, and robustness makes Sia the ideal solution for streaming large media collections.

Things you will need

Software:

  • renterdrenterd is the next-generation Sia renter, which will function as a gateway to the Sia storage backend. With its powerful and user-friendly UI, we will use renterd to interface with the Sia network to store and retrieve our media files.
  • rclone — Rclone is a command-line program for managing files on cloud storage, supporting over 70 cloud storage products, including S3 object stores. Rclone will be used to integrate renterd with Jellyfin, facilitating the transfer and management of media files between the Sia network and the Jellyfin server.
  • Jellyfin — Jellyfin is a volunteer-built media solution that gives users control over their media content. Serving as the front-end media system, Jellyfin will allow us to stream and manage our media collection stored on the Sia network.
  • Caddy Server (Optional) — Caddy sports a flexible and powerful HTTP reverse proxy, an on-line configuration API, and a robust, production-ready static file server, and it serves all sites over HTTPS by default with automagic TLS certificates.

Recommended System Requirements:

Processor: A modern quad-core processor (Intel i5/i7 or equivalent AMD processor) or better.

Memory: 16GB of RAM or more if handling high-quality media or numerous streams.

Storage: SSD for the operating system and applications, with additional HDD or SSD storage for cached media files, depending on collection size.

Network: Stable, high-speed internet connection for effective streaming and data transfers.

Operating System:

  • Windows 10 or later
  • MacOS 12 or later
  • Linux (Ubuntu, Debian, Fedora, CentOS, etc)

Step 1: Setting up renterd

Download and install renterd.

Make sure that you have enabled S3 in your renterd.yml. If done correctly, it should look similar to the following:

seed: your seed phrase goes here
http:
password: your_password
autopilot:
heartbeat: 5m
s3:
enabled: true
disableAuth: false
address: "localhost:9985"
keypairsV4:
your_access_key: your_private_key

⚠️ your_access_key must be at least 16-characters long, and your_private_key must be at least 40-characters long

Once you have renterd set up, you can access the web UI in your browser by visiting https://localhost:9980.

Before setting up rclone, you must first finish configuring renterd by following the on-screen setup wizard. If you need further help with this step, you can reach out on Discord.

Step 2: Setting up rclone

Install rclone and configure a new S3 remote using renterd for your storage backend.

⚠️ It is recommended to keep your media sorted under its own private bucket. This will help keep any unwanted media from being accidentally shared. For simplicity of this guide, I will be using the /default bucket.

Step 3: Upload Media

Once your renterd remote is mounted on your system, you can begin uploading media. For the best experience, following the Jellyfin naming and sorting conventions is recommended. Doing so will help Jellyfin automatically obtain detailed metadata from various online databases. This includes cover art, media description, date, rating, related media, etc.

⚠️ If you have Upload Packing turned on under your renterd configuration tab, some files may not be available right away. With Upload Packing enabled, renterd will not upload files until there is enough data to fill an entire slab. This is to improve the cost efficiency of uploading data to the Sia network. If you do not see all of your files available, this could be the reason.

Below is an example of a properly structured file system following Jellyfin’s TV Shows and Movies standards.

Step 4: Setting up Jellyfin

Download and install Jellyfin for your system.

Once you have installed the Jellyfin Server for your system, you can visit http://localhost:8096 in your browser and follow the onscreen setup wizard to complete setting up your Jellyfin Server. Select your preferred display language and click “Next”.

Create a Username and Password, then click “Next”.

On the next screen, you will be asked to set up your media libraries. Since this guide uses two media types in our renterd bucket, TV Shows and movies, we will create a separate library for each. Click the “Add Media Library” card you see on the screen.

You will next be asked to select a Content type. We will begin by adding our TV Shows first. Select shows from the drop-down menu.

Next, enter a Display name and click the + to add your media.

Enter the folder path to where your TV Shows are stored on your mounted renterd remote and click “Ok”.

Finish configuring the rest of the Library Settings to your preferences, then click “Ok”.

You will now see your TV Shows added to your media libraries. Repeat the process to add your Movies library and any others you might have. Then click “Next”.

Select the Language and Country you would like to use as the default for downloading your library’s metadata. Then click “Next”.

Configure Remote Access to your Server. If you are planning on accessing your libraries from another device on your network, you will need to have Allow remote connections to this server selected. You can then access your libraries using a Jellyfin client and the local IP of your Jellyfin server. Click “Next” when ready.

⚠️ If you would like to access your Jellyfin libraries from outside of your network, you should only do so using a secure HTTPS connection using Caddy Server.

Congratulations! You have completed setting up your Jellyfin server. You can now click “Finish” and log in using the account you created initially.

You should see your libraries and media listed in the menu when you first sign in.

Step 5: Accessing your media collection

Once you have your Jellyfin server up and running, you can access your media collection from any device on your network using one of the available Jellyfin Clients.

After you have installed a Jellyfin client for your device, you will be asked to add a server if one cannot be found.

To add your server, type in your server’s IP address, followed by port 8096.

Next, enter your username and password.

You should now be able to see your media library.

Conclusion

By combining the convenience of Jellyfin’s media center and the low cost of storing data on the Sia network. It is possible to create a low-cost media streaming service from the comfort of your home. What’s more, by configuring a Caddy Server to create a secure HTTPS connection, you can stream your personal media collection from anywhere in the world.

--

--