Getting TV Shows You Can't Buy
Published 2018-11-3This is a bit of an off-color post for me, but today I faced a major frustration: I went on Amazon to buy a TV Show that I've been wanting to watch... and I couldn't get it on Blu-Ray.
The high-def version is held hostage to rent-only services like Amazon Prime that only allow you to cache a streamable copy of the "Purchased" show on your hard drive.
I'm not a fan of torrenting*, but when it's the only option I have for casting my vote for digital ownership, it's how I cast my vote.
Anyway, one of the less terrible sites I'd recommend if you're in the unfortunate position of wanting to own a show for which there is no "legitimate" option is https://eztv.it (currently https://eztv.re).
Once you find the show that you want to own a copy of, there are often a few different contributors and perhaps a few different versions (English Dub, 720p, 1080p, etc).
Here's a little script that will filter the view based on keywords:
function filterEztv(keywords) {
var sh = [];
$$('tr.forum_header_border').filter(function ($el) {
if (!keywords.every(function (kw) {
return -1 !== $el.innerText.indexOf(kw);
})) {
$el.hidden = true;
return;
}
return true;
}).forEach(function ($el) {
console.log('# Magnet:', $el.querySelector('a[href^="magnet"]').href);
if ($el.querySelector('a[href$="torrent"]')) {
sh.push("wget -c '" + encodeURI($el.querySelector('a[href$="torrent"]').href) + "' # Torrent");
}
});
return sh;
}
For example here's how I filter the list to only Season 1 of a show uploaded by FooBar, tagged as 720p:
console.log(filterEztv([" S01E", "720p", "FooBar"]).join("\n"));
* in the colloquial sense, meaning its dubious use - not the technology itself, which is a great technology.
Bonus Update (2018-11-14):
Here's how to sort the https://eztv.re/showlist/ show list by popularity:
var myTable = document.querySelectorAll("table.forum_header_border")[1];
var myTrs = Array.prototype.slice.call(myTable.querySelectorAll('tr[name="hover"]'));
myTrs.sort(function (a, b) {
a = parseInt(a.querySelector('span').innerText.replace(/.*?\((.*) votes\).*/, '$1').replace(/,/g, ''), 10);
b = parseInt(b.querySelector('span').innerText.replace(/.*?\((.*) votes\).*/, '$1').replace(/,/g, ''), 10);
console.log(a, b, b - a);
return b - a;
}).forEach(function (tr) {
myTable.appendChild(tr);
});
By AJ ONeal
Did I make your day?
Buy me a coffee
(you can learn about the bigger picture I'm working towards on my patreon page )