The Apple TV is a great little box. That is, if you like having Apple in your living room.
But what if you could pay the same amount, but get something infinitely more useful?
And what if this video is sponsored by Squarespace? Well, it is. And you can. In this video, I'll
show you how I built my own Apple TV using this Raspberry Pi and some open-source software,
LibreELEC and Kodi. And by the end of the video, you'll be able to build one for yourself,
too.
Now, two years ago, I had tried this with a Compute Module 4, which is the last-gen
Raspberry Pi. After all my testing on a 4K TV, my conclusion was, it's okay for most 1080p
content, but couldn't really handle 4K. There's a new Raspberry Pi 5, and it's supposed to
be better and faster. Is it good enough to replace a 4K Apple TV or a Shield?
The first thing we need is a Pi and a couple accessories. Micro Center isn't sponsoring
this, but they're a great place to get Pi stuff.
But before I go back and snag a Pi, let's take a glance at the competition. You have
cheap streaming sticks, like the Chromecast, of course. But the real competitors are things
like the Roku Ultra and Nvidia Shield. Those and the Apple TV are all easy to get going,
and they cost between $1 and $200. But you know what those things aren't? Actual computers
you could use for anything else. So after a few years, if they drop support, you end
up with a shiny plastic paperweight.
So let's go grab the parts we need. In the maker section, I grabbed a Pi 5 case and PSU,
but I had to ask for help to grab a Pi 5, because, at least at the St. Louis Micro Center,
they still keep Pis locked up.
I grabbed a 4GB Pi 5, because you don't need tons of RAM for video, so just buying an 8GB
is kind of burning extra cash. I also grabbed a micro HDMI to HDMI adapter cable. And the
last thing we need to do is grab a micro SD card.
Now I usually go with SanDisk Extreme, but today I decided to grab a 128GB Samsung Pro
Plus. For video, it's plenty fast, and $0.20 a gig is decent. If you're going to store
videos on the Pi, it's probably better to buy a big USB drive, but for testing at least,
this is fine.
All in, we're at $110 before taxes. That's in line with mid-range Android boxes,
and cheaper than the Apple TV or other high-end boxes. It's kind of crazy that these companies
are charging $100+ for a box that's mostly just for streaming content. For that kind
of money, you should at least get a lot more local functionality. At least, I think so.
Now you'll also need a way to remote control the Pi, and there are a few options.
First, you could just use the remote that comes with your TV. Like, this remote has
all the basic controls, and with the magic of HDMI-CEC, the TV actually sends remote
control commands right to the Pi so you don't need any extra remote.
Otherwise, I also like using this little mini keyboard. It's from Rii, and it's useful
if you need to type in text or do anything more advanced. You can even use the track
pad for full mouse control.
If you have an older TV or monitor without CEC support, another option is to pick up
one of these. This is a tiny IR receiver you plug into one of the Pi's USB ports, and
pretty much any remote will work with it right out of the box.
Flirk even makes their own remote, the SkipOne S, but even a little cheapo remote like this
one that I got for free with one of my video monitors works fine too.
But let's put this thing together and bring it over to the TV.
Move all this stuff out of the way. Micro Center always sticks their little stickers
on here that covers up the front of the box. So if you love saving your boxes, maybe ask
the store attendants at Micro Center to put their stickers on the back or the bottom.
But this is the USB-C power supply for the Pi, and the case. The case comes with a couple
accessories that are inside this little box. So if I pull this out and pop this off, this
has a heatsink for the Pi and some little rubber feet.
And an interesting fun fact I learned while I was touring Raspberry Pi's factory, it doesn't
come in an ESD bag, a little electrostatic discharge bag. This box actually has a coating
on the inside, some sort of special coating that is ESD safe, so they don't have to add
the little baggie for the Pi.
But here's the Pi 5. This is a 4 gig model. You can tell looking at the little memory
resistor on the board there. And it has built-in Wi-Fi and everything that we need. So getting
it in the case is pretty easy. You just slide it in like that, and we're going to put the
heatsink on first. So you just take this off, stick the heatsink right onto the main SOC
right here. That's the main processor for the Pi. And then plug in this fan. And sometimes
the Pi will have a little cover over the fan. I don't know if you can see that right there.
There's a little cover on there. And you can just kind of pop that off. And that's just
because when they manufacture them, sometimes they come off, sometimes they don't. But then
you plug the fan connector in here. Make sure it's seated all the way in there. And put
that on top. Put the cover on the top of here, like so. And then we'll put these rubber feet
on the bottom of the case.
And that's it for the hardware. We have a power supply, HDMI cable, and Raspberry Pi,
which now will not move around because it has these nice rubber feet. The last step
is getting this card flashed with the right operating system so that it can act like a
little Apple TV box using LibreELEC and Kodi. And through the magic of video editing, I
will have a micro SD card that's flashed with LibreELEC. All I had to do was download the
image from the LibreELEC website. Then I used Balena Etcher to write that ISO file to this,
and that's it. So I'll put this into the Pi 5 right here. And we'll bring this over to
the TV and get it plugged in.
The Pi has Wi-Fi built in, but there's also a wired Ethernet port, so if you want to get
it online, you can go either way. And you don't even need to connect it to the Internet
if you don't want to. But for me, I'll use Wi-Fi so I can watch YouTube. So all I have
to do is plug this into HDMI, and then power. The first time it boots, it takes maybe 60
seconds or so. And hey, that's the perfect amount of time for me to tell you where to
buy this shirt over on redshirtjeff.com.
I completely redesigned my merch site with Squarespace. Of course, they're the sponsor
of this video, but it was easy building a new store on Squarespace. I used one of their
Blueprint templates, and their Fluid Design Engine makes my store work great on desktop
and mobile. They took away all the hard parts of shopping carts, payment integrations, product
pages, all that stuff. All I had to focus on was getting my photos on the site, putting
in the price and shipping info, and finding a company that handprints these nice new shirts.
Squarespace's new AI and SEO tools can help you get your site going fast, even if you
didn't build websites for a living like I used to. It's honestly refreshing not having
to worry about programming or databases, and to just put a new site together clicking a
few buttons for once.
Go check out the new merch store at redshirtjeff.com. And if you want to get your own merch store
or any other kind of website set up fast, go to squarespace.com for a free trial. And
when you're ready to launch, go to squarespace.com/redshirtjeff to save 10% off your first purchase of a
website or domain.
You might be wondering about this couch. I actually ordered a couch for this new office
space, and only half the couch showed up. The cushions, the pillows, and a couple other
parts, but the base and the back are not here, so I'm kind of improvising, but it's okay.
We're going to set up LibreELEC following its little wizard, and I can use the remote
here or I could use my little re-controller or whatever. The point is that we just need
to get through the wizard to get everything configured so we can start putting content
on here.
So I'll start off using the remote control, and if I just hit next, it's saying if you
want to get it on the network, you can do that. The default host name is LibreELEC,
so other computers can see it that way. And I'm just going to connect through my 2.4 GHz
network and hit connect.
And this is where having the little controller keyboard is handy, because instead of using
this thing and clicking through like a caveman, I can just use the keys. So I'll say, okay,
hopefully it will connect now. And there it is, we're online. Click next.
And by default it turns on Samba, and there's actually a way that you can load content through
your network to the Pi using Samba. And you can turn on SSH or turn it off. I'm not going
to use it for this, but if you wanted to log into your Pi remotely, that's a nice way to
be able to do it. But I'll hit next with the defaults, and it's complete.
So the next thing that I need to do is to go over to my desk and I'll copy some video
files, some movies, TV shows, other sample videos and things like that.
Back on my desk, I can add my movies and TV shows over the network. I have a folder with
some of my movies here, and on my Mac, I can connect to the LibreELEC device on my network.
I'll copy a bunch of the movies into the movies folder under videos and let that go for a
while.
Now, copying files over Wi-Fi is going to be pretty slow, and it depends on your Wi-Fi
setup, where you put the Pi, a lot of things. If you want to use this setup with 4K streaming
video, even if that stream is coming off your NAS, like with Jellyfin or something, you
should consider running wired Ethernet over to your Pi. It's going to be a lot more reliable
than any Wi-Fi.
But I also copied a bunch of TV shows into the TV shows folder, and some extra sample
footage to test different resolutions into a samples folder. With all that content loaded
up, I can go back to the TV and see if I can watch it.
So once I copy all the files over, Kodi is still not showing anything in here, so I have
to go into the files section and tell it where to look. There are other ways to get videos
in here, but I'm going to go ahead and add videos and browse into my home folder, videos
and movies, and hit OK, and hit OK. And I'm going to tell it that it contains movies.
And what this does is it tells it where to look for information about the movies. So
it's going to look at the movie database and pull down a thumbnail and the title and the
description information, all that kind of stuff.
And I actually set up my library so that each movie is in its own folder, so I'm going to
turn on that option, but if you just have your movies in a folder by themselves, you
don't have to. And hit OK. And yes, I want to refresh the data, and it will start pulling
in all the information, and you can see that in the top right there. It'll pull in information
for all the movies and start populating the data back here, which you can see up here,
so that's nice.
If I go into one of the movies, it'll start playing it right away. And I'll go back, and
you can also go in and get information about the movie too. But I need to do the same thing
for TV shows, so I'll go into files, and I'll do the same thing. I'll browse, go into home
folder, TV shows, OK, and hit OK. Change it to TV shows, and refresh the data. Same thing,
it's going to pull down the information for the TV shows, and for TV shows it pulls down
episode information, all that kind of stuff, which is nice.
And if I go back, now I can see Louis is in here, and it's still scanning, so it's not
completely full yet. But I'll go in, and you can see that there's each episode information
here. And if I go in, I can start playing one. And I'm going to turn this off, because
I don't want to get copyright claimed.
And I can do the same thing with videos down here, and I can add my sample videos that
I'll test and see how they look.
Now I spent a while testing a ton of different videos on this thing. The bottom line, it's
fine for almost any of my content at 4K. YouTube encodes at VP9, but whatever settings they're
using, it decodes just fine on the Pi's CPU. It'd be nicer if the GPU included a VP9 or
AV1 decoder, but the CPU can still handle it without stuttering. All my movies and TV
shows are encoded with H.265 or 264, and no matter what resolution I tested, playback
was butter smooth. And I have Dune here in 4K, and it plays back in HDR with no problem.
I'm not playing back any of the sound, of course, because I don't want this video copyright
claimed, but since I only have stereo speakers on this TV, I can't test surround sound or
Dolby Atmos. That should work, though, just like it did on Pi 4.
But all my content, from 720p Blu-ray shows and 1080p Chernobyl up to 4K Blu-ray rips
of newer movies like Dune and Top Gun Maverick, I had zero issues at all with playback. The
only times I encountered stuttering was with high bitrate 4K files, especially 60fps. 60fps
works great at 1080p, but the Pi was a little picky about any format besides H.265 at 60fps.
Luckily, most video content is 30 or 24fps, so it's not a big deal for most people.
And if all this format stuff means nothing to you, then don't worry. The bottom line,
the Pi plays back most real-world content just fine. Anything at 1080p, no matter what
the format, it plays back smooth as butter. At 4K, it's a little more picky, but it was
great for all the movies and TV shows I tested. I'll have a blog post with more detailed notes,
and you can even download other things like 8 and 10-bit HDR files to test on your own,
too. Links in the description.
I also decided to test AirPlay with my iPhone. Basically, you can use your Pi as a sound
output for an iOS device, but it won't let you do screen mirroring or let you play videos
from an iPhone to the TV.
I also wondered if the little fan built into the Pi case would be loud enough to distract
me while I was watching things. It's actually audible when the Pi is decoding bigger 4K
videos, but it quiets down any other time. You could install an active cooler on the
Pi, and that's a little quieter, or you could spend a few more bucks on a nicer fanless
case to cut out fan noise entirely. This little EDATEC case is completely passive, and it
still holds everything together nicely, and there are a few other cases just like it.
This video isn't a comprehensive overview of LibreELEC and Kodi on the Pi 5. There are
a lot of things I didn't even touch on, like there are tons of extra add-ons for sports
streaming and other TV networks, integration with TV tuners for a TiVo-like experience,
and more.
But I really wanted to see if I could practically replace my Apple TV with a Raspberry Pi 5,
and the answer is yes. The one thing I'd really miss, though, is MLS games, since Apple
has an exclusive partnership. And if you have Netflix, Disney+, Prime, or any other of the
thousands of streaming services today, those might not work on here either. But then again,
I'd just recommend dropping all your subscriptions and owning your own content like we did back
in the 90s.
Before I wrap up, there's one more elephant in the room, and that's power. The Pi uses
1.8 watts when you shut it down, but using the instructions in this blog post, you can
cut that to zero. Unfortunately, the Pi also doesn't turn on automatically when you turn
on your TV. There are actually a few ways around that problem, but they are a little
annoying. You could leave the Pi on 24/7, but then it'll use 3-4 watts all day long.
I'll leave a few links in the description, so check that out if you want to build one
of these things and go further.
But looking back on this build, the Pi 5 isn't the perfect modern 4K play-everything set-top
box. And that's why I'd say, even after all the setup, and even after the whole schpeel
about having a more free home theater box, if you just want something to plop down next
to your TV for 4K content, live sports, and all that jazz, the Pi 5 might not be the best
option. If you can live with its limitations and want a piece of hardware that you can
make useful for 10+ years after you use it as a media box, though, this ain't a bad
deal. I've had a Pi running since last year for family vacations, since sometimes we just
want to let the kids veg out and watch some Bluey. And what's better? Since I control
my own media, there's no risk my favorite TV series will just disappear completely when
Sony or Apple or Amazon or whoever decides they want to yank it!
Until next time, I'm Jeff Geerling.