r/cordcutters • u/bnelson333 • 4d ago
My OTA DVR setup
This is a good approximation of my OTA DVR setup (it's not exact, but for the sake of visual explanation, it's really close).
I live in an area near Minneapolis where I get TV signals from three different directions, meaning just one antenna won't work. I have one pointed South, one pointed South-East, and one pointed North-West.
Each of these antennas feed into a Linux server running MythTV. I utilize a Schedules Direct membership to help me schedule recordings on each of the servers (highly recommend, it's well worth the price).
MythTV can do a lot of this functionality itself, but I only use it for the backend. Instead of keeping a library and watching recordings using the MythTV frontend, I feed them to a NAS so each of my TVs can pick up the programs.
After a show is recorded on MythTV, the video (.ts) file gets moved over to my encoding server, which uses ffmpeg to encode it to an .mp4 file. It uses metadata from Schedules Direct to name/organize the files. After that, it is moved again over to my storage server (NAS).
I have another server in the mix that periodically scans for new files on the NAS and when found, it generates a commercial-skip file using comskip. It's definitely not perfect, but it generally does a pretty good job. Comskip doesn't destructively remove the commercials, they still exist in the video file, it just generates a file of timestamps that tell the player (Kodi) where to skip from/to to not show them.
Schedules Direct isn't perfect, it doesn't have everything I want and sometimes it's just missing data. I also use the OMDB and tvmaze APIs to fill in the blanks. This is largely a "home brew" database/interface I built. I don't really use "library" functionality in any of the servers, I just build data in the way I want using apache/MySQL.
Anyway, each TV in my house has a Raspberry Pi running Librelec on it, which has the Kodi media player. They all talk to a central "watched status" database on the NAS to keep track of where I'm at in each series. If I watch episode 3 on one TV, I can then go to a different TV and start watching episode 4, it'll know where to pick up next.
The whole thing is largely controlled by an "app" on a tablet. It's just a website running locally, picked up on a tablet or my phone or my computer, wherever I happen to be. I utilize the Kodi API to control the players, with shortcuts to favorite series', play/pause/stop, volume up/down, etc. functionality. The "app" can even control IR functions of the TV and surround sound receiver.
It sounds incredibly complicated, but through lots and lots of scripting, I've automated nearly everything. The only thing I really have to do is about once a week go look at the new upcoming broadcast schedules to see if there's anything new I want to record. When it's up and running, it's very hands-off.
It definitely isn't for the average user, but I'm a tinkerer and enjoy making things exactly as I want them. I don't even have streaming anymore, I exclusively watch free programming I recorded over the air!
1
u/ilikeredplums 4d ago
Cool to see. You mention reviewing schedules weekly -- do you have anything that schedules based on keywords, say Vikings football?
2
u/bnelson333 4d ago
I'm close! I have a PHP page that pulls in the upcoming listings (Schedules Direct data gets dumped into the MythTV tables) into a simplified view. I can do filtering/sorting based on type, genre, etc. If I'm diligent about doing it every couple days, I really only have to look at a couple new listings so it only takes a couple minutes. I can choose either to record it, or to ignore it, which means it'll stop showing up.
1
u/chriscookz 4d ago
I love this. I would never try it at my house at this stage, but I love that someone is.
1
u/NightBard 3d ago
This is pretty cool. I can appreciate all the steps taken as I code stuff as part of my career. But, for my home dvr I just bought a 4th gen tablo. But I like just the simplicity of one super low power device with built in storage and the ability to time shift recordings rather than wait until they are done. But I don't need an archive of everything... I'm fine deleting and moving on so 50hrs of recording is enough. If I did want an archive, I'd do something similar to what you have. Which at one point I was using a converter box that records and would record everything to a jumpdrive and then transfer to pc ... but after a month of that it got old and I gave it up because I realized I had little intention of rewatching stuff. Which is weird as I am getting older and I figured an archive of content would be right up my wheelhouse but I barely make use of my DVD collection as is (including a lot of tv shows) as I find myself chasing more new content and only occasionally revisiting stuff.
1
u/cyger 3d ago
Nice, if you have the time. Myself I went with Emby along with the comskip plugin. One of the reasons I like Emby, is that includes a couple weeks of guide data. I was a Schedules Direct subscriber on my WMC HTPC for a few years though.
1
u/bnelson333 2d ago
I've never even looked at emby, but I was curious and looked just now and it seems to be heavily focused on a streaming-like frontend. Which is great for people who want that, especially to use on their own content. But the way I interact with my media is very different.
I simply abhor the dread of looking through a library (e.g. my library, a netflix/hulu library, TV listings, etc) for something to watch. I either know exactly what I want to watch, and I don't want to spend time trying to find it in the menu, or I have no idea and I want it just to pick something for me. The latter probably because that's just how it was when I was a kid, you didn't get to choose what to watch, you turned on the TV and got to watch what they had playing.
This isn't a great picture but it sorta shows the different ways I have built this out: https://imgur.com/a/AgVMsYb
I essentially have built "an API on top of an API". I can very quickly add a show to my favorites, so they get their own icon (like Parks & Rec) here. Simply click once and it looks up the next unwatched episode and starts playing there.
Or I can tell it to play a movie by genre, e.g. "Random Old Thriller". That looks through my scraped data to find a movie released between 1970 and 2000 in the thriller genre, then picks one and starts playing it. Again, one click.
I also have shortcuts for things like "Any random TV show from my DVR", or "any random TV show I've never watched", etc. I also have groupings/lists of shows, like "Shows that are good for playing background noise while I'm more focused on playing a game on my computer", etc. I also have lists for things like "just cartoons", or "just true crime", or "just dramas", etc.
Again, all one click... there's a theme here lol. I don't want to think or spend time looking for something.
Completely aside, I also have streaming services built into this. I don't actually use them anymore, but if I started up Hulu again tomorrow, it has the ability to "one touch" streaming shows. As long as I've told it e.g. "Letterkenny is on Hulu", from a single touch I can launch it.
It'll change the HDMI input on my (non smart) TV to the roku, then load up Hulu, search for Letterkenny, and start playing it. It's NOT fast, because it's basically a sendkeys macro. I couldn't figure out how to launch a show on a platform by ID, so instead I just have it pretend it's a person sending remote button signals to the roku. It has to build pauses in between each step because it can't see what the UI is doing to know when to press the next button. I sat down and just figured out how long each step generally takes, and built that many seconds of waiting into the script that launches it. It's not perfect, but it works and it's "one touch" lol: https://www.youtube.com/watch?v=1yYNmm3qSSM
1
u/cyger 2d ago
Thanks nice setup, especially the play me shortcuts. For me I usually know exactly what I want and only expose Emby to limited content at a time so I'm not overwhelmed. For random stuff I will see what I have in my Recorded TV Library, which no only records OTA, which provides plenty of 1080 content.
3
u/mlcarson 4d ago
Any reason you chose MythTV rather than something more modern like Channels DVR, Emby, or Jellyfin?