Tag: media streams

  • Building Stream Katcher: Making Media Streams Easier to Manage

    Building Stream Katcher: Making Media Streams Easier to Manage

    A video on a webpage often looks like a single file. While it plays, though, the browser may request several different things: a playlist, small video segments, an audio track, or quality variants. Finding the relevant media among those requests is the problem I set out to address with Stream Katcher.

    Stream Katcher is a Chrome extension that detects and analyzes media on the current page. From the detected items, people can see what is available to download or save a video to their Library and come back to it later without downloading a file first.

    Why detecting a video takes more than finding one URL

    With a direct video such as an MP4, the file address can be straightforward. Adaptive streams such as HLS and MPEG-DASH work differently: they divide media into segments and use a manifest to describe playback. A page may also request several quality levels and audio tracks.

    If every request is treated as a separate video, the result is a confusing list of URLs and media fragments. The extension needs to consider requests in the context of the page and group related parts into a media asset that someone can inspect.

    From requests to a media asset

    Stream Katcher processes media in stages: capture requests, normalize their details, classify media types, correlate related requests, and resolve manifests when needed to build an asset. Keeping those stages distinct helps separate media detection from the interface and browser-specific APIs.

    That structure supports a more useful workflow. People can review detected media in a side panel, inspect the available choices, and decide what to do next. Instead of starting by copying URLs by hand, they start with the video already playing on the page.

    Two choices after a video is detected

    Downloading right away is not always the goal. Sometimes you want to keep a video in reach for later; at other times, you need a copy for offline use. Stream Katcher treats these as two separate paths:

    • Save to Library: keep the video and the information needed to find and open it again.
    • Download: download supported media using the options provided by its source.

    The Library is useful when choosing what to watch matters more than saving a local file immediately. When a download is needed, stream analysis helps people understand which tracks or options are available before they start.

    The hard part is handling different sources

    Websites do not all deliver video in the same way. One may use a direct file; another may use HLS, MPEG-DASH, or media assembled through Media Source Extensions. An extension has to account for these request patterns while avoiding duplicate entries for pieces of the same stream.

    A staged architecture lets me extend or fix parts of that workflow without placing all the logic in one content script or UI component. Most of that work is invisible on screen, but it determines whether the detected media list is useful or noisy.

    Use media tools responsibly

    Being able to detect a stream does not mean you have permission to download its content. Only download or save videos when you have the right to do so and when it complies with the website's terms. Stream Katcher is not intended to bypass DRM or other content protections.

    Stream Katcher is built around a simple interaction: open a video on the web, see the media the browser is using, then choose to save it or download it when the source allows. Learn more at streamkatcher.com.