Make Your Own Damn Channel!

With respect to Lloyd Kaufman.


Navigation:

The Medium/Probnot Tutorial | The EMN Pro/PseudoTV Tutorial


Throughout the years I’ve made a handful of tutorials and tip compilations on how to set up EMN, which I am mirroring here. While I’m always iterating and incorporating new techniques to make EMN work, and some of this information becomes a little outdated as the years go on, I hope that reposting these guides can give visitors to this site their own basic foundation upon which to start and, indeed, Make Their Own Damn Channel.


The Medium/Probnot Tutorial

Originally Posted on Medium: September 30th, 2020

How to create a 24/7 TV channel for your home using a Raspberry Pi 3B+! (Part 1: The Basic Setup)

So! Channel-surfing! Custom TV stations! A way to just turn on the TV and see stuff you might wanna watch at any time! We’ve all wanted to bring that back, right? Yes? No? Just me?

I don’t think it’s just me. In fact, judging by the responses I’ve gotten from my project, I know it’s not. This is a fun project that (hopefully) isn’t too much trouble to set up initially. You just need a Pi 3B+, a USB drive, and some various programs, and you, too, can have a little box that plays any videos you want on a constant stream. Personally, I am completely wacked out at this point so I have three going — one for general programming, one for themed programming by month, and one for marathons that is mostly used for background noise. Currently it’s playing a giant marathon of videogame footage!

A brief old video showing it working on an actual TV!

Anyway, I’ve seen online during my long and arduous searches to make this happen that I am absolutely not alone. I’ve also seen people do something like this with Plex, but I wanted to make standalone, easy to setup boxes that all run locally, no internet required after a certain point. But enough of my rambling — let’s get to it!


Special Thanks

I want to extend a big shoutout to everyone who helped me learn all this and gave me the info I’m collecting in here.

First off, to Probnot’s Tech, whose initial videos on the ChannelPlus 3025 and 24/7 Simpsons in-home network started me on this journey. Without his tutorial on how to make it happen this tutorial wouldn’t exist.

To the few people who posted in my various Reddit and Kodi Forum threads where I asked all kinds of questions, got frustrated, and banged my head against a wall until I figured out how to make things work.

To Random Frequent Flyer Dent (great name!), who unknowingly stopped me from ripping my hair out when I realized none of the ways I normally edited my Kodi skin on my first LibreElec setup worked anymore.

To Hitcher on the Kodi Forums, who in 2017 once wrote a bit of code on how to display an image on your Kodi screen at all times during playback, which I then rewrote and repurposed for my own nefarious needs.

To fnord12, who took the old PseudoTV addon project and made it work, giving me that last little push to perfect this project, and to gils_001, who made the new PseudoTV make sense. Sure, the PseudoTV part of all this isn’t going to come til a future article, but I thought I’d throw it out there anyway.

And finally, to everyone on Twitter who put up with me talking about this project constantly and will have to endure me talking about it until the end of time. This is for you.


You Will Need:

Hardware:
Raspberry Pi 3B+ Starter Kit
16GB MicroSD Card
-HDMI Cable
-USB Drive (Hard drive, flash drive, either works) & media
-Laptop to do computery things on
USB Keyboard

Software:
balenaEtcher
PuTTY
The LibreElec Pi3B Image
Filezilla
VLC Media Player (Optional)
Notepad++ (Optional)

This is all you’ll need to create your own basic device, and I’ve linked ways to get most of these things too. In the future I’ll write tutorials on ways to create a true “channel” that most every TV can tune into, as well as how to use the PseudoTV addon to create a programming schedule that can include things like ads and interstitials with ease.

Today, however, we’ll hit you with the basics. I know it seems pretty daunting right now, but soon you’ll be setting these babies up within minutes. For real!

Side note: I can’t tell you where to find your media. I can, however, let you know that 4K Video Downloader is an excellent YouTube downloader and well worth paying for premium if you want to download entire playlists. I can also let you know that Handbrake is an invaluable tool for ripping DVDs, though you’ll have to Google how to make that happen. Anyway, on with the show.


THE STEPS

1. Flash your microSD card using Etcher.

For this step you’ll need to download the LibreElec image file I mentioned up there. Put it somewhere you’ll be able to find it. Then, download balenaEtcher. Finally, put your microSD card in the adapter it came with and put that in the slot on your computer. Open up Etcher and it’ll ask for an image file. Add the LibreElec file and it’ll ask where to flash it. Choose your SD Card slot — often it’s labeled SDHC, but MAKE SURE you’re not accidentally flashing to any attached drives as that will erase all your data. Make a note of which Drive letter your MicroSD is, if that helps, and tell Etcher to do its thing. Once its over, you can close balenaEtcher and remove the SD card from the slot.

By the way, here’s what Etcher looks like.

Now, if I were less mature, I would be making a joke about the word “flashing”. But I am a responsible young adult who has no time for frivolity.

2. Prepare your USB drive

So, you’ll need something to actually play on your Pi, so while you’re on your computer grab the USB drive you plan on using. Take note of what the name of it is. For example, my current drive is “Seagate Portable Drive”.

See?

Write that down! You’ll need it later. It’s case-sensitive, too! Anyway, put a folder in your drive and call it Videos. Fill that up with literally any video you want. This is where VLC Media Player comes in. The cool thing about Kodi/LibreElec is that it can play, like, anything. However, it’s beneficial to check your files on VLC if you’re unsure about them. For example, YouTube has started encoding their videos in strange ways so that the audio plays on VLC but not the video if you download the “av01” type. But basically, if it plays on VLC, it’ll play on your channel.

Important note: The Pi 3B+ does have an upper limit quality-wise. I’ve noticed major lag issues on videos with really fancy subtitles and on videos above 720p. For best practice, try and only use videos 720p and under — which is going to be most of the stuff you get from YouTube (since most YouTube downloading programs allow you to pick the quality), most online sites, and ripped DVDs. If you mainly plan on using this on a CRT TV, you rarely need anything over 480p which is a great way to save space while still having decent quality.

3. Assemble the Raspberry Pi

First, take the microSD card and put it in the little slot in your Raspberry Pi, and put the Pi in the case. Plug the HDMI cable into the Pi as well and attach it to your TV, and then plug the unit into the wall. The Pi doesn’t have a physical off button so it’ll automatically turn on the moment you plug it in, which is why you should have it connected to the TV first.

4. Set up LibreElec

Now it’s time to set up LibreElec. It’s pretty self-explanatory, and this is where you’ll be using the USB keyboard, but there are a few things you’ll want to do:

  • Set a password — Write this down, you’ll need it.
  • Give your Pi a nice name — The default LibreELEC name is fine but why not?
  • Connect to Wi-Fi (or Ethernet) — Write the IP Address it gives you down! You’ll need that as well.
  • Enable SSH — This is how you’ll connect to your Pi to adjust settings and make it work.

Leave it running after setup. It’s not playing anything yet, but it will. Feel free to plug your USB device into it and leave it there.

You have to enable SSH! It’s important!

5. Use Filezilla & Notepad++ to add the automatic shuffler script

So, this is where Filezilla comes into play. You’re going to want to start it, go to the file menu, and click Site Manager. Add a New Site.

Make your options look like this, but with your own stuff.

Change the Protocol to SFTP. Add the IP address you wrote down earlier. Your username should be “root” and the password is the one you set earlier. This will get you into your files.

Your folders will look like this. It’s nothing to worry about.

From here, go to the .kodi folder and then the userdata folder. It’s in here that we’re going to put the script that makes it play from the USB upon boot.

Open up Notepad++ and paste the following:

import xbmc
xbmc.executebuiltin("PlayMedia(/var/media/[DRIVE_NAME]/[VIDEO_FOLDER_NAME],isdir)")
xbmc.executebuiltin("PlayerControl(RandomOn)")
xbmc.executebuiltin("PlayerControl(RepeatAll)")

Replace [DRIVE_NAME]/[VIDEO_FOLDER_NAME] with the name of the USB drive & video folder you wrote down. Once again, it is case-sensitive. As an example, here’s what my autoexec.py file looks like. Don’t worry about the colors, they’ll change to them once you’ve saved it.

Go to File->Save As and save it as autoexec.py. Change the file type to a Python file.

Like this!

Once you’ve saved the file, drag it to the folder you navigated to in Filezilla. You can close Filezilla and Notepad++ now.

6. Use PuTTy to duplicate the default skin.

[Editor’s Note in 2024: I’m including this step just to show PuTTy working and for completeness, but the copying of the default skin no longer works in newer versions of LibreElec. The EMN Pro-focused tutorial does show how to add a watermark to a child skin, so check that one for more information.]

So this isn’t strictly necessary to do right now but it’s good to understand how to use PuTTy. This will also make future tweaks far simpler. Anyway, open up PuTTy and set it up as such:

The host name will be the IP address you’ve been using to get into your Pi. When it asks for a username type root, and the password is the one you set up earlier.

Once you’re in, paste the following by right clicking in the PuTTy window:

cp /usr/share/kodi/addons/skin.estuary/addon.xml /storage/.kodi/addons/skin.estuary.edit/

[Hacker voice] I’m in.

What that does is copy over the default skin to a directory where you can edit it. This will be good for later. Anyway, disconnect and go back to your Pi. Use your USB keyboard to navigate to the power button icon on Kodi, and reboot the Pi.

7. Enjoy!

There you go! You have a box that very simply works and plays off of the USB drive you’ve connected to it as long as it’s there on boot! If you need to stop playback at any point, you can use the USB keyboard to stop playback and turn the machine off, or you can go to PuTTy and type “shutdown” to get it to start the shutdown sequence.


Final Notes

So, one last thing to do is to make sure your videos look correct. Once you know things work, press esc on your USB keyboard to bring up the main Kodi menu. Go up to the Gear symbol to pull up the settings and click the Settings icon. Scroll down to the bottom of the menu and change the settings to Expert.

Go back to Display and click Video calibration. This will allow you to use the arrow keys to adjust how it fits your screen. Once you’ve tweaked it, you can back out with the Esc key and go enjoy your media!


Next Time

That’s the end of part 1! Next time I’ll be talking about how to tweak it further — removing the loading circles between videos, adding a corner logo tv-network-style, and what equipment to use to hook it up to actual TV tuners, CRTs, and more.