Skip to content

Releases: TenkuryuCode/doraptim-releases

DoRaptim 0.1.0-alpha.4

Choose a tag to compare

@TenkuryuCode TenkuryuCode released this 01 Nov 13:59
Immutable release. Only release title and notes can be modified.

A clearer Settings page that saves as you go, with help for every setting on the website.

Changed

  • The extension's Settings page is laid out again: sections for downloads from Chrome, videos, folders, speed, the engine, and about, with a menu that follows the page; changes are saved as they are made, with one status at the top, instead of three Save buttons. The smallest file to take over has quick choices (every file, 1, 5, 20 MiB) beside its field, connections per download a slider, downloads at once a stepper, and the speed limit a switch. Each section links to its part of the website's documentation when the build knows the website (WXT_DORAPTIM_WEBSITE_URL; the release workflow takes it from the repository variable DORAPTIM_WEBSITE_URL).

Downloads: the Windows installer (.exe), the macOS packages (.pkg, Apple Silicon and Intel), the browser extension (doraptim-extension-…-chrome.zip), and portable engine archives for developers.

Developer preview. The extension is not in the Chrome Web Store yet. To install it: unzip it into a folder you keep, open chrome://extensions, turn on Developer mode, choose Load unpacked, and select that folder. Its ID must be omaocaakodbohegmpboammlafnagpnpd. Install the engine (.exe or .pkg) as well. Chrome does not update it automatically: load each new version again.

Terms of use: installing or using DoRaptim means accepting the terms in TERMS-OF-USE.md (Indonesian: TERMS-OF-USE.id.md), included with every download and in this repository.

These builds are not code-signed yet. Windows SmartScreen and macOS Gatekeeper will warn before installing them.

Verify a download: sha256sum --check --ignore-missing SHA256SUMS (on macOS: shasum -a 256 --check --ignore-missing SHA256SUMS).

Built from commit 3bebafebee88fc198274f07518d7f63c7e0a77fa of the private DoRaptim repository.

DoRaptim 0.1.0-alpha.3

Choose a tag to compare

@TenkuryuCode TenkuryuCode released this 01 Nov 12:13
Immutable release. Only release title and notes can be modified.

Streams play everywhere: MPEG-TS streams are saved as MP4, AES-128 streams can be downloaded, and the quality is picked straight from the video button, which now shows the page's title.

Added

  • MPEG-TS streams (the .ts pieces most HLS streams are made of) are saved as MP4, which QuickTime, Quick Look, and every other player can play. Once the pieces are downloaded, the engine moves the H.264 video and AAC sound, unchanged, into an MP4 with the tables needed to seek (src/download/remux.rs, no ffmpeg, no re-encoding). A stream in another codec is kept as .ts, under a free name; a name the user ends in .ts keeps the stream as it is. Checked with AVFoundation on real H.264 High-profile and AAC material: every picture and sound sample decodes.
  • A stream's details say how many pieces are fetched at the same time ("Stream · 23 of 136 pieces · fetching 8 at a time"), up to 8, following the connections setting.
  • HLS streams encrypted with AES-128 can be downloaded. The engine fetches each key the playlist names (once per key, exactly 16 bytes), decrypts every piece with its key and IV (the one the playlist gives, or the piece's sequence number), and writes the plain stream; keys are never logged or stored. Protected streams are still refused: SAMPLE-AES, a key format other than the plain one, keys that are not web addresses, and encrypted headers. Uses the RustCrypto aes and cbc crates.
  • For players that stream video and audio separately, every quality the player has loaded can be chosen in the preview. The engine reads each video file's picture size from its header (only the first 256 KiB are fetched) and names it the usual way (1280×536 is 720p); the best is picked first. Qualities the player has not loaded are unknown to the page and cannot be offered.
  • The video button's menu lists those qualities itself ("720p · Video + audio · 240 MB"), so one can be picked straight away; the preview still lets it be changed. The same goes for HLS streams with several qualities ("1080p · HLS stream"). New protocol request describe_tracks, which looks at a player's files or one HLS playlist without remembering anything, and quality in prepare.
  • The suggested file name follows the chosen quality: a quality already in the name is replaced ([E217].[1080p] becomes [E217].[480p]), otherwise it is added (Episode 217 [480p].mp4).
  • Videos found on a page are named after the page's address when it is made of words (/btth-season-5-episode-217-subtitle-indonesia/ gives "btth season 5 episode 217 subtitle indonesia"), else after the tab's title, instead of the title of the player's frame, which often says nothing ("%24"). The video button's menu shows the page's title for such frames too, asked of the extension once a video gets its button. Stream playlist names such as master and playlist count as names that say nothing.

Fixed

  • After the extension was reloaded or updated, the video button left in an already open page threw "Cannot read properties of undefined (reading 'sendMessage')". That copy now notices it is cut off and takes its button away quietly.
  • Seek-bar thumbnails that a player keeps in a WebVTT file (such as Odysee's stream_sprite.vtt) were saved as a subtitle (… .sub.vtt). Files named for thumbnails, sprites, storyboards, or chapters are no longer taken for subtitles, and the engine skips a WebVTT file whose cues are pictures.
  • The extension's end-to-end test timed out on fresh CI runners: it compiled the engine inside the test, within the test's two-minute limit. A Playwright global setup now builds the engine and the extension once before all tests, and the test says why when no preview window opens instead of waiting until the time runs out.

Changed

  • Every HLS stream is now named .mp4 in the preview (MPEG-TS streams are made into MP4 when they finish).
  • The video button's menu is laid out again, and its note explains how to add qualities a player has not loaded yet.

Downloads: the Windows installer (.exe), the macOS packages (.pkg, Apple Silicon and Intel), the browser extension (doraptim-extension-…-chrome.zip), and portable engine archives for developers.

Developer preview. The extension is not in the Chrome Web Store yet. To install it: unzip it into a folder you keep, open chrome://extensions, turn on Developer mode, choose Load unpacked, and select that folder. Its ID must be omaocaakodbohegmpboammlafnagpnpd. Install the engine (.exe or .pkg) as well. Chrome does not update it automatically: load each new version again.

Terms of use: installing or using DoRaptim means accepting the terms in TERMS-OF-USE.md (Indonesian: TERMS-OF-USE.id.md), included with every download and in this repository.

These builds are not code-signed yet. Windows SmartScreen and macOS Gatekeeper will warn before installing them.

Verify a download: sha256sum --check --ignore-missing SHA256SUMS (on macOS: shasum -a 256 --check --ignore-missing SHA256SUMS).

Built from commit 0cdc31e1d4ab4b5e3d9f2b6433308a18a0f0834b of the private DoRaptim repository.

Full Changelog: v0.1.0-alpha.2...v0.1.0-alpha.3

DoRaptim 0.1.0-alpha.2

Choose a tag to compare

@TenkuryuCode TenkuryuCode released this 01 Nov 09:00
Immutable release. Only release title and notes can be modified.

Choose where downloads go, rename them, open them when they finish, get notified, add links, manage many downloads at once, and set the speed from the extension, which has a new design.

Added

  • HLS streams (.m3u8) can be downloaded. The engine reads the playlist, picks the best quality (largest picture, then highest bandwidth), fetches the pieces a few at a time, and writes them strictly in order into one file: .ts, or .mp4 for fragmented-MP4 streams. Progress is journaled after each piece, so a stream can be paused and continued, also after a restart; bytes written after the last recorded piece are dropped. The preview shows the stream's quality and length, and the details show "Stream · 37 of 120 pieces". Live streams, encrypted streams (and DRM), and byte-range pieces are refused with a reason. Journal schema version 8.

  • The preview of an HLS stream that comes in several qualities has a Quality choice (for example 1080p, 720p, 360p), with the best one picked first. Choosing another reads that quality's playlist again, so the length and file type shown match it. New protocol request choose_quality; journal schema version 9 remembers the qualities offered.

  • Videos from players that stream video and audio separately (as many embedded players do, fetching each file in byte ranges named in the address) can be downloaded. The video button lists them as "Video + audio"; the engine asks about each file the player fetched, picks the largest video and the largest audio, downloads the video over several connections as usual, then the audio, and joins both into one MP4 itself, without re-encoding and without needing ffmpeg. Encrypted tracks (DRM) are refused. The quality is the best one the player has played so far. New tracks field in the prepare request and joinsAudio in prepared; journal schema version 10.

  • Subtitles. Subtitle files a page offers with a video (<track> elements and .vtt, .srt, .ass files a player loads) and the subtitle tracks of HLS streams are listed in the preview, all ticked; the chosen ones are saved next to the finished video under its name (Episode 40.id.vtt), so players such as VLC, IINA, and mpv show them. The pieces of an HLS subtitle track are joined into one WebVTT file. Subtitles are extras: one that cannot be fetched is skipped without failing the download, and an existing file is never replaced. Subtitles burned into the picture are part of the video anyway. New subtitles fields in prepare, prepared, and confirm_preparation; journal schema version 11.

  • Find videos on this page in the popup also looks inside embedded players' frames that DoRaptim may read.

  • Finding videos on a page, like other download managers. Find videos on this page in the popup lists the video and audio a page plays or links to (also when a player loads them by script), with format, quality, and length, best quality first; picking one opens the preview, which shows the length and quality. Find videos automatically, an opt-in setting, puts a "Download with DoRaptim" button at the top right of a video while it plays or while the pointer is over it (also over a player's controls and inside embedded frames) and shows on the toolbar icon how many media files a page has; it asks for access to all sites only when turned on, and the content script is registered at runtime, never in the manifest. Recognised formats: MP4, M4V, WebM, MKV, MOV, AVI, FLV, 3GP, OGV, TS, WMV, MPEG, MP3, M4A, AAC, FLAC, OGG, Opus, WAV, WMA, and HLS (.m3u8) and DASH (.mpd) streams; DASH streams are listed but cannot be downloaded yet. Media protected against copying (DRM) is never downloaded. The button also finds videos that a player keeps inside its own shadow root (custom player elements), and turning the setting on reaches tabs that are already open, without reloading them.

  • Download with DoRaptim in the right-click menu for links, videos, audio, and images.

  • How long each download took: the time spent downloading, without pauses or time in the queue. The Downloads table has a Duration column, the details and the progress dialog show the duration, the average speed, and when the download was added and finished, the popup says "Completed in 12 s", and the finished notification gives the size and time. The journal records it (schema version 7); a run interrupted by a crash is not counted.

  • The preview window becomes the download's progress dialog after Download, like a download manager's: parts, speed, time left, Pause and Cancel, and Open or Show in folder once it is complete. It can be closed at any time; the download goes on.

  • The Downloads page shows downloads in a table (name, status, size, progress, speed, time left) with pages of 100 rows by default (50 or 200 to choose), ticking a whole page, and selecting every download that matches the filter.

  • Download details, like a download manager's progress window: click a download's name on the Downloads page to see each part fetched over its own connection with its progress, a map of which bytes of the file are already on disk, speed, time left, where it is saved, the server's host name, whether it can resume, and the SHA-256. Engine route /v1/downloads/{id}/detail, protocol get_download and download_detail; the URL itself is never sent.

  • Connections per download (1 to 16, 8 by default) can be set in the settings. New downloads are split into that many parts; the engine remembers the choice, and status_ok reports it as maxConnections.

  • A Downloads page in the extension, together with the settings in one page with a side menu (open it from the popup's "All downloads"). It lists every download, with tabs for active, completed, and failed ones, a search by name, and checkboxes to pause, resume, remove from the list, or delete the files of many downloads at once, plus Clear completed. The engine does these in one request (POST /v1/downloads/bulk, protocol bulk and bulk_done), trying each download on its own.

  • Notifications when a download finishes or fails, on by default and switchable in the settings. A finished download's notification has Open (when the file type may be opened) and Show in folder; a failed one has Try again. While downloads run, the extension looks at the queue every 30 seconds (new alarms and notifications permissions).

  • Add a download from a link in the popup (the + button). It goes through the same preview as a captured download.

  • CI builds and tests the extension, checks that apps/extension/vendor/protocol matches packages/protocol, and runs the end-to-end test with the real engine in Chromium.

  • Name files after the page: an optional setting (off by default) suggests the page's title, such as Holiday in Bali.mp4, when a file arrives with a meaningless name such as videoplayback.mp4. Turning it on asks Chrome for the optional tabs permission to read tab titles; turning it off gives the permission back. The title is only a suggestion in the preview's name field.

  • Open and Show in folder for finished downloads in the popup. The engine opens files with the system's application (open, Explorer, xdg-open) and refuses to open programs and installers, which it only shows. Routes /v1/downloads/{id}/open and /reveal, protocol open_download and reveal_download.

  • The number of parallel downloads and the speed limit can be changed in the extension's settings (protocol set_limits). The engine now remembers them across restarts; run --jobs and --limit given on purpose override and replace the remembered values.

  • Choose where downloads go. The extension's settings show the download folder, which the user changes in the system's folder dialog (opened by the engine; clients never send a path), and a subfolder name for each file type, which may be left empty to save that type directly in the download folder. The preview window can rename a file before it is queued and choose another folder for that one download. The engine keeps these choices in the journal (schema version 6), and the protocol gains get_folders, update_folders, choose_download_folder, choose_preparation_folder, and reset_preparation_folder, a filename on confirm_preparation, and folder and customFolder on prepared.

Changed

  • The download preview is laid out again: a compact header, the file's size and type, a clearly editable name field, the folder with its last part kept visible, and the file type shown as what picks the subfolder. The window fits its contents. Page titles that are really addresses (a video opened in its own tab) are no longer used as names.

  • The browser extension has a new design in the brand colors, with light and dark themes. The popup shows the engine's state, a capture switch, and each download with its progress, speed, and time left. The settings page shows the engine's running and queued downloads and its speed limit. The setup page is a guided list of steps that notices the engine by itself, and offers Homebrew or Scoop as an alternative.

  • apps/extension/vendor/protocol matches packages/protocol again (only comments had drifted).

Fixed

  • The extension's installer link pointed to file names without the version and to the private repository, so it led to a missing page. It now points to the real release file in doraptim-releases, such as doraptim-0.1.0-alpha.1-macos-arm64.pkg.

Downloads: the Windows installer (.exe), the macOS packages (.pkg, Apple Silicon and Intel), the browser extension (doraptim-extension-…-chrome.zip), and portable engine archives for developers.

Developer preview. The extension is not in the Chrome Web Store yet. To install it: unzip it into a folder you keep, open chrome://extensions, turn on Developer mode, choose Load unpacked, and select that folder. Its ID must be omaocaakodbohegmpboammlafnagpnpd. Install the engine (.exe or `.pk...

Read more

DoRaptim 0.1.0-alpha.1

Choose a tag to compare

@TenkuryuCode TenkuryuCode released this 31 Oct 20:41
Immutable release. Only release title and notes can be modified.

First alpha. The browser extension is a developer preview: it is loaded unpacked from the release ZIP until it is in the Chrome Web Store.

Changed

  • The project is now private and proprietary (2026-10-31). The engine, protocol, browser extension, desktop installers, website placeholder, and brand assets are consolidated into this single repository. Earlier MIT-licensed material keeps its notice in LICENSE-MIT, apps/extension/LICENSE-MIT, and apps/desktop/LICENSE-MIT.
  • The extension's end-to-end test and both installer build scripts now find the engine in this repository instead of a sibling checkout.
  • Release archives and both installers now also ship LICENSE-MIT.
  • The release workflow also builds the Windows installer and the macOS packages (Apple Silicon and Intel), checks them, and creates the draft release in the public doraptim-releases repository instead of this private one. Build-provenance attestations are no longer produced, and the release no longer waits for a protected environment: the draft is the approval gate.
  • The macOS package script clears extended attributes before packaging.
  • Terms of use for published builds, in English (TERMS-OF-USE.md) and Indonesian (TERMS-OF-USE.id.md, which prevails). LICENSE now lets official builds be used under them, and the archives, the Windows installer, and the macOS packages ship both files.
  • The release workflow also builds the browser extension as a developer-preview ZIP whose ID is fixed by the public key in the repository variable DORAPTIM_EXTENSION_KEY, and fails unless that ID is the one the installers register.

Fixed

  • A download whose URL ends in a bare name, such as /videoplayback, now gets the extension of its media type (videoplayback.mp4) instead of being saved without one. Names that already have an extension, and names chosen by the user, are unchanged.

Removed

  • Community contribution material: CONTRIBUTING.md, CODE_OF_CONDUCT.md, and the issue and pull-request templates.

Added

  • Engine commands start (run in the background), stop (waits until the engine has stopped), restart, run (the new name of daemon), uninstall [--yes] [--keep-data], and help, with a readable command list. uninstall stops the engine, removes the browser registrations, and deletes only the engine's own files; it never touches downloads and prints how to remove the program itself.
  • The Windows uninstaller stops a running engine before removing its files.
  • doraptim setup connects the engine to the browser extension, using the extension ID that release builds carry (doraptim version --verbose shows it), for installs through package managers.
  • scripts/package-manifests.sh writes the Homebrew formula, the Scoop manifest, and the winget manifests for a published release from its SHA256SUMS. The public doraptim-releases repository is also the Homebrew tap and the Scoop bucket, and a workflow there updates them when a release is published; see docs/PACKAGE-MANAGERS.md.
  • doraptim update checks GitHub for a newer published release and prints the download for this computer. It runs only when asked.
  • Updating replaces the old engine: the native-messaging host restarts a running engine whose version differs from its own (its downloads stay queued and continue), and the macOS package and the Windows installer stop the running engine before replacing the program.
  • Rust engine with segmented and plain HTTP transfer paths.
  • Persistent SQLite queue with pause, resume, remove, retry, and crash recovery.
  • Validator-aware resume, SHA-256 verification, rate limiting, and conflict-safe naming.
  • Authenticated loopback HTTP/SSE API and command-line client.
  • Native-messaging host with bounded framing, protocol handshake, and per-user registration.
  • Durable prepared-download flow and safe category routing.
  • Canonical JSON Schema with generated TypeScript types.
  • Multi-platform CI, dependency auditing, release archives, and checksums.

Security

  • Loopback-only binding, per-run bearer tokens, constant-time token checks, and request guards.
  • Filename, URL, category, and destination validation.
  • Redacted errors and logs for credential-bearing URLs.

Downloads: the Windows installer (.exe), the macOS packages (.pkg, Apple Silicon and Intel), the browser extension (doraptim-extension-…-chrome.zip), and portable engine archives for developers.

Developer preview. The extension is not in the Chrome Web Store yet. To install it: unzip it into a folder you keep, open chrome://extensions, turn on Developer mode, choose Load unpacked, and select that folder. Its ID must be omaocaakodbohegmpboammlafnagpnpd. Install the engine (.exe or .pkg) as well. Chrome does not update it automatically: load each new version again.

Terms of use: installing or using DoRaptim means accepting the terms in TERMS-OF-USE.md (Indonesian: TERMS-OF-USE.id.md), included with every download and in this repository.

These builds are not code-signed yet. Windows SmartScreen and macOS Gatekeeper will warn before installing them.

Verify a download: sha256sum --check --ignore-missing SHA256SUMS (on macOS: shasum -a 256 --check --ignore-missing SHA256SUMS).

Built from commit 8b458b86a7a22a61c01f5fe6199459fb25a19e0b of the private DoRaptim repository.