Self-hosted · Movies, TV & Music

Your movies and music, played from your own computer.

Obelo finds the movies, shows, and music you already have, sorts them into a library with artwork and descriptions, and plays them on your TV, phone, tablet, or laptop. It runs on a computer in your home, so nobody else is keeping track of what you watch.

  • One program to install
  • No account, no subscription
  • Free and open source
The Obelo web app showing a TV series: artwork, rating and genres, a Play button, the cast, and a season of episodes.

A proper library for the whole household.

Point Obelo at the folder where your files live, open it in a browser, and press play. Here is what happens in between.

Movies, TV, and Music

Keep your movies, shows, and music in separate libraries. A library can gather files from several folders, and you can make as many libraries as you like, say one for the kids and one for everyone else.

It knows what your files are

Obelo works out which movie, episode, or song each file is from its name and folder, and from the tags already inside your music files. It doesn't need the internet to do that, so your library keeps working when your connection is down.

Posters, artwork, and details

If you want, Obelo can fetch posters, backdrops, cast lists, plot summaries, artist photos, and biographies from public sources, so your library looks like a real streaming service. It stays off until you turn it on.

Plays smoothly on any connection

Obelo sends the original file when the device can handle it, and converts it on the fly when it can't, or when the Wi-Fi is struggling. You can set quality limits to suit your network and the screens you own.

Puts your graphics card to work

If your computer has a graphics card, Obelo can use it to convert video, which is far faster and leaves the rest of the machine free. NVIDIA, Intel, AMD, and Apple graphics all work, and the admin page shows you how hard it is working at any moment.

A profile for everyone

Everyone in the house gets their own profile, and switching between them is quick, like the big streaming services. Each person has their own Continue Watching row and their own place in every show. Choose which libraries each person can see, and set content ratings for the kids.

Subtitles that just work

Subtitles built into the video, subtitle files sitting next to it, and subtitles downloaded when you ask for them all show up in the same menu. Pick a language and they appear.

Nothing disappears by accident

Obelo looks for new files on a schedule, or whenever you ask. If a drive is unplugged or a network share is down, the titles on it are simply hidden until it comes back. Nothing is deleted from your library, and everything returns on the next scan.

Private, full stop

Obelo doesn't report back to anyone. There is no usage tracking, no account with a company, and nothing leaves your home unless you switch on artwork lookups or add a plugin yourself. Even then, you are the one who decided.

Add what you need

Plugins are add-ons that connect Obelo to things outside it, like a subtitle source, a Discord channel, or your own sign-in system. Add the ones you want and skip the rest. How plugins work.

Share with another household

If a friend runs Obelo too, you can lend them some of your libraries and borrow some of theirs. You send one invite, they accept it, and your libraries show up in their apps next to their own, labelled with your name.

Nothing passes through a company in the middle, and neither of you has to sign up for anything. How sharing works.

Up and running in three steps.

Install it

Obelo is a single program. Run it with Docker, or directly on a Linux or Mac machine, and it brings its own web interface along. The only other thing it needs is ffmpeg, the free tool that handles video conversion.

Point it at your files

In the web interface, make a library for your movies, another for shows, another for music, and tell each one which folders to look in. Obelo only reads your files. It never moves, renames, or changes them.

Press play

Open it in any browser, or sign in on your TV, phone, or tablet. Pause on the couch and pick up in bed, right where you left off.

Browse from anywhere in the house.

Every Obelo comes with a web app, so you can start watching from any browser straight away. Apps for Apple TV, iPhone, and iPad are on the way.

Web app

Included

Built into Obelo itself, so there is nothing extra to install and it is always the matching version.

  • Browse movies, shows, artists, albums and playlists
  • Music that keeps playing while you browse
  • Settings for libraries, profiles, artwork, and video quality, all in one place

Apple TV, iPhone & iPad

In development

A proper app for the big screen, designed for the couch first, with iPhone and iPad sharing the same player.

  • Finds your Obelo on the home network by itself, or over Tailscale
  • Sign in on the TV from your phone, no on-screen typing
  • Everyone picks their own profile, so one TV works for the whole family

Share your library with a friend's household.

Two households, each with its own Obelo, and one lending the other a few libraries. The two servers talk to each other directly. Nobody signs up for anything, and no company sits in the middle.

Lending a shelf

You share

Choose which libraries to share and what limits to set, then send one invite. Nothing is shared until your friend accepts, and nothing beyond what you ticked ever will be.

  • Only the libraries you pick, never everything by default
  • A quality limit, so you can allow 1080p but keep 4K to yourself
  • A limit on how many people over there can watch at once
  • They can't pass what you share on to anyone else

Borrowing one

You receive

Their libraries show up next to your own in every app, and work just like everything else in the house.

  • Appear on your Home screen, in search, in collections, and in playlists
  • Labelled with your friend's name, so it is always clear whose it is
  • Your own Continue Watching and your own place in every show
  • You decide who in your house can see it, with your own parental controls
  • Their computer does the heavy lifting, so yours barely notices

Invite-only, and it expires

You make a one-time code, or a QR code to scan, and send it however you like. It works once, expires after a day, and can never be used to log in to your server.

Over the internet, or over Tailscale

Only the two servers talk to each other, and only one of them needs to be reachable. Your phones, tablets, and TVs stay out of it. If you use Tailscale, nothing has to be opened up to the internet at all.

Either side can cut it

If you stop sharing, it stops right away. If your friend removes the link, your libraries vanish from their side entirely. Neither house can see who in the other one pressed play, only that something is playing.

Setting up a link takes a few minutes on each side. The step-by-step guide, including the Tailscale parts, is in the wiki: Linked Servers.

Connect Obelo to the things you already use.

A plugin is an add-on that connects Obelo to something outside it. You choose which ones to add, and you can take any of them out again.

Adding one

Included

Plugins are added from the Plugins page in the web app. Some already come with Obelo, and you can add more whenever you like.

  • Upload one zip file, or paste a link to one
  • If you like, add a catalog, which is a list someone publishes at a web address, and browse it
  • If you like, pin a publisher's key, and then only plugins signed by that publisher will install
  • Uninstall any plugin at any time, including the ones that come with Obelo, and reinstall the shipped version later

What they can do

Seven kinds

Every plugin is one of these kinds. A plugin can't invent a new one.

  • Artwork and details for your movies, shows, and music
  • Subtitles
  • Lyrics
  • Skip markers for intros, recaps, credits, and previews
  • Web links to read more about a title
  • Notifications when something happens, such as a message in a Discord channel
  • Sign-in through your own directory or identity provider, such as LDAP or Authentik

Sealed off

A plugin runs on its own, with no access to your files and none to the rest of your computer. It can only reach the web addresses it lists up front. A sign-in plugin can also reach the one directory server address you typed in, and nothing else.

You choose the sources

The Obelo project doesn't run a plugin catalog and doesn't recommend one. If you want a catalog, you add it yourself. If you pin a publisher's key, Obelo will only install plugins that publisher signed.

Already in use

The artwork and details sources, OpenSubtitles, and OIDC sign-in that come with Obelo are plugins themselves. You can remove any of them, and put the shipped version back later.

Want to write one? The developer guide, with a Go SDK and a working Discord plugin to learn from, is on GitHub: Writing a plugin.

Running in about a minute.

Give Obelo a folder of its own, show it where your media lives, then open localhost:8080 in your browser.

Docker
# pull the image
docker pull ghcr.io/goozakdev/obelo-server:latest

# run it: Obelo keeps its own files in ./data and only reads your media
docker run --rm -p 8080:8080 \
  -v "$PWD/data":/data \
  -v /path/to/your/media:/media:ro \
  ghcr.io/goozakdev/obelo-server:latest

Your first account

Nobody gets in without an account. The first time Obelo starts, it prints a one-time setup code in its log. The setup screen asks for that code, you create the admin account, and the setup screen goes away for good.

Building from source

Prefer to build it yourself? You need Go 1.25 or newer, Node 22 or newer, and ffmpeg. Then run make build.

Watching away from home

Obelo can get its own HTTPS certificate from Let's Encrypt automatically, sit behind a proxy you already run, or join your Tailscale network so you can reach it from anywhere without opening anything up to the internet.

Let apps find it

Start Docker with --network host and the Apple apps find your Obelo on the home network by themselves, so nobody has to type in an address.

Where the artwork comes from.

Fetching posters and details is optional and off until you turn it on. When you do, this is where it all comes from. These sources are plugins that ship with Obelo, and you can remove any of them.

  • TMDB
  • MusicBrainz
  • fanart.tv
  • TheAudioDB
  • Cover Art Archive
  • OpenSubtitles

Obelo is not endorsed by or affiliated with any of them. This product uses the TMDB API but is not endorsed or certified by TMDB. Music metadata comes from MusicBrainz; additional artwork from fanart.tv, TheAudioDB and the Cover Art Archive. Logos and trademarks are the property of their respective owners.