2 Twitch & YouTube Live alternatives for live streaming

In a previous guide we looked at some of the best websites for streaming live music performances.

As I made clear in my other guide, depending on the music play, you might encounter anti-piracy problems when streaming on the big three platforms (YouTube Live, Facebook Live, and Instagram Live). And this can result in your live performance being blocked, chopped or muted.

At present, Twitch is more tolerant of live streaming music – even when copyrighted tracks are played. But it does mute recorded video which has infringements.

But nothing is stopping Twitch from changing. Any day it could turn as draconian as the big three streaming platforms, especially if the major record labels start applying pressure for more royalties to be paid (which they usually do once something becomes popular).

Whilst Twitch is still the best place for a covers band, artist, or a DJ to stream, that could all change any minute. So, it might be wise to have a backup streaming service in place. Or at least be aware of the alternatives.

And that’s what this article is about. It’s designed to help you find a new home for your streams in the event of a crackdown.

Moving on…

Self-Hosted YouTube alternatives

A self-hosted application is an app that you set up, configure, and control.

Installing a self-hosted application can be difficult if you’ve never done it before, mainly because they’re installed using command line and Linux.

This means typing commands into a terminal on your computer and instructing the operating system to download and install files. And then usually configuring files (again via terminal) to enable the self-hosted program to work. Most of this work is done by typing text, and it’s not done using a nice slick GUI.

All PC’s have a command line/terminal utility. Linux and Apple computers have great terminals, and Windows PCs have the ‘cmd’ utility (which is crap).

But most Windows users will want to install a third-party terminal such as Putty or Cmder. Or you can even install a Linux distribution inside Windows 10 (and above) and use the distro native terminal.

The great thing about self-hosted applications is that you have total control over your environment. This means you have complete privacy; you won’t be locked into a service with no control, and you can stream pretty much whatever you want without chance of repercussions.

Lastly, the two live streaming web applications I discuss here are both free to use. You can set up as many installs or instances as you want, and you won’t have to pay any licence fees or other costs. The only probable cost you’ll have is the cost of renting a server.

The downside of self-hosting a streaming website is that it can be complicated to set up if you’ve never done it before.

You will need a server for hosting your streaming applications. And whatever type of server you use will need to be set up and configured to run your chosen streaming application. You’ll also be responsible for maintaining, updating, and securing your server and any applications contained on it.

Installing self-hosted software can sometimes be a nightmare because installation documentation can be sparse, fragmented, or designed for one particular Linux distribution. Often you must piece together guides from around the web to get your chosen program working.

As challenging as this can be, it’s an excellent way to learn about alternative operating systems, servers, and programming languages. This is how I built up my own knowledge about such systems; basically, sitting in front of the PC and playing with stuff till I got it to work. And like anything else in life, the more you do it, the better you get.

Anyway…

Other things you’ll need to know about are domain names and DNS. This means you may need to buy your own domain name and configure it to point at a server. One advantage of this is that it’s great for branding; you can use your own artist’s name like my OwnCast instance at djkippax.show.

And it’s relatively cheap to buy and own your domain name these days, and many companies offer this service. I mention some of these services in this guide on creating a DJ’ing website using WordPress.

So, let’s now look at some YouTube alternatives which have no censorship.

PeerTube

PeerTube is a decentralised and censorship-resistant YouTube alternative.

It uses peer-to-peer (WebTorrent) to reduce the load on individual servers.

As of version three, released in late 2020, PeerTube now has streaming capacity. At present, PeerTube is now on version 4.

PeerTube features

PeerTube also makes use of ActivityPub protocol, which means it can make use of self-hosted services like Mastodon (Twitter alternative). This means you can follow a PeerTube user from Mastodon, and then their latest videos will appear in your feed.

PeerTube comes with a range of plugins that can be enabled to add more features to your instance (an instance is PeerTube installation). Some plugins will add social media buttons to your videos, and others might enable chat or other features.

PeerTube is a video hosting platform first and a streaming platform second. Once you have a fully working PeerTube instance set up, it’s easy to upload and share your videos.

Videos can be uploaded via the PeerTube web app interface. And, like YouTube, you can set your video to be public or private. Best of all, there’s no scrutiny of your videos or its audio – so no copyright ban hammers muting or removing parts of your music.

Your server space limits the number of videos you can upload. You can rent a suitable VPS from companies like Linode, Vultr or Upcloud for around $5 per month. A typical $5 server will have approx. 25Gb storage space and a monthly bandwidth/transfer allowance of 1TB. If you pay more, you can get more resources. And it’s easy to upgrade a VPS with things like more hard disk space without re-installing everything. Lastly, if you hunt around, you can find VPS providers with unlimited bandwidth, but these tend to be more expensive (around $10 PM).

All your streaming videos are automatically saved to your PeerTube instance, and you can choose to make these videos public or private.

You can also choose to make your video downloadable. And these can be downloaded directly or using P2P BitTorrent distribution (a great way to save bandwidth). I think this is one PeerTube significant advantages is can be used as a way for people to watch, download and then distribute video material – even when they’re large file sizes.

Videos can also be easily embedded and shared on another website too. In most cases, you copy the video URL and paste it into a webpage, and it’ll embed the player and stream.

You can also choose to have your channel listed on the PeerTube instance list. This is a public-facing list provided by the makers of PeerTube, which allows people to find and filter the type of channels they want to watch.

When you create your instance, you can allow people to register and follow your channel. You can give followers special permission too so that they can moderate your channel, or they’re just allowed to leave comments on your videos.

Although few people outside of the self-hosting community have heard of PeerTube, let alone use it for streaming purposes, some big companies make use of it. The famous 3D creation suite Blender started using PeerTube to host their video tutorial after complications with their YouTube account. If you’d like to see their instance (and a popular PeerTube channel), click here.

I’ve thought about using PeerTube as a place where I can host my video mix sets from Twitch. For now, Twitch still allows DJs to stream on their platform, but it usually mutes or deletes and recorded video.

One way around this would be to record my Twitch DJ sets in OBS (or do a screen capture of my Twitch channel) and then upload the video to a PeerTube instance. My fans and followers would then watch and download my old video DJ sets.

How to install PeerTube

There are a few ways to install PeerTube. The first is to follow their installation guide here.

It can also be installed as a Docker instance.

But the easiest way to install it is to use something like YunoHost. When I last tried PeerTube, this is how I installed it. But it created two problems.

First, adding something like YunoHost to a server is akin to adding a control panel which means it’ll eat up some of your servers’ resources (but this does make some administrative tasks easier).

Secondly, the native PeerTube chat plugin is currently incompatible with the one included with YunoHost. When I last used it, I couldn’t enable the PeerTube chat without removing many YunoHost dependencies (which would’ve rendered YunoHost unusable).

Now, it’s been a whilst since I last messed around with PeerTube and YunoHost, so I can’t remember what the exact details were or what conflicts were involved. But personally, this was a deal-breaker for me, as I planned to use PeerTube for music streaming. And I think chat is critical for live music streaming as it allows a musician or DJ to interact with fans, take requests and get to know their followers.

Admittedly if I’d had taken the time to install PeerTube on its own (and not using YunoHost), I could have avoided this problem. Also, it’s looking like the PeerTube devs are now actively working to improve the chat functionality. So, I might need to look at this again and see if I can get it working with my usual choice of server stack.

OwnCast

The next YouTube/Twitch streaming alternative we’ll be looking at is OwnCast.

OwnCast is a self-hosted, single-user, live streaming software. Its look, feel and interface are heavily influenced by Twitch. The user interface on both the front and backend of OwnCast is excellent and feels very modern.

OwnCast is designed to be set up on its own server, and you have the freedom to stream whatever you want when using it.

It can also be set up with a custom domain name too.

OwnCast is broadcasting software with chat, basic statistics, and simple moderation tools. It’s a simple tool but good at what it does, namely streaming with a decent chat interface.

I didn’t find the installation process too complicated. And I was able to get it working with my web stack of choice (CentMinMod). And, unlike PeerTube, the chat functionality works straight away, and it’s not dependent on any other third-party programs or services.

One of the best things about OwnCast is that it requires no databases for operation. PeerTube needs PostgreSQL to be installed. And CentMinMod uses MariaDB by default. It is possible to install PostgreSQL alongside MariaDB in CentMinMod; I’ve just not had the time to mess with around with this at present.

The chat functionality in OwnCast doesn’t require registration. When someone starts to use the chat, OwnCast assigns them an auto-generated nickname. This can get a tad confusing. Because the names are a bit weird and it’s difficult for friends to spot and remember each other. And users use the same nicknames every stream session.

Also, allowing any user to join the chat freely could pose a problem if your stream becomes the target of trolls, etc. You can ban usernames from joining, but I don’t think you can ban IP addresses. And even if you could ban IP addresses, pretty much everyone has VPN access these days, so any bad users could easily avoid IP bans.

Video and audio output settings can be controlled. It uses the AAC for audio output, relying on the FFmpeg codec for video and audio conversion. You can set bitrates, resolution, and latency server-side, which can help reduce server resources when streaming.

Lastly, it has some basic statistics allowing you to monitor average CPU, ram, and disc usage. Likewise, it has basic user’s stats too – so you can see how many users watched your stream.

My only gripe with the hardware stats is that they only shows you the last 7 hours of performance. A larger recorded time frame window would be better (maybe 24-48 hrs). My reasoning for this is that I used OwnCast to stream an oldschool house music late into the night; once I finished my set, I went to bed. I got up several hours later and decided to check the server stats, only to find that last night’s statistics had been lost as the timeframe window had moved on.

OwnCast performance

My test stream received on average about 13 viewers, and it averaged the following:

  • CPU = 42% (it appeared to climb approx 2% per viewer)
  • Ram = 40-50% (the server idles around 37% when not in use, so that’s a climb of 3-13%)
  • Disc Usage = Remains constant at 32%.

I tested this stream on the smallest UpCloud VPS, which cost a paltry $5 per month.

And I was streaming at 1280 X 720 resolution, 24FPS and a bitrate of 1200Kbps. I live in the middle of the countryside, so I don’t have the best upload speed. So I couldn’t stream at full HD.

I played for around 4 hours, and it consumed around six gigs of data. My Upcloud VPS allows 1TB per month of egress, so my four-hour stream didn’t consume much of my bandwidth limit at all.

Overall, the people watching my stream reported that the stream was flawless with no glitching, delays or sound problems.

Bear in mind though, when streaming concerts you can use a high latency server-side, unlike streaming games (where a low latency is desirable). A lower latency will consume more server resources and increase the likelihood of errors. For gamers, it’s often a balancing act to find the perfect settings, whilst musicians and DJs don’t really need low latency interaction with viewers – so music streams have more leeway.

How to install OwnCast

There’re a few ways to install OwnCast.

Linode, Digital Ocean and Vultr all offer one-click installers which will deploy a working OwnCast instance in a matter of minutes. But please note, it will deploy them on a public-facing VPS; you’ll still need to secure your VPS properly. That means ideally using an RSA key to secure console access, disabling root logins, and you’ll want to install a firewall.

OwnCast can be installed via Docker or Kubernetes. I don’t use Docker, so I can’t comment on this method. But Docker is another abstraction layer, so that this method will consume more server resources. It’s also more stuff to go wrong. This is why I prefer to use the following form of installation…

Personally, my OwnCast install is running on a CentMinMod stack. It uses Nginx as the webserver. The advantage of using CentMinMod it comes with a working firewall, and it makes installing things like an SSL certification a doddle. But I had to create my own Nginx Vhost file (server config file), which used proxy web sockets. This took a bit of figuring out, as I was unfamiliar with using web sockets in Nginx.

If anyone is interested in learning how I installed OwnCast on Nginx, leave a comment below. If enough people are interested, I’ll record a video tutorial showing how I got everything working.

Conclusion

The exitance of web applications like PeerTube and OwnCast are evidence of growing dissatisfaction with the big streaming platforms – especially the big three (Facebook Live, Instagram Live and YouTube). And it’s great to have viable alternatives which can be run independently; without censorship and no anti-piracy enforcement.

If Twitch ever turns up the anti-piracy measures, I think these streaming services will become way more popular with musicians, bands and DJs.

The major downside of using an independent platform like these is building your fanbase and audience. Unlike Twitch and YouTube, they have no native audience. So it’ll be up to you to market your stream. And you need to figure out methods of informing your fans when you’re streaming and how they can tune in.

It doesn’t cost much to run these services. Both web applications are free to install, and suitable servers can be rented for around $5 per month. A $5 PM server would probably work for someone streaming to 15-30 people every week for a month.

But these services are scalable. Both PeerTube and OwnCast can distribute content via external services like AWS S3, BackBlaze B2, and Linode Object Storage. So it is possible to get large scale streams working, but it’ll take more planning, configuration and your costs will increase.

Honestly, it’s hard to directly compare both services because they are designed for different things. PeerTube is designed primarily as a YouTube replacement. And OwnCast is intended to be a Twitch replacement. When you look at their primary goals, both apps do their job exceptionally well. And they complement each other.

For me, OwnCast was the easiest to get working and the most straightforward alternative to use. But if I can get PeerTube working with CentMinMod and get PeerTube chat working, this will be the best setup. Because not only can I stream my DJ sets, but I’ll also have a home where my users can watch and download old video sets. And it adds uploaded videos to the Fediverse too.

To summarise: I’m thinking of using PeerTube as a home for my Twitch DJ sets. As I can’t upload them to YouTube because of piracy strikes. And Twitch often mutes parts of my recorded DJ sets. But this doesn’t happen with PeerTube?.

Sadly, I’ve got a busy few months on the farm I run (farmers my day job), so I’ll not have a chance to play around with PeerTube and CentMinMod until spring 2022. But when I do watch this space.

Also, if you want to be informed of how this develops, consider joining my mailing list or follow me on Twitter.

Thanks for reading

Keep on scratchin…

DJ Kippax

PS: If any of the devs are reading this, I’d like to thank you for creating such top software. Although I’m not using either in a production environment yet, it’s great to have alternatives as backups. Keep up the solid work.

Have you any thoughts on either of these applications? Do you have any questions? Why not leave a comment below if you have.

Leave a comment

🎧 Get the Free 6GB DJ Mix Pack