Transcription
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 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 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 $100 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 20 cents 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 Apple TV or other high-end boxes. It's kind of crazy that these companies are charging $100+ bucks 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 trackpad 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. FLIRC even makes their own remote, the Skip 1S, 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 uh stickers on here. That covers up the the front of the box. So if you love saving your boxes, maybe ask the store attendant at Micro Center to put their stickers on the back or the bottom. Uh, but this is the USB-C power supply for the Pi and the case. And 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 uh, 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 uh, special coating that is ESD safe, so they don't have to add the little baggie for the Pi. Uh, but here's the Pi 5. This is a 4GB 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. So right here, that's the main processor for the Pi. And then plug in the this uh 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. Uh, and you can just kind of pop that off. And uh, that's just because when they manufacture them, sometimes they come off, sometimes they don't. Uh, 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 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 Redbubble.com. I completely redesigned my merch site with Squarespace, of course. They're the sponsor of this video. But it was easy building the new store in 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 Redbubble.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/Redbubble to save 10% off your first purchase of a website or domain.
You might be wondering about this couch. Uh, 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, it's okay. Uh, we're going to set up LibreELEC following its little wizard, and I can use the remote here, or I could use my little Rii controller, or whatever. Uh, 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, uh, it's saying if you want to get it on the network, you can do that. Um, the default hostname 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, uh, 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. Uh, 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. Uh, 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 at 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. Uh, 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, uh, 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, uh, turn on that option. But if you just have your movies in a 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. Uh, it'll pull in information for all the movies and start populating the the data back here, which you can see up here. So that's nice. And 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. Uh, 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, uh, 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 Bluey 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 each, uh, 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, I'll, uh, test and 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 H.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 Bluey 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 60 FPS. 60 FPS works great at 1080p, but the Pi was a little picky about any format besides H.265 at 60 FPS. Luckily, most video content is 30 or 24 FPS, 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's 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 Akasa 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 tool like Plex, 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 Plus, Prime, or any other of the thousands of streaming services today, those might not work on here either. But then again, I 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 to 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 spiel 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-plus 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.