Linux users: Missed your favorite show? There may still be a way to view it, without annoyances

One of the nice things about free-to-air satellite is that if you try to record the eastern time zone feed of a show and the recording is no good for some reason, you can often find a later time zone feed to watch or record. However, if a channel suddenly “goes dark” with no warning, or if you don’t realize your recording is bad until after any refeeds have already aired, what can you do then?

Many networks put their shows online, on their web sites, so obviously that would be the first place to check. The problem with that is that many of those sites are a pain in the posterior to use. In some cases you have to have a cable company or commercial satellite provider login in order to watch a show, and in any case the stream will most likely be interrupted by annoyances (commercials, and promos for other shows). And, it may require that you have Adobe Flash installed on your system, and fewer systems come with Flash these days because Flash is a dying technology (none too soon, in my opinion). Over a year ago, Adobe itself started telling people to stop using Flash, but apparently many online video sources haven’t heard the message yet. You can still install Flash, but why would you want to? And I don’t know about you, but I find watching a show in a Web browser a less than spectacular experience.

But if you have access to a Linux-based system, there may be a way to avoid many of the annoyances. I will refer you to this article, which tells you how to install a program that will let you download videos from YouTube “and few more similar sites”, but don’t let the word “few” fool you. I am not going to expound on how understated that statement is. What I will say is this, install the program on your favorite Linux-based system (using the instructions in that article, preferably using the curl or wget methods, since you can then use the program’s -U option for updates), and then run it with the --help option and actually read the output. Many of the options won’t make much sense to you at first, but you may see a few that are rather enlightening. If you find a section that makes you think “Wait a minute, it can do that?”, well yes, it probably can.

So here is the procedure to get a missed show. Open up the web page for the network of the show you missed, and if they have a specific link for “full episodes” or something similar, follow that. When you find the thumbnail or link to the episode you missed, right-click on it and copy the link location.

Now run the program, giving that link as the final option on the line. More than likely it will give you one of several responses. If you are lucky, after a small delay it will start downloading the show. When it is finished, you can move the downloaded file to your Videos directory and watch it using whatever software you normally use to watch TV shows (such as Kodi, Plex, or VLC). This is just like watching it in your web browser, except you now also have the option to watch it on your TV. Actually, some would consider it a better experience (often better audio and video quality, and fewer “annoyances”).

If you are not lucky, it will either complain that something about the link isn’t valid, or that it needs you to install additional software, or it will tell you that the video can’t be accessed without a supported provider login. In the latter case, if you do not have a provider login you are out of luck. If you have a provider login (maybe you are visiting your rich uncle that still subscribes to cable, and he’ll let you use his login and password while you’re visiting), again, use the --help option and read everything (particularly the “Authentication Options” section, and the section below it).

If something about the link isn’t valid, it may be that you didn’t copy the correct link from the page, or in rare cases you may need to view the page’s source code to try to find the correct link, which admittedly can be a challenge if you don’t know how to do that. Also, it could be that the site you are trying to access is unsupported. There is support for quite a few sites built in, but not for every single video site out there. The source code for the program is freely available, and it’s written in Python, so if you are a Python programmer maybe you could modify the software to support a particular site of interest.

If it complains that you don’t have ffmpeg or avconf installed, I suggest you install ffmpeg, since it works better with this program. Probably the easiest way to install ffmpeg is to use the FFmpeg Static Build that is appropriate for your operating system and CPU type. Copy the program files (ffmpeg, ffmpeg-10bit, ffprobe, ffserver, and qt-faststart) from the archive into a subdirectory that’s in your system path (/usr/local/sbin is a good choice on most systems), and make them executable. Then try running ffmpeg --help from the Linux command prompt, and if you get the message “Illegal instruction” then you probably installed the wrong version for your system (particularly if it’s running on a Raspberry Pi – on some models you apparently need to use the armel build, and on others the armhf build). If you downloaded the wrong one, just delete the ffmpeg files from wherever you copied them, and start over with the other build.

If, when running the main program it appears as if it is going to work, but then fails with an error message similar to “Failed to resolve hostname” and indicates that the error came from ffmpeg, you probably need to install nscd (the readme.txt file in the FFmpeg static build archive notes that “A limitation of statically linking glibc is the loss of DNS resolution. Installing nscd through your package manager will fix this…”). To do that under Debian, Raspbian, Ubuntu, or similar distributions just do

sudo apt-get install nscd

If you are a Linux command line hater, and are running Ubuntu 16.04 or newer, this article explains how you can install a front-end GUI for the program.

When running the program, if you use one of the subtitle downloading options such as --all-subs, the subtitles will be downloaded in a separate file. In Kodi, if the subtitles file has a .srt extension and the exact same name as the video file except for the extension, Kodi will find and use it. Unfortunately, the subtitles obtained by this program are often in a different format that Kodi doesn’t understand (most I have seen have a .tt extension). You can convert most other subtitle formats to .srt files using a python script named pycaption. Download it and install it using the included install.sh script. The usage is:

pycaption original_subtitles_file.ext --srt > converted_subtitles_file.srt

An alternative PHP script that will download video from a few sites not supported by the program mentioned above is described on this page. However, that script is a bit more difficult to use, especially the first time.

Failing all of that, many show pages will provide links to places where you can buy an individual episode, often for a fairly low price. But if you are like me, it really burns you to pay for an episode that you would have been able to watch for free if the PVR software had worked correctly, or if a stupid local broadcaster hadn’t decided to pre-empt the network show you really wanted to see in favor of some crappy locally-produced content. So, I do tend to like to have alternatives, just in case something happens that causes my PVR software to not record a show. Also, if you subscribe to Netflix, Hulu, or a similar service, don’t forget to check them, since they may have the show you missed.

Now, someone is probably going to ask whether the software mentioned in the linked article is legal. Well, here is the thing, I am not a lawyer, and the laws vary throughout countries in North America. What might be unquestionably legal in one jurisdiction might be illegal in another. This is content that is made available on web sites, and if you just watch the show and delete the file afterwards then you are essentially doing more or less the same thing a browser does, just in a more manual manner, but that may or may not matter as far as the law is concerned. Or to put it another way, this software does exactly what a PVR does, except for some web-based content rather than over-the-air TV. But to repeat – I am not a lawyer, so if this is something that concerns you, you should ask your lawyer. Just be aware that the use of this software may or may not be legal where you live, and I assume no responsibility whatsoever if you choose to use it without bothering to verify whether it’s legal to use where you live. That said, it is NOT peer-to-peer software, so the likelihood that you will get in any trouble for using it is probably rather small.

One other thing you need to be aware of is that many videos are huge – some may be multiple gigabytes, which if you have a usage cap on your ISP connection could be bad news for you (although, keep in mind that you are probably downloading fewer “annoyances” than if you watched it in your web browser, so there’s that). Be aware of the size of the files you are watching! Don’t go hog wild and pull in everything you can think of (this also applies to video you watch in your web browser, by the way – quite a bit of it is more data-intensive than you think, particularly if it’s HD content). It’s always better to record a show direct from a satellite or over-the-air channel when possible, because those shows will not impact your ISP usage cap. Software like this should be used only as a last resort, when other options aren’t available.

And, one drawback of this type of software is that, as far as I am aware, there is no way to schedule shows in advance and have new episodes downloaded automatically when they appear. I am sure that the programmers in the crowd could probably write some kind of script for a specific channel that would find the link for the most recent show on a page and download it, if it’s not been previously downloaded, but that’s not something that’s built into this software.

Two reasons a dish may pull in some available free-to-air signals but not others: The modulation and the FEC (Forward Error Correction) code rate

At the satbroadcasts site there was recently published an article entitled, Minimum carrier to noise ratio values (CNR, C/N) for DVB-S2 system. This handy article and chart explains why, on any given dish, you might have no problems receiving certain signals without problems, but much more difficulty receiving others. It also explains why some people have successfully used a relatively small dish (4 to 6 feet in diameter) to receive certain C-band signals, but for other signals you might be out of luck if you can’t put up a full 10 foot (or even larger) dish.

Basically, there are two things that can make a difference with DVB-S2 signals – the modulation (QPSK, 8PSK, 16APSK or 32APSK) and the FEC (Forward Error Correction) code rate. A QPSK signal will be easier to receive than an 8PSK signal, which will in turn be easier to receive than a 16APSK signal, and so on, assuming the FECs are equal (by the way, PSK stands for Phase-Shift Keying). And as you can see from the chart at that site, a signal using a forward error correction code rate of 1/4 will be much easier to receive than a signal with a FEC of 9/10.

So, while you might get away with a 4 foot dish with a C-band LNB and a conical scaler ring when trying to receive a QPSK signal with a FEC code rate of 1/4 or 1/3, there’s virtually no chance that setup will work to pick up an 8PSK signal with 9/10 FEC. And if you want to receive a 32APSK signal with 9/10 FEC (if such a signal actually exists), you’d better have a really big dish, a super high end LNB, and the ability to aim it all precisely. I may exaggerate just a little here, but receiving any 16APSK or 32APSK signal with anything smaller than a 10 or 12 foot dish may not be possible, depending in part on the FEC used. In my experience, getting reliable reception on an 8PSK 9/10 FEC signal with anything smaller than a 10 foot dish is not possible, but maybe if you have a super LNB and are very patient in getting everything positioned and aimed just right, you might make it work (note I say might, and I certainly don’t recommend trying it unless you absolutely can’t install a larger dish for some reason).

If you’re new to the hobby of receiving free-to-air signals, you might not have been aware that all signals are not created equal, and may have been confused by the fact that your DVB-S2 receiver or tuner reports a high quality reading on some signals, but a low or non-existent quality reading on other signals from the same satellite. Now you know a couple of possible reasons why.

Link: HDTV Overscan: What It Is and Why You Should (Probably) Turn It Off

If most of the video you watch comes from your satellite dish(es) and/or from so-called “set-top boxes” of some kind (why they are still referred to as “set-top boxes”, when there is no practical way you could set them on top of a modern flat-screen TV, I have no idea), and especially if most of what you watch is high definition content, you should definitely read and use the advice contained in this article:

HDTV Overscan: What It Is and Why You Should (Probably) Turn It Off (How-To Geek)

And when you are shopping for a new HDTV set, make sure it has a way to disable overscan before you buy it. I would not give you 50 cents for a brand new HDTV if it does not have a way to disable overscan. Well, maybe I would give 50 cents, but only to give it as a gift to someone I don’t care about very much. Why a very few manufacturers still don’t include a way to disable it is beyond me.

Linux users with Intel HD Graphics 5000, here’s how to view smooth streaming video in a web browser

Some satellite backend systems and advanced receivers offer a web interface, where you can connect using a web browser to perform various administrative tasks, but in some cases there is also an option to view live streams or recorded content. If you click on that, often it will attempt to launch an external player (typically VLC) but in a few cases it may attempt to send the video right to the browser. If that happens and you are running Linux (as some of us do on our media center computers), and your system has an Intel HD Graphics 5000 GPU, you may find that the video is rather jerky or pixelated. The same thing may happen if you attempt to play videos directly from online sites, such as YouTube. The reason is that the Linux versions of web browsers, such as usual default Firefox browser, typically don’t utilize the hardware acceleration of the GPU.

However, it appears that recent stable versions of the Google Chrome browser (version 40.0.2214.91 or later) do support hardware acceleration on Linux-based systems “out of the box”, with no settings to change. This is great news for those of us with systems that have the newer Intel graphics. The hardware acceleration in Chrome may also support other GPU’s, but I cannot be certain of that.  It’s worth a try if you are experiencing this issue, though.

To install Google Chrome in Linux, use your current browser and go to the download page and make sure it is offering a Linux version (if not, click on the link “Download Chrome for another platform”). Select your version of Linux from the list and click the install button. If you are using Ubuntu, it should download a file with a .deb extension and offer to open it in Ubuntu Software center. Allow it to do so and let the install proceed. You may have to type in your user password, and don’t worry if the progress bar appears to freeze up for a minute or so, eventually it should finish.

When it is finished it may say that Chrome needs to be run by typing a command line in a terminal window but at least in Ubuntu, that is not true – you can use the Ubuntu Launcher, just as you would with any other program. Just start typing “Chrome” or “Google” (without the quotes) in the search window and it should appear, like this:

Chrome in Ubuntu

Once you have launched Chrome you can right-click on its icon in the Launcher menu bar and select “Lock to Launcher” from the dropdown, then move the icon to whatever position you like (such as just above or below Firefox) so it will always be instantly available.

If you are running an older version of Chrome and for some reason are adamantly opposed to upgrading (why???) then the information in this thread on the Ubuntu forum may be of some assistance.

Do you know how to disable overscan on your TV, and why you should?

More and more Free To Air satellite viewers are starting to use backend computers that have DVB-S/S2 tuner cards installed, and use backend software such as TVHeadEnd. This allows playback in all rooms of the home, but at each traditional HDTV set you need a computer of some type to act as a frontend. The frontend is then connected to the TV set via a HDMI cable.

Now what you may not realize is that when you do this, or when you use a a more conventional digital satellite receiver with HDMI output, chances are that your TV is not showing you the full picture that the frontend or receiver is sending. In fact, it almost certainly isn’t if you haven’t disabled overscan. What is overscan, you ask? Well, I could now write several paragraphs attempting to explain it to you and why it matters, or I can send you to a very good article at Engadget that explains it much better than I ever could. Since I am a bit on the lazy side, you get one guess which choice I am going to make. Here’s the article:

HD 101: Overscan and why all TVs do it

Here’s another one on the subject from Heron Fidelity:

A Good HDTV Shows You Everything

And one more from HD Guru:

Is Your HDTV Under Performing? Here’s a Fix

Note that this affects more than just satellite reception – it degrades the picture from nearly every digital source that your TV can receive signals from, including non-TV sources such as game machines. Manufacturers leave it enabled because they would rather that some of picture be lost, and the remaining picture a bit less sharp, than to have consumers return TV’s as “defective” because they happen to see a line at the top or side of the screen on one or two channels.

The big problem is that not all sets have a way to turn it off, and some that do hide the setting that turns it off very well. I’ve seen the feature referred to as Overscan, 1:1, Dot by Dot, Just Scan, Exact Fit, Screen Fit, Native, and a few other terms I can’t remember offhand. It might be grouped with the picture size and aspect settings, or it might be in an advanced settings menu, or in some other place entirely. Some manufacturers, such as Vizio, either omit it entirely or include it under a rather non-obvious setting. And I have even come across TV’s where you have to change the way the frontend computer sends the signal to the TV before the option is exposed, such as with certain older Sharp models.

Quite a few of the signals on the satellites nowadays are in glorious high definition, so why would you want your TV to degrade that signal? Find the setting to disable overscan, if your TV has one, and activate it. The only exception to that advice might be if you are primarily watching old TV shows made in pre-digital times, and the uplinker is transmitting the video with the old analog-style closed caption and other control data visible as flashing white and black scan lines at the top of the picture area. There is no really no reason any digital uplinker should be doing that, but I cannot assure you that none of them do it.

How to reduce the remote control reverse skip time in Kodi / XBMC

EDIT: This article is applicable to Kodi Helix, and to some versions of XBMC. Kodi Isengard implemented Skip steps, which should be used to make this type of adjustment.  The method shown below will probably not work in Isengard and newer versions of Kodi.

If you use Kodi / XBMC as your frontend for watching programs off of your satellite tuners, you might have found it a bit frustrating that although the left and right arrows on your remote control will let you skip forwards and backwards in the recording, both skips are set by default to 30 seconds. So if you skip ahead and find you have gone past the end of whatever it was you were trying to skip, and skip back once so you don’t miss anything, you may still have to endure as much as 29 seconds of something you don’t want to see. Most of the time, forward skips in 30 second increments work out well, but we’d prefer backward skips to be smaller, so we can target the start or resumption of whatever we actually want to watch more closely.

Here’s how to change the backward skip time to 7 seconds. This is known to work with MCE-compatible remotes, and may work with some others as well.

First, locate your Kodi/XBMC userdata folder – if you don’t know where it is, see this wiki page. Within that folder there should be a folder called keymaps, and inside that folder there should be a file called remote.xml – if it’s not already there, you’ll need to add it.

If the remote.xml file is not present or is empty, then create it if necessary and add these lines:

<keymap>
<FullscreenVideo>
<remote>
<left>SmallStepBack</left>
</remote>
</FullscreenVideo>
<FullscreenLiveTV>
<remote>
<left>SmallStepBack</left>
</remote>
</FullscreenLiveTV>
</keymap>

If a remote.xml file already exists then it will be necessary to integrate the above into the existing XML file, which will be easy for those who understand how XML files are structured.

After you have saved the remote.xml file, if Kodi/XBMC is running, completely shut it down and restart it.

If this doesn’t work, you may need to find Kodi’s (XBMC’s) master remote.xml file, which is in different locations depending on the operating system (for example, in many Linux-based systems it is at /usr/share/xbmc/system/keymaps – to find the path for your operating system, you can look at this page, and find your operating system and the path associated with special://xbmc, then append /system/keymaps to the end of that path) and examine the remote.xml file there to find instances of

<left>StepBack</left>

You must then recreate that branch of the XML “tree” in your … /userdata/keymaps/remote.xml file, in a manner similar to that shown above, but change all instances to

<left>SmallStepBack</left>

Note you don’t need to duplicate anything from the master remote.xml file you are not changing – Kodi/XBMC will use the master remote.xml file for anything you don’t explicitly specify in your … /userdata/keymaps/remote.xml file. DO NOT change the master remote.xml file – for one thing, if you ever update Kodi/XBMC then your changes may (probably will) be overwritten.

For an additional example of changing remote control button mapping in Kodi/XBMC see Optimize remote mappings for users.

By the way, if you’d prefer that the reverse skip time were a bit longer or shorter, you can change that by adding or editing a file in the userdata folder named advancedsettings.xml – for information on creating the file see this page. If you create the file or if it is empty when you start, then all it needs to contain is this:

<advancedsettings>
<video>
<smallstepbackseconds>7</smallstepbackseconds> <!– Length of the small skip back when playing a video –>
</video>
</advancedsettings>

Just change the “7” to the number of seconds you’d prefer for the reverse skip time. If an advancedsettings.xml already exists, you’ll need to combine the above with the existing file.