{"id":35083,"date":"2022-02-21T15:52:44","date_gmt":"2022-02-21T20:52:44","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=35083"},"modified":"2026-03-18T15:17:07","modified_gmt":"2026-03-18T19:17:07","slug":"an-unsolicited-streaming-app-spec","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2022\/02\/21\/an-unsolicited-streaming-app-spec\/","title":{"rendered":"An Unsolicited Streaming App Spec"},"content":{"rendered":"<p><a href=\"https:\/\/hypercritical.co\/2022\/02\/15\/streaming-apps\">John Siracusa<\/a>:<\/p>\n<blockquote cite=\"https:\/\/hypercritical.co\/2022\/02\/15\/streaming-apps\">\n<p>I subscribe to a lot of streaming video services, and that means I use a lot of streaming video apps. Most of them fall short of my expectations. Here, then, is a simple specification for a streaming video app. Follow it, and your app will be well on its way to <a href=\"https:\/\/www.barebones.com\/products\/bbedit\/\">not sucking<\/a>.<\/p>\n<p>This spec includes only the basics. It leaves plenty of room for apps to differentiate themselves by surprising and delighting their users with clever features not listed here. But to all the streaming app developers out there, please consider covering these fundamentals before working on your <a href=\"https:\/\/en.wikipedia.org\/wiki\/Unique_selling_proposition\">Unique Selling Proposition<\/a>.<\/p>\n<p>[&#8230;]<\/p>\n<p>It&rsquo;s a sad state of affairs when the original <a href=\"https:\/\/en.wikipedia.org\/wiki\/TiVo\">TiVo<\/a> on-screen interface bests most modern streaming apps in terms of predictability, legibility, and consistency.<\/p>\n<\/blockquote>\n\n<p>This is a really good list. It&rsquo;s depressing how bad virtually all of these apps are at what seem like basic features.<\/p>\n\n<p><a href=\"https:\/\/twitter.com\/brandononearth\/status\/1494429044909096973\">brandononearth<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/brandononearth\/status\/1494429044909096973\">\n<p>As a former designer on one of these apps, these basic features will likely never arrive. Corporate incentives prioritize features that either make you watch more ads, or make you watch more content. If the feature doesn&rsquo;t do that, it&rsquo;s an internal uphill battle to get it built.<\/p>\n<\/blockquote>\n\n<p>Alas, Apple in the services era is no longer in a position to swim against that tide.<\/p>\n\n<p><a href=\"https:\/\/pxlnv.com\/linklog\/streaming-app-spec\/\">Nick Heer<\/a>:<\/p>\n<blockquote cite=\"https:\/\/pxlnv.com\/linklog\/streaming-app-spec\/\">\n<p>We had just finished watching a recent Marvel movie in the Disney Plus app on our Apple TV, and were waiting for the post-credits scene to play. But midway through the credits, the screen changed to a view where the video was playing at a thumbnail size and there were a couple of onscreen buttons. We tried scrubbing over to the thumbnail to return it to a fullscreen view, but it was not selectable. One of the buttons was marked &ldquo;Play Movie&rdquo; or something similar, so we clicked on that one thinking it would let us play it from where we left off, but it restarted the movie. So we scrubbed to the very end where we could see the post-credit scene, pressed play, and it immediately shrank to that thumbnail screen with two buttons.<\/p>\n<p>This is a Marvel movie &mdash; a movie where scenes in and after the credits are entirely normal &mdash; playing in the parent company&rsquo;s app. And, as far as I can figure out, there is simply no way to watch the post-credit scene.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/sixcolors.com\/link\/2022\/02\/table-stakes-for-streaming-apps\/\">Dan Moren<\/a>:<\/p>\n<blockquote cite=\"https:\/\/sixcolors.com\/link\/2022\/02\/table-stakes-for-streaming-apps\/\">\n<p>My personal addition to this list is better recognition of when you&rsquo;ve finished an episode (I&rsquo;m sorry, I&rsquo;m not always going to watch all five minutes of credits&mdash;you should be able to figure that out).<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/taoofmac.com\/space\/links\/2022\/02\/16\/0814\">Rui Carmo<\/a>:<\/p>\n<blockquote cite=\"https:\/\/taoofmac.com\/space\/links\/2022\/02\/16\/0814\">\n<p>Although the Vodafone Portugal Android TV app does take me to the last channel I was watching when I launch it, <em>it plays it in the background behind a &ldquo;currently on&rdquo; display that takes up the whole screen<\/em>, and I have to do <em>three clicks<\/em> on the remote to make it go away.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/hypercritical.co\/2022\/02\/17\/streaming-app-sentiments\">John Siracusa<\/a>:<\/p>\n<blockquote cite=\"https:\/\/hypercritical.co\/2022\/02\/17\/streaming-app-sentiments\">\n<p>The number one complaint, by far, was that streaming apps make it too difficult to resume watching whatever you were already watching. As I <a href=\"https:\/\/hypercritical.co\/2022\/02\/15\/streaming-apps#\/2022\/02\/15\/streaming-apps\">noted earlier<\/a>, conflicting incentives easily explain this, but people still hate it. A reader who wished to remain anonymous sent this story of how customer satisfaction gets sacrificed on the altar of &ldquo;engagement.&rdquo;<\/p>\n<p>[&#8230;]<\/p>\n<p>People don&rsquo;t feel like they are in control of their &ldquo;data,&rdquo; such as it is. The apps make bad guesses or forget things they should remember, and the user has no way to correct them. Some people told me they have simply given up. They now treat their streaming app as a glorified search box, hunting anew each time for the content they want to watch, and keeping track of what they&rsquo;ve already watched using other means, sometimes even using other apps. (I imagine this flailing on each app launch may read as &ldquo;increased engagement.&rdquo;)<\/p>\nFinally, there was a long tail of basic usability complaints: text that&rsquo;s too small; text that&rsquo;s truncated, with no way to see more; non-obvious navigation; inscrutable icons and controls; and a general lack of preferences or settings, leaving everyone at the mercy of the defaults. Oh yeah, and don&rsquo;t forget bugs, of course. Multiple people cited my personal most-hated bug: pausing and then resuming playback only to have it start playing from a position several minutes in the past. Have fun trying to fast-forward to where you <i>actually<\/i> left off without accidentally spoiling anything for yourself by over-shooting!\n<\/blockquote>\n\n<p>See also: <a href=\"https:\/\/atp.fm\/470\">Accidental Tech Podcast<\/a>.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/01\/29\/apples-q1-2022-results\/\">Apple&rsquo;s Q1 2022 Results<\/a><\/li>\n<\/ul>\n\n<p id=\"an-unsolicited-streaming-app-spec-update-2022-03-09\">Update (2022-03-09): <a href=\"https:\/\/twitter.com\/jesse_squires\/status\/1495932889955028995\">Jesse Squires<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jesse_squires\/status\/1495932889955028995\">\n<p>Notably, \n@plex\n checks off all these boxes.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/isaiah\/status\/1496064938145685507\">Isaiah Carew<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/isaiah\/status\/1496064938145685507\"><p>fire tv is actually pretty good. and despite being related to amazon TV &mdash; this big is different.<\/p>\n<p>usually it will display the movie\/show so long as it&rsquo;s available somewhere &mdash; even on a service you don&rsquo;t subscribe to.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/technollama\/status\/1495856689249230850\">Andres Guadamuz<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/technollama\/status\/1495856689249230850\">\n<p>Can we discuss again the brilliance of this meme?<\/p>\n<\/blockquote>\n\n<p id=\"an-unsolicited-streaming-app-spec-update-2022-09-14\">Update (2022-09-14): <a href=\"https:\/\/twitter.com\/jezperse\/status\/1568703424304234503\">Jezper S&ouml;derlund<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jezperse\/status\/1568703424304234503\">\n<p>Today we wanted to see the next episode of The Americans on \n@DisneyPlus, continuing where we left off yesterday.  It takes 13 clicks to get there in their Apple TV app. Not ok.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/siracusa\/status\/1568719549935001602\">John Siracusa<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/siracusa\/status\/1568719549935001602\">\n<p>The &ldquo;Continue watching&rdquo; section was <em>eleven<\/em> rows of icons down from the top of the Disney+ Apple TV app the last time I tried to watch the latest episode of She-Hulk.<\/p>\n<\/blockquote>\n\n<p id=\"an-unsolicited-streaming-app-spec-update-2026-03-18\">Update (<a href=\"#an-unsolicited-streaming-app-spec-update-2026-03-18\">2026-03-18<\/a>): <a href=\"https:\/\/news.ycombinator.com\/item?id=47366938\">madrox<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=47366938\">\n<p>[I] did a LOT of research on this during my time at Disney while working on Disney+ prior to its launch.<\/p>\n<p>This is, effectively, no different than a carousel of algorithm-recommended content. However, UX studies have found users reluctant to watch something recommended to them. It requires making an affirmative decision on time investment. Most people have the experience of a friend recommending a movie or book and still being reluctant to dive in.<\/p>\n<p>The problem is very similar to dating apps, if you think about it. This is why Tinder&rsquo;s innovation on &ldquo;swipe left\/right&rdquo; took off the way it did. In UX terms it&rsquo;s better to drop users into something and make the cognitive effort be choosing to get out of it rather than choosing to get into it. It&rsquo;s a big part of why TikTok works.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>John Siracusa: I subscribe to a lot of streaming video services, and that means I use a lot of streaming video apps. Most of them fall short of my expectations. Here, then, is a simple specification for a streaming video app. Follow it, and your app will be well on its way to not sucking. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2022-02-21T20:52:46Z","apple_news_api_id":"61145f2a-4544-40b0-8951-be0f60459739","apple_news_api_modified_at":"2026-03-18T19:17:13Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAw==","apple_news_api_share_url":"https:\/\/apple.news\/AYRRfKkVEQLCJUb4PYEWXOQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[615,77,1158,2175,31,2078,26,227,158,1590,97],"class_list":["post-35083","post","type-post","status-publish","format-standard","hentry","category-technology","tag-apple-tv","tag-design","tag-disney","tag-hbo-max","tag-ios","tag-ios-15","tag-iosapp","tag-netflix","tag-strategytax","tag-tv-app","tag-video"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/35083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=35083"}],"version-history":[{"count":5,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/35083\/revisions"}],"predecessor-version":[{"id":51286,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/35083\/revisions\/51286"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=35083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=35083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=35083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}