Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Aug 16:23
· 2 commits to main since this release

Media Archiver v0.3.0

Released from commit 5816d89b013ec0fc1e3a147545decd7746828092.

Highlights

Canonical repository and Go module

Media Archiver is now published from its canonical repository and module path:

https://github.com/w1977-0/media-archiver
github.com/w1977-0/media-archiver

Install the CLI from the canonical module:

go install github.com/w1977-0/media-archiver/cli/cmd/open-stream-saver@v0.3.0

The CLI binary intentionally remains open-stream-saver for command-line continuity. Users and automation should update repository clone URLs and Go import/module references from the previous repository path to media-archiver.

Reproducible installation verification

A new installation verification checklist documents expected outcomes for:

  • Go 1.25+ and the canonical module installation;
  • optional local FFmpeg verification for HLS/DASH remuxing;
  • source build, unit tests, and static checks;
  • Chrome MV3 Load unpacked validation without requiring site permission, a media URL, or account data; and
  • optional Native Messaging host setup with a user-owned extension ID.

The release workflow also smoke-tests a clean CLI install on Ubuntu, macOS, and Windows by installing open-stream-saver to an isolated output directory and running --help.

Stronger media-path regression coverage

Week 2 adds local, deterministic test coverage for the authorized-public-media boundaries that the project deliberately supports:

  • Direct files: sequential fallback when byte ranges are unavailable, permanent HTTP error handling, output overwrite protection, and temporary-file cleanup after a short response.
  • HLS: public muxed variant inspection and selection, completed media playlist parsing, forbidden segment cleanup, concat-file safety, output protection, and worker bounds.
  • DASH: static MPD reading, dynamic/multi-period rejection, SegmentTimeline and unsupported token rejection, BaseURL and segment public-URL validation, segment cleanup, and output protection.
  • FFmpeg: clear diagnostics when FFmpeg is missing from PATH or returns a non-zero exit status.

The tests use in-memory HTTP fixtures and temporary directories. They do not depend on private URLs, real downloads, browser credentials, tokens, cookies, DRM keys, or protected media.

Security and authorization boundary

Media Archiver v0.3.0 does not add login support, cookie handling, credential or token input, custom authentication headers, DRM support, decryption, or any mechanism to bypass an access control. The supported use remains explicit user-authorized saving of public, unencrypted direct files, completed HLS playlists, and static DASH presentations.

Release validation

The following release gates passed for commit 5816d89 before publication:

Gate Result
GoReleaser configuration check Passed with GoReleaser v2.17.1.
Three-platform test workflow Ubuntu, macOS, and Windows test jobs passed.
Canonical module installation Passed from a fresh module cache using the current commit; Go resolved github.com/w1977-0/media-archiver at a pseudo-version for 5816d89.
CLI smoke test Installed binary printed the expected --help output.
Go quality checks go test ./... and go vet ./... passed.

Upgrade notes

Update references that still use the old repository name to the canonical media-archiver URL. Historical release assets and tags are intentionally preserved. FFmpeg remains an external, locally installed dependency; it is not bundled in the release archives.