Urgent.News

What's breaking now, across thousands of outlets.

Tech

HLS vs progressive MP4: what a video downloader actually hands you

When I started building the downloader on ramrom.io, I assumed every video on the internet was an MP4. A URL points at a file, you fetch the bytes, you hand them to the visitor. Simple. Then I started handling real provider responses and discovered that a large chunk of video on the web is not a file at all — it is a playlist. That playlist is HLS: HTTP Live Streaming. Instead of one video file,…

Video downloaders can provide two types of content: progressive MP4 files or HLS streams. A progressive MP4 is a single file, while HLS is a playlist of small segments. HLS stands for HTTP Live Streaming and is used by popular platforms like TikTok, Instagram, Facebook, and YouTube. When a downloader receives a URL pointing to an HLS manifest (.m3u8 file), it faces a different challenge than when it receives a URL to a progressive MP4.

Progressive MP4s are straightforward to download and verify, with clear file sizes and headers. HLS manifests, however, are text files containing URLs to segments and do not have a single file size. They often expire, requiring the downloader to fetch fresh manifests each time. To handle HLS, there are two approaches: stitching or delegation.

Stitching involves downloading all segments, concatenating them into a single MP4, and providing a downloadable file. However, this method is resource-intensive and complicated, especially when dealing with encrypted segments. Delegation, on the other hand, is simpler and relies on the visitor's browser or app to handle the HLS stream directly.

The downloader simply provides the manifest URL, allowing the visitor's device to play the content. The key difference lies in the URL suffix. If the URL ends with .m3u8, it indicates an HLS playlist, not a file. When a downloader encounters an HLS playlist, it should not label it as an MP4, as this would mislead the visitor. It is essential to verify the content and accurately label it as an HLS playlist. The truth should always be reflected in the button labels and the download experience.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

PHP2Shell, What Was That About?

Recently, about two weeks ago on 21 October 2026, there were two vulnerabilities announcement which shook most of the internet, caused permanent EoS (End of Services) at web based games like World…

  • Two critical PHP vulnerabilities emerged on 21 October 2026
  • Attackers could access web shell via remote code execution
  • Servers urged to upgrade PHP to 8.5.12 or apply patches

Why does CrUX say no data for my client site?

PageSpeed Insights finishes the Lighthouse half of the report and then leaves the “real users” block empty. The client Slack thread fills with “is CrUX broken?” and someone refreshes the same URL…

  • Chrome UX Report shows no field data for specific site
  • Eligibility issues, not API failure, cause missing data
  • CrUX publishes anonymized data when privacy, quality rules met

More from Tuesday 3 November →