HBO Max: Dissected

HBO Max is HBO's new OTT service. The service includes the entire HBO Now & Go library, plus new original & external content. HBO Max launched yesterday (2020-05-27), costs $14.99/month, and offers a free 7-day trial to get you hooked.

HBO Max
Say hello to HBO Max, the streaming platform that bundles all of HBO together with even more of your favorite movies and TV series, plus new Max Originals.

Supported platforms

HBOMax.com writes that the service is available on Browsers, Android (TV), iOS, Apple TV, Chromecast, PlayStation 4, Xbox One and Samsung TV.

There's currently no support for Roku and FireTV (and LG WebOS). Pretty weird, right? (CNET agrees.)

UI

The user interface feels similar to the Netflixes of the world. πŸ€·β€β™€οΈ

Their video player UI is minimal. Users cannot manually change video qualities or audio tracks. There's a button to jump back in time, but not forward. The styling of subtitles can be adjusted. Trickplay is only previewed when scrubbing the seekbar – not when hovering the seekbar.

Screenshot of the HBO Max UI.

Tech stack

Their setup is by the book. They use multi-DRM, commercial and in-house video analytics solutions, and multiple commercial CDNs. They use a proprietary trickplay system and an in-house video player. They offer a wide range of video and audio profiles (kudos to them), but it's unclear which encoder and packager they use.

Streaming protocols

As expected, they use MPEG-DASH and HLS with DRM.

Their MPEG-DASH streams split their video qualities over more than one AdaptationSet to achieve multi-key protection. Audio is offered in multiple formats and subtitles are delivered through TTML.

One stream lists the following AdaptationSets for video:

  • AdaptationSet 1
    • 416x234 with avc1.4D400D
    • 640x360 with avc1.4D401E
    • 768x432 with avc1.4D401E
    • 960x540 with avc1.4D401F
  • AdaptationSet 2
    • 1280x720 with avc1.4D401F
    • 1280x720 with avc1.4D401F
    • 1920x1080 with avc1.640028
    • 1920x1080 with avc1.640028

The same stream lists the following AdaptationSets for audio:

  • AdaptationSet 1
    • ac-3 with bandwidth 387000 (Surround)
  • AdaptationSet 2
    • ec-3 with bandwidth 259000 (Surround)
  • AdaptationSet 3
    • mp4a.40.2 with bandwidth 133000 (Stereo)

HBO uses HLS v4 and v5 with 6 second chunks. The video and audio profiles are similar to MPEG-DASH. Subtitles are delivered through WebVTT – most likely to allow for closed captions on Apple devices. Below is an example of one of their HLS master playlists:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-SESSION-KEY:KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1",METHOD=SAMPLE-AES,URI="skd://PROD798037/1"

#EXT-X-STREAM-INF:AUDIO="audio-aacl-128k",AVERAGE-BANDWIDTH=1376000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401E,mp4a.40.2",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=768x432,BANDWIDTH=2086000
video/23.98p/r0/vid05/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ac3-384k",AVERAGE-BANDWIDTH=1632000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401E,ac-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=768x432,BANDWIDTH=2342000
video/23.98p/r0/vid05/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ec-3-256k",AVERAGE-BANDWIDTH=1504000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401E,ec-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=768x432,BANDWIDTH=2214000
video/23.98p/r0/vid05/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-aacl-128k",AVERAGE-BANDWIDTH=563000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D400D,mp4a.40.2",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=416x234,BANDWIDTH=800000
video/23.98p/r0/vid03/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ac3-384k",AVERAGE-BANDWIDTH=819000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D400D,ac-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=416x234,BANDWIDTH=1056000
video/23.98p/r0/vid03/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ec-3-256k",AVERAGE-BANDWIDTH=691000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D400D,ec-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=416x234,BANDWIDTH=928000
video/23.98p/r0/vid03/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-aacl-128k",AVERAGE-BANDWIDTH=972000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401E,mp4a.40.2",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=640x360,BANDWIDTH=1433000
video/23.98p/r0/vid04/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ac3-384k",AVERAGE-BANDWIDTH=1228000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401E,ac-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=640x360,BANDWIDTH=1689000
video/23.98p/r0/vid04/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ec-3-256k",AVERAGE-BANDWIDTH=1100000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401E,ec-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=640x360,BANDWIDTH=1561000
video/23.98p/r0/vid04/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-aacl-128k",AVERAGE-BANDWIDTH=1991000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,mp4a.40.2",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=960x540,BANDWIDTH=3080000
video/23.98p/r0/vid06/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ac3-384k",AVERAGE-BANDWIDTH=2247000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,ac-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=960x540,BANDWIDTH=3336000
video/23.98p/r0/vid06/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ec-3-256k",AVERAGE-BANDWIDTH=2119000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,ec-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=960x540,BANDWIDTH=3208000
video/23.98p/r0/vid06/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-aacl-128k",AVERAGE-BANDWIDTH=2700000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,mp4a.40.2",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1280x720,BANDWIDTH=4210000
video/23.98p/r0/vid07/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ac3-384k",AVERAGE-BANDWIDTH=2956000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,ac-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1280x720,BANDWIDTH=4466000
video/23.98p/r0/vid07/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ec-3-256k",AVERAGE-BANDWIDTH=2828000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,ec-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1280x720,BANDWIDTH=4338000
video/23.98p/r0/vid07/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-aacl-128k",AVERAGE-BANDWIDTH=3623000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,mp4a.40.2",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1280x720,BANDWIDTH=5640000
video/23.98p/r0/vid08/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ac3-384k",AVERAGE-BANDWIDTH=3879000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,ac-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1280x720,BANDWIDTH=5896000
video/23.98p/r0/vid08/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ec-3-256k",AVERAGE-BANDWIDTH=3751000,CLOSED-CAPTIONS=NONE,CODECS="avc1.4D401F,ec-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1280x720,BANDWIDTH=5768000
video/23.98p/r0/vid08/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-aacl-128k",AVERAGE-BANDWIDTH=5752000,CLOSED-CAPTIONS=NONE,CODECS="avc1.640028,mp4a.40.2",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1920x1080,BANDWIDTH=9054000
video/23.98p/r0/vid09/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ac3-384k",AVERAGE-BANDWIDTH=6008000,CLOSED-CAPTIONS=NONE,CODECS="avc1.640028,ac-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1920x1080,BANDWIDTH=9310000
video/23.98p/r0/vid09/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ec-3-256k",AVERAGE-BANDWIDTH=5880000,CLOSED-CAPTIONS=NONE,CODECS="avc1.640028,ec-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1920x1080,BANDWIDTH=9182000
video/23.98p/r0/vid09/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-aacl-128k",AVERAGE-BANDWIDTH=8549000,CLOSED-CAPTIONS=NONE,CODECS="avc1.640028,mp4a.40.2",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1920x1080,BANDWIDTH=13517000
video/23.98p/r0/vid10/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ac3-384k",AVERAGE-BANDWIDTH=8805000,CLOSED-CAPTIONS=NONE,CODECS="avc1.640028,ac-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1920x1080,BANDWIDTH=13773000
video/23.98p/r0/vid10/prog_index.m3u8
#EXT-X-STREAM-INF:AUDIO="audio-ec-3-256k",AVERAGE-BANDWIDTH=8677000,CLOSED-CAPTIONS=NONE,CODECS="avc1.640028,ec-3",FRAME-RATE=23.976,SUBTITLES="subtitle-webvtt",RESOLUTION=1920x1080,BANDWIDTH=13645000
video/23.98p/r0/vid10/prog_index.m3u8

#EXT-X-MEDIA:AUTOSELECT=YES,DEFAULT=YES,TYPE=AUDIO,NAME="English (en-US)",GROUP-ID="audio-aacl-128k",LANGUAGE="en-US",CHANNELS="2",URI="audio/program/en-US/2.0/r0/aac-128k/prog_index.m3u8"
#EXT-X-MEDIA:AUTOSELECT=YES,DEFAULT=YES,TYPE=AUDIO,NAME="English (en-US)",GROUP-ID="audio-ac3-384k",LANGUAGE="en-US",CHANNELS="6",URI="audio/program/en-US/5.1/r0/ac3-384k/prog_index.m3u8"
#EXT-X-MEDIA:AUTOSELECT=YES,DEFAULT=YES,TYPE=AUDIO,NAME="English (en-US)",GROUP-ID="audio-ec-3-256k",LANGUAGE="en-US",CHANNELS="6",URI="audio/program/en-US/5.1/r0/ec3-256k/prog_index.m3u8"

#EXT-X-MEDIA:AUTOSELECT=YES,DEFAULT=YES,TYPE=SUBTITLES,NAME="English CC",GROUP-ID="subtitle-webvtt",LANGUAGE="en-US",CHARACTERISTICS="public.accessibility.transcribes-spoken-dialog,public.accessibility.describes-music-and-sound",URI="webvtt/sdh/en-US/r0/prog_index.m3u8"

#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=73000,CODECS="avc1.4D400D",RESOLUTION=416x234,BANDWIDTH=147000,URI="video/23.98p/r0/vid03/iframe_index.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=133000,CODECS="avc1.4D401E",RESOLUTION=640x360,BANDWIDTH=274000,URI="video/23.98p/r0/vid04/iframe_index.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=181000,CODECS="avc1.4D401E",RESOLUTION=768x432,BANDWIDTH=404000,URI="video/23.98p/r0/vid05/iframe_index.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=247000,CODECS="avc1.4D401F",RESOLUTION=960x540,BANDWIDTH=611000,URI="video/23.98p/r0/vid06/iframe_index.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=302000,CODECS="avc1.4D401F",RESOLUTION=1280x720,BANDWIDTH=835000,URI="video/23.98p/r0/vid07/iframe_index.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=357000,CODECS="avc1.4D401F",RESOLUTION=1280x720,BANDWIDTH=955000,URI="video/23.98p/r0/vid08/iframe_index.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=608000,CODECS="avc1.640028",RESOLUTION=1920x1080,BANDWIDTH=1720000,URI="video/23.98p/r0/vid09/iframe_index.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=756000,CODECS="avc1.640028",RESOLUTION=1920x1080,BANDWIDTH=1974000,URI="video/23.98p/r0/vid10/iframe_index.m3u8"

CMS

A service, presumably called 'Comet', functions as their public CMS.

A payload is sent to https://comet.api.hbo.com/content and a JSON response is returned.

Example payload:

[{"id":"urn:hbo:video:GXd7o9Q1W_bPDfgEAAAWB:feature:GXd7o9Qjb8JuAuwEAADwB","headers":{"x-hbo-desired-bitrate":1220,"x-hbo-device-model":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","x-hbo-download-quality":"LOWEST","x-hbo-device-code-override":"DESKTOP","x-hbo-video-encodes":"H264|DASH|WDV"}}]

Example response:

[
  {
    "id": "urn:hbo:video:GXd7o9Q1W_bPDfgEAAAWB:feature:GXd7o9Qjb8JuAuwEAADwB",
    "statusCode": 200,
    "headers": {
      "ETag": "\"b8b-nCenVC6zruToEe1YK/E9DQ\"",
      "Cache-Control": "max-age=60"
    },
    "body": {
      "manifests": [
        {
          "type": "urn:video:main",
          "url": "https://dash.pro42.lv3.cdn.hbomax.com/videos/PRO42/e1/gov2/turner/feature/613088/v1/11_28_19_03_27_41_pro42_lxoIxg_aBToBqQ_1080hi.mpd",
          "audioTracks": [
            {
              "language": "en-US",
              "output": "5.1 Surround",
              "displayName": "English",
              "trackName": "audio_en-US=384000"
            },
            {
              "language": "en-US",
              "output": "5.1 Surround",
              "displayName": "English",
              "trackName": "audio_en-US_1=256000"
            },
            {
              "language": "en-US",
              "output": "Stereo",
              "displayName": "English",
              "trackName": "audio_en-US_5=128000"
            }
          ],
          "textTracks": [
            {
              "type": "ClosedCaptions",
              "language": "en-US",
              "displayName": "English CC",
              "url": "https://media.fly.cdn.hbomax.com/videos/PRO42/e1/gov2/turner/feature/613088/v1/smpte2052/sdh/en-US/r0/sdh.xml"
            }
          ],
          "trickplayUrlTemplates": {
            "hd": "https://media.fly.cdn.hbomax.com/videos/PRO42/e1/gov2/turner/feature/613088/v1/images/23.98p/r0/images_2_{0:00000000}.jpg",
            "sd": "https://media.fly.cdn.hbomax.com/videos/PRO42/e1/gov2/turner/feature/613088/v1/images/23.98p/r0/images_1_{0:00000000}.jpg"
          },
          "drm": {
            "authType": "certificate",
            "keySystem": "com.widevine.alpha",
            "licenseUrl": "https://comet.api.hbo.com/drm/license/widevine?keygen=playready&drmKeyVersion=2",
            "name": "Widevine",
            "uuid": "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
          },
          "containerType": "DASH",
          "duration": 4812,
          "ratingCode": "G",
          "advisories": [
            {
              "code": "NA",
              "name": "Not Advisories"
            }
          ],
          "playbackOptions": {
            "maxResolution": "HD",
            "useVideoPreloading": true
          },
          "videoId": "GXd7o9Q5AvpuAuwEAADwD",
          "promoType": "Packaging"
        }
      ],
      "cdn": {
        "provider": "LEVEL3"
      },
      "profile": "PRO42_VIDEO"
    }
  }
]

CDN

HBO Max uses (at least) two CDNs: Level 3 and Akamai. HBO has been using Level 3 (CenturyLink, actually) since at least 2011.

Video analytics

HBO Max uses Conviva v2.151.0.36981.

The client pings https://telegraph.api.hbo.com/events/v1 to indicate changes to the state.

Packager

HBO Max uses the Unified Streaming Platform v1.9.5 to produce HLS manifests. This is a version from 2018, so we're assuming they prefer to use a battle-tested version – potentially a version they used in previous OTT services like HBO Now.

DRM

Of course, they use Widevine, PlayReady and PlayReady (with multi-key). We're not able to identify whether they use a commercial multi-DRM solution, or developed an in-house solution.

Video player

HBO Max uses Shaka Player on Web Browsers.

We'll go out on a limb and guess that they use Exoplayer for Android (because they already use Google's open-source player), and AV Player for iOS.

vs HBO Now/Go

We didn't compare the tech stack with HBO Go and HBO Now. There might be a serious overlap!

Features

The service offers a standard set of features, like trickplay, bookmarks and offline playback.

Trickplay

Do you know that thumbnail which previews the content when you scrub the seekbar? That's trickplay.

For MPEG-DASH, HBO Max achieves trickplay by requesting images through a template-URL by passing the playhead position along. (e.g. https://media.fly.cdn.hbomax.com/videos/PRO42/e1/gov2/turner/feature/613088/v1/images/23.98p/r0/images_2_{0:00000000}.jpg) It's interesting that they devised their own system, because they could have opted to adhere to DASH-IF IOP 4.2 section 6.2.6 to achieve trickplay with MPEG-DASH.

For HLS (and Apple devices), they have the option to leverage EXT-X-I-FRAME-STREAM-INF as their HLS manifests expose this.

Continue watching

When viewers stop watching a stream, they can later resume playback across devices.

During playback, the client pings HBO's 'Markers' service (https://markers.api.hbo.com/markers) every 5 seconds to store the current playhead position.

Offline viewing

HBO Max supports offline playback – yay!

Other

Max Originals

HBO Max groups their original content under 'Max Originals'.

Restrictions

You can only stream simultaneously on a maximum number of devices. (Let's be honest: this makes a lot of sense, and a lot of services have this limitation.)

You can set-up 5 profiles per account. You have the option between an Adult Profile and a Kid Profile.

No 4K

Polygon.com writes that HBO Max doesn’t support 4K (or HDR) at the moment, but that it's part of the roadmap.

USA

The service is currently only available in the United States and some U.S. territories.

Content

We know... Content is king... blablabla. Use services like Reelgood.com to discover what is streaming on HBO Max.

AVOD

Back in October 2019, Reuters wrote that HBO Max will offer a hybrid AVOD+SVOD alternative in 2021.

πŸ“ˆ Stock

HBO Max is owned by HBO, and HBO is owned by AT&T. AT&T's stock price opened at $30.64 on Tuesday (the 26th of May) and climbed to $31.85 on Wednesday evening (the 27th of May).

According to The Motley Fool, ATT has spent over $1.2B on HBO Max already. If we believe Reuters, then AT&T is aiming to have 80 million subscribers by 2025, which accounts to a yearly (subscription) revenue of $1,199,200,000. (Note that Netflix spent $17B on content in 2020 according to Variety.)

Let's see how the gamble pays out. We'll cross our fingers for everyone involved. :)

Careers

Warner Media is hiring over 50+ profiles!

Do you work for HBO? Yes? Do you want us to add interesting stuff or omit sensitive information? Yes? Then contact us, and we're happy to collaborate.