v0.3.0
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.0The 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
PATHor 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.