Author’s Note: The purpose of this is a combination of fun rant, illustration of a general failure mode, that I am going to eventually use this for something in at least some worlds, and the fact that a decent number of workers at Google read my blog and it would be nice if they actually went and fixed some of this or added some of the features. If I do cause that, let me know.

To everyone else: If this isn’t relevant to your interests, please do skip it.

This is a post about spoilers, and how to design features to avoid them.

I hate spoilers.

I especially hate sports spoilers.

The sports world disagrees. The sports world loves spoilers. The sports world wants nothing as much as it wants to tell you what happened five minutes or five hours ago. They love to give you the Breaking News.

Some of this is them knowing their audience. Most sports fans want to know the sports news most of the time.

Some of this is them wanting you to watch live. A live eyeball is more valuable to advertisers. A live eyeball creates a community event. I get it.

I disagree. I consume sports by ‘living in the past.’ I record things when they happen, and then I watch when on my schedule, especially when I’m hanging out with the family, watching the kids or taking care of the baby. For college football weekends, I’ll often want to watch multiple games that are played simultaneously, which makes things even trickier, but more than that you get a ton of content on Saturday/Sunday and then you want it to last for a few days.

Ideally I’d like to be able to do Advanced Anti-Spoiler Tactics, such as ‘feed this website my preferences over game features or over potential games, then ask it what to watch, and have it tell me the answer putting some weight on what happens but not to so much that I feel spoiled or know a blowout couldn’t happen.’

So the rest of this is written from my perspective, someone who wants to watch games with minimal spoilage.

YouTubeTV Earns a Cake

By default, YouTube’s interface makes it impossible to watch sports and not know the outcome.
I navigated to New York Yankees on my computer, which showed me this.

This page contains, among other things:

  1. The score of their last game.
  2. Their record for the season (a very impressive 64-28)

That’s almost the most of a spoiler something can be.

It can be worse. The NFL Network rebroadcasts will literally show the final score of the game it is rebroadcasting, during the rebroadcast. So you’ll be watching Atlanta at Tampa Bay and they will put on the screen “Atlanta 24, Tampa Bay 20, FINAL” as if everyone knows that and is here to study film or something.

Anyway, YouTubeTV recognized the issue and is here to help. There is a button to ‘hide sports scores.’ Congratulations.

It’s not that the button does nothing. The button does indeed do something valuable. Without the button, you would be bombarded by game scores at every turn and all hope was lost. With it, at least some things are blurred some of the time. You’re at least alive in the contest to watch your game without knowing everything. Mostly.

You still need to dodge the unfortunate problem of they display the win-loss record of the team on the team page. This is exactly as crazy as it sounds – the ultimate spoiler for everything, in the place you go to navigate to find the events that would be spoiled.

On a PC, I do not even know how to avoid the screenshot above.

The problem is, as they say, you missed a spot. Or several.

Another very minor spot is the ‘key plays’ button. By default, YouTubeTV thinks you don’t want to watch the whole game, I mean that sounds like so much work. You must instead want to ‘key plays’ only, the highlights. This is a great feature to have as an option for those that want it but I have intentionally used it zero times after trying it out once to see what it was. It’s not what I want. Yet this requires two extra clicks every time I start a new game, and if I forget and hit the wrong button, it starts spoiling the game and I don’t believe you can turn the option off or make it not the default (thus saving one of the clicks and avoiding mistakes). Luckily this is the kind of thing the hand starts doing automatically after a while, but it’s annoying.

There’s also the issue of doubleheaders. When the Mets play the Cubs twice in one day, if it’s been more than 24 hours, it’s basically impossible to know which game is which – they both have the same date. If I click on the 2nd game, it will likely spoil the 1st game before I realize I’m looking at the 2nd game. Thus, they should either be labeled (game 1, game 2) or the time should be listed somehow. You could fix this at only minor annoyance cost by going into the team page, but again the team page contains the team’s full record.

There’s two more that are less minor. One has a fix if you know about it but shouldn’t require it. The other could be fixed by the app, but not by the user.


If you turn on YouTubeTV, by default, it will start playing one of the channels you frequently watch while you navigate the menus to select what you want. The concept is to ‘mimic what would happen with cable’ which of course only raises further questions.

When I was watching a bunch of BBC to see what was going on in Ukraine, I found this somewhere between neutral and small positive.

If you’re watching a lot of baseball games, guess which channel gets picked? That’s right, the channel with the baseball games, in my case SNY for the New York Mets.

Guess what that channel is often broadcasting at any given time?

That’s right. Either today’s game, or a rebroadcast of yesterday’s game.

And guess what they always display on the top left, where the menu won’t superimpose on top of it but it’s impossible for your eye to not see it by default?

Right again. The score of the game and the current inning.

Plus they turn the sound on, which can easily give everything away. Even if they’re playing some other show, the entire channel exists to spoil Mets games, so the chance of being spoiled within those 10 seconds isn’t small.

Turning on ‘hide scores’ very much does not get around this problem.

The good news is there’s another button to turn off AutoPlay, which solves this, but I spent months not aware it existed, during which I would load the app by first muting, then putting my arm over the top of the screen, then trying to find the game.

If you turn on hiding scores the app should 100% also stop any automatic playing of any sports channel or sporting event.

The Other One

Spoiler Alert of sorts: Apologies for causing your brain to (if you didn’t already know about this dynamic) spoil things for you more efficiently – you may want to skip this section if you don’t want that.

Let’s say it is the middle of the seventh. Stretch time. The home team has a 4-2 lead. You fast forward through the commercials and you notice there is only about a half hour left on the recording that is adjusted to always include the whole game.

Well, guess who won this one?

There often simply isn’t time for a comeback or other interesting result to happen during the recording. If there is a bottom of the ninth, and three runs are somehow scored along the way, it’s going to take too long almost every time.

The ultimate version of this is you get to the top of the ninth with six minutes left, or even worse you get to the bottom of the ninth with six minutes left and a tied game.

You can similarly rule out extra innings or overtime the same way in most games. In others, at some point, you can almost assume they are coming.

This profoundly changes many viewing experiences, in ways I generally strongly dislike.

You can, of course, say ‘that is on you, why are you devoting brainpower to figuring these things out when you can just not do that.’ And my response would be yes I would also like to not do that but I don’t know how to not do it.

You can then say ‘well then all you have to do is not know how long the recording is’ and there are various tactics you can use to try and avoid seeing this information, but it’s stressful and unreliable to do this.

The solution is an option, which I believe should be on by default but I will settle for an option, to hide the length and endpoint or to extend the recording (it’s not like it costs Google anything to do that) to where 99%+ of games will have finished so it tells you nothing. You know you are 2:43 into the recording but not when it ends. Or simply have an option not to display lengths and current locations of sports games on the screen at all, for any reason, if that’s easier to implement.

This is a serious enough problem that I seriously considered choosing cable over YouTubeTV, but there were enough other problems with cable slash advantages to YouTube (e.g. infinite recording space is pretty sweet) that I didn’t, and I’m not sure I made the right choice.

Bonus Round: Hiding the Score Bar

If one wanted to go above and beyond, there are more things to do here, both for spoiler and focus/experience reasons.

During many games, there is a section at the bottom of the screen devoted to showing scores of other games and other general sports information. This won’t always spoil anything in a meaningful way, but it makes it highly difficult to watch different games that were played at the same time, or to go ‘out of order’ in case you want to watch the good stuff first (or save it for last).

The thing, is even if that’s not a problem, this is still highly annoying to me and I think to a lot of other people. There’s a bunch of numbers and information coming at you. It’s hard to not notice it. So it distracts you. It makes the viewing experience worse. I want it to go away.

I have considered putting a literal barrier up on the bottom of my television to block it.

This is not a difficult problem. It is easy for Google to detect the area that contains this information in a given broadcast, and block it. Or in some cases to detect when it is or isn’t there – it’s not like they’re being subtle about this – and black it out when it is there but not when it isn’t.

This would be a valuable service. It’s above and beyond, but it’s worth doing.

Bonus Round 2: Auto-Skip Game Breaks

This is almost certainly asking too much, but who knows. If you want to be extra helpful, there are things in broadcasts called ‘game breaks’ where they will cut to action in other games. They share enough common patterns that using automated identification of them should be easy, and they contain the bulk of the spoilers that aren’t in the bottom bar. If the system had an option to automatically black them out and silence them, that would be awesome.

The ultimate ideal here is to give an option to literally censor all spoilers manually the way people censor curse words, but I doubt the demand is there to justify it.

Bonus Round 3: Intelligent Game Selection

The ultimate feature is to assist with helping people find the games worth watching in a way that doesn’t spoil outcomes. This is a difficult problem, especially if you aren’t going to ask for a bunch of fiddly preferences, which everyone wants to avoid these days.

One could use machine learning in various ways, but for now let’s assume we’re doing this manually. I would assign points to various features of games, basic things like: Teams you follow or watch more, teams that have better records or are in playoff contention, being part of the playoffs, clips that get played on SportsCenter later, records broken, various awesome individual things, a sort of excitement index (how much the game is in doubt for how long and how often probability of victory changes a lot), and so on. You’d want to be sure to have high scores from ‘individually awesome’ events often, so the game would sometimes not be close, and you’d assign more value to those when they come near the end of the game to avoid giving too much away.

You’d then pick some threshold where you always recommend the game, and some threshold below that where you sometimes recommend the game and other times you don’t.

Ideally you’d let people customize the weights but that is a hard sell these days.


This is a place where I have quirky preferences, a quirky use case, and my unique brain is working against me. Still, I do think that some of this applies far more broadly. It also illustrates that often something being wrong is simply the result of not actually talking to people who are trying to use it, or those trying to use it in the way you have in mind.

Hopefully this was fun, and maybe it even leads to marginal improvement somewhere. That’s all I’m really hoping for here, beyond this being a reference post marker I can use when I later go deeper into this. This won’t be any kind of major thrust in the blog, but part of how one keeps going is to sometimes write what’s personal and fun and bothering you rather than what would be otherwise optimal. Balance in all things.


New Comment
6 comments, sorted by Click to highlight new comments since: Today at 8:48 PM

You know what I've been impressed by? Some eSports broadcasts intentionally upload videos with large amounts of dead air at the end if they're showing a two-out-of-three where one side won the first two games -- that way you won't get spoiled on the result by the length of the video!

Google is also punishing this kind gesture. When viewers skip over dead-air at the end of a video that really hurts the video's recommendations in the algorithm.

Unlike the thing with the sports scores (adverse incentives for the firm to put people in a specific environment and punishing them for not going out of their way to seek that environment), fixing the dead air-punishing algorithm is actually a tractable area. 

It's not only a prerequisite to enjoying the esports but it also reduces the risk that people will click away before the video ends due to feelings of dissatisfaction (a classic cause of going to a different website/app).

This was the UX I was going to mention - watching GSL (SC:BW) VoDs. There it is tricky, especially since individual games can vary so heavily.

Can this be partially fixed by using uBlock Origin or whatever to hide certain elements of the page? I'd expect it to help at least imperfectly, not sure if you've tried it.

When watching my Nats on (who do not have QUITE the record of your Mets or Yanks this year) I have to literally cover the screen most of the screen with my hand when the streaming is interrupted, I have to refresh the page, and it assumes I want to jump to Live. This happens at least five times a game, sometimes more like twenty times a game.