Today playing a video more complex than just decode a .mp4 file: most broadcasters use Adaptive Bitrate streaming formats like HLS and MPEG-DASH, that add a lot of complexity: How do you get the qualities and languages list? how and when do you switch the video quality? etc
In case of hls.js used by the NYT, you actually need to transmux the mpeg-ts content used in HLS into fMP4 to make it playable by the Media Source Extensions API used by the browsers.