Releases: neurallab-dev/mediadownload-releases
Release list
MediaDownload v0.1.7
MediaDownload v0.1.7
Security, reliability, and feature release.
Security
- Cross-origin (CSRF) defense on the local server: Host-header allowlist (also blocks DNS-rebinding), Origin/Referer loopback checks on state-changing requests, and
application/jsonrequired for JSON bodies. - Downloads and Reveal-in-Finder are confined to allowed folders (default dir + folders you pick); sensitive locations are refused. Closes a cross-origin write-to-arbitrary-folder path.
- Thumbnail fetches now go through the hardened, SSRF-guarded opener (no redirect-to-internal).
- Auth-looking query values are redacted from surfaced errors and logs.
Reliability
- Direct downloads verify the expected size before finalizing (no silently truncated files) and keep the partial for resume;
.partfiles are keyed per-URL so parallel downloads can't corrupt each other, and resume is validated withIf-Rangeso a changed resource restarts instead of appending onto a stale partial. - Worker failures now surface as a failed job instead of a stuck one; a batch with cancelled/skipped items reports "completed with warnings".
Features
- Durable discovery that survives restart, byte-level progress, and real provenance (final URL, resolved quality/codec/container/bitrate) in metadata and the UI.
- Retry failed items in place within the same batch; cancel a single item; caption language modes (Original / All / specific).
- Errors, discovery failures, and destructive actions are now surfaced/confirmed in the UI; a destination folder can be typed in browser mode.
Packaging
- Reproducible builds from pinned dependencies; release signing fails loudly on error; broader packaged-app smoke test.
Verification
- Source QA:
68 passed. - macOS app bundle: signed, notarized, stapled, and validated.
- DMG: signed, notarized, stapled, and validated.
MediaDownload v0.1.6
MediaDownload v0.1.6
This release polishes recovery and layout issues in the native Mac app.
Changes
- Fixes the clipped topbar
Downloadertitle/status layout. - Shows interrupted work as paused/recoverable after app restart instead of surfacing a raw server restart error.
- Normalizes older restart records on startup.
- Keeps interrupted batches resumable and no longer marks them completed during restart recovery.
- Polls the new job after clicking Resume so the queue tray updates immediately.
Verification
- Source QA:
48 passed. - macOS app bundle: signed, notarized, stapled, and validated.
- DMG: signed, notarized, stapled, and validated.
SHA-256:
a5ff265055113c34678a8afd8d551de170e157ce6d2e00662af17a1a8dcc5da7
MediaDownload v0.1.5
MediaDownload v0.1.5
This release improves YouTube public-video handling when YouTube returns sign-in, bot-check, or age-gate style errors.
Changes
- Adds keyless YouTube player-client fallbacks for public media discovery and download.
- Adds clearer app/API errors when a video truly requires login, age verification, bot verification, cookies, or credentials.
- Keeps MediaDownload public/keyless only: no cookies, browser profiles, accounts, or credentials are used.
Verification
- Source QA:
46 passed. - macOS app bundle: signed, notarized, stapled, and validated.
- DMG: signed, notarized, stapled, and validated.
SHA-256:
8d9e1216107d953c31fafd60b039fda503eb2fa95fd9e2026945ff6bea951f47
MediaDownload v0.1.4
MediaDownload v0.1.4
Fixes the app icon application in the native macOS app:
- Uses the MediaDownload icon inside the app UI sidebar instead of the placeholder text mark.
- Adds the packaged WebKit favicon/apple-touch icon.
- Includes the SVG in the frozen app static assets.
- Forces PyInstaller build cache cleanup so stale bundle icon metadata is not reused.
QA:
- Source QA: 43 pytest tests passed.
- Local DMG build passed.
- Verified the generated app has
Contents/Resources/mediadownload.icns. - Verified the frozen app packages and serves
/static/mediadownload-icon.svg. - App bundle notarization accepted and stapled.
- DMG notarization accepted, stapled, and verified with spctl.
SHA-256:
ed3cc497a0d4d9c4c003139c67a9b11f641a2740a0bf8a33f5bae76ac984eaef MediaDownload-0.1.4-macos-arm64.dmg
MediaDownload v0.1.3
MediaDownload v0.1.3
- Full local app workflow: Downloader, Batches, Settings, durable SQLite queues, pause/resume/cancel/retry, restart recovery, manifests, metadata sidecars, caption/artwork options, quality/codec/bitrate controls, and local-LLM fallback helpers.
- macOS release is Developer ID signed, Apple-notarized, stapled, and Gatekeeper-verified.
QA:
- Source QA: 43 pytest tests passed.
- Packaged app smoke passed before and after signing.
- App bundle notarization accepted and stapled.
- DMG notarization accepted, stapled, and verified with spctl.
SHA-256:
efda322e72f9b062f441e7ee67113e8818a1a22d00eacccb03d4b7ab89764ab8 MediaDownload-0.1.3-macos-arm64.dmg
MediaDownload v0.1.2
MediaDownload v0.1.2
This release replaces the browser-launching macOS package with a full native macOS app shell. MediaDownload still runs its local loopback server internally, but the user experience now opens in a native WebKit app window instead of the default browser.
Highlights
- Native
MediaDownload.appdesktop window using the same pywebview/WebKit approach as MediaFind. - Native destination folder picker in the download settings panel.
- Bundled
yt-dlp, pywebview, and WebKit bridge resources. - Developer ID signed, notarized, and stapled DMG.
Verification
- Gatekeeper accepted app and DMG as
Notarized Developer ID. - SHA-256:
c22cbf5b787d182458667c39225f51ade33b3aa2a108068b9d0ed3e7c8380841
MediaDownload v0.1.1
MediaDownload v0.1.1 macOS DMG release.\n\n- Contains MediaDownload.app for Apple Silicon Macs.\n- Developer ID signed, Apple notarized, and stapled for Gatekeeper.\n- Starts a loopback-only local MediaDownload server and opens the UI in the default browser.\n- Defaults downloads to ~/Downloads/MediaDownload.\n- SHA-256: d0b0360dab60e24192be9d9c6372a015ff0642769a27f8fd3506935075640c9a
MediaDownload 0.1.0
MediaDownload 0.1.0
Initial public asset release for MediaDownload.
Assets
mediadownload-0.1.0-py3-none-any.whlmediadownload-0.1.0.tar.gz
Install
python -m pip install mediadownload-0.1.0-py3-none-any.whlFor broader public platform support after installing from source or a checkout, install the download extra to include yt-dlp.