Skip to content

Releases: spacesdrive/kinetube

v1.6.0 - Live yt-dlp update check and one-click update

Choose a tag to compare

@github-actions github-actions released this 21 Aug 13:01

Live yt-dlp update check

Settings now shows the installed yt-dlp version, with its own "Check for Updates" button - separate from the app's own version check above it. This one checks yt-dlp's actual latest release on GitHub, so it can tell you about a new yt-dlp version even before KineTube itself ships an update bundling it.

If a newer release is found, the button becomes "Update to <version>" - click it and KineTube downloads and installs it in place, with a live progress bar. No manual file download, no restart needed. Works the same way on Windows, macOS, and Linux.

Why this matters: yt-dlp ships frequent releases to keep up with changes on YouTube's end. Previously the only way to get a newer yt-dlp was to wait for a KineTube update or replace the binary by hand.

Also fixed

  • A binary that had just been updated past the version KineTube expects was incorrectly flagged as "outdated" again by the existing warning banner, pointing back at the older version. That comparison is now version-aware and only flags a binary that's genuinely behind.

Downloads

Platform File
Windows KineTube-Setup-1.6.0.exe
macOS (Intel) KineTube-1.6.0.dmg
macOS (Apple Silicon) KineTube-1.6.0-arm64.dmg
Linux KineTube-1.6.0.AppImage

Full Changelog: v1.5.1...v1.6.0

v1.5.1

Choose a tag to compare

@github-actions github-actions released this 27 Jul 15:14

Full Changelog: v1.5.0...v1.5.1

Full Changelog: v1.5.0...v1.5.1

Full Changelog: v1.5.0...v1.5.1

v1.5.0 - Pause and Resume downloads in progress

Choose a tag to compare

@github-actions github-actions released this 27 Jul 14:29

Pause and Resume a download in progress

While a single YouTube video is downloading, the progress window now has a Pause button next to Cancel. Pause it, and a Resume button takes its place - click it whenever you're ready and the download picks up close to where it left off instead of starting over from 0%.

Under the hood, Pause uses the same partial-file mechanism as v1.4.0's crash-recovery resume feature: it stops the download but keeps it marked as resumable, so yt-dlp continues the same partial file when you resume. That also means if you pause a download and then close the app entirely, it'll still show up as resumable the next time you open KineTube.

Only single-video YouTube downloads have Pause for now - bulk downloads and Instagram downloads don't yet.

Downloads

Platform File
Windows KineTube-Setup-1.5.0.exe
macOS (Intel) KineTube-1.5.0.dmg
macOS (Apple Silicon) KineTube-1.5.0-arm64.dmg
Linux KineTube-1.5.0.AppImage

Full Changelog: v1.4.1...v1.5.0

v1.4.1 - Fix dev-launch crash, add version display and update check

Choose a tag to compare

@github-actions github-actions released this 27 Jul 12:33

Fixes a dev-startup crash

If you run KineTube from source, npm run dev could crash before the window ever opened, with an error inside electron-updater. This happened when the terminal you ran it from was itself hosted by an Electron app (VS Code's and Cursor's integrated terminals are the common case) - those leak an environment variable that makes any Electron process behave like plain Node.js instead of the real app runtime. The dev launch now strips that variable before starting Electron, so this works regardless of which terminal you use.

This only affected running from source (npm run dev). The packaged, installed app was never affected.

See your version, check for updates on demand

Settings now shows the app's current version, plus a "Check for Updates" button - so you're not limited to the single automatic check five seconds after launch. In a dev build it tells you plainly that update checks only run in a packaged build, instead of doing nothing.

Also

Caught up README.md, which had fallen behind the last few releases - it now lists resume-downloads and the update checker, and no longer describes Instagram support and whisper.cpp installation the old way.

Downloads

Platform File
Windows KineTube-Setup-1.4.1.exe
macOS (Intel) KineTube-1.4.1.dmg
macOS (Apple Silicon) KineTube-1.4.1-arm64.dmg
Linux KineTube-1.4.1.AppImage

Full Changelog: v1.4.0...v1.4.1

v1.4.0 - Resume interrupted downloads

Choose a tag to compare

@github-actions github-actions released this 27 Jul 12:08

Resume an interrupted download

If KineTube is closed - or crashes - while a video is downloading, the next launch now offers to pick up where it left off instead of losing the progress.

  • A small banner appears on the YouTube tab listing any download that was still in flight the last time the app closed
  • "Resume" re-issues the exact original request; yt-dlp resumes its own partial file automatically rather than starting over
  • "Dismiss" clears the prompt without restarting it (the partial file is left on disk untouched)
  • A download you cancel normally is never offered back as "resume" - only one cut off by the app itself closing

This only covers single-video YouTube downloads for now. Bulk batches and Instagram downloads aren't tracked by this yet - see the roadmap.

Under the hood

One shared download helper, not two drifted copies. The yt-dlp/ffmpeg manager and the whisper.cpp manager each had their own copy of the same download-with-progress function, and the copies had quietly drifted apart - the whisper.cpp version correctly cleaned up after a dropped connection mid-download, the yt-dlp version did not (it could hang indefinitely instead of failing). Both managers now share one implementation, using the more correct behavior.

A centralized api.js on the frontend. Roughly 20 request call sites across 6 components were each rebuilding the same "send JSON, parse JSON, handle errors" logic by hand. Pulled into a small shared module so that logic exists once. No user-visible behavior changed - this is pure internal cleanup.

Fixed a test-infrastructure gap that let a leftover element from one component test silently affect the next test in the same file.

Downloads

Platform File
Windows KineTube-Setup-1.4.0.exe
macOS (Intel) KineTube-1.4.0.dmg
macOS (Apple Silicon) KineTube-1.4.0-arm64.dmg
Linux KineTube-1.4.0.AppImage

Full Changelog: v1.3.1...v1.4.0

v1.3.1 - Fix broken Windows auto-update

Choose a tag to compare

@github-actions github-actions released this 26 Jul 18:09

Fixes a broken Windows auto-update

If you installed v1.3.0 on Windows and the in-app updater showed "Update Failed... Cannot download ...KineTube-Setup-1.3.0.exe, status 404", this release fixes it. You'll need to download this version manually one last time from the link below - after that, future updates through the in-app updater will work normally again.

What went wrong

The Windows installer's filename wasn't pinned in the build config, so electron-builder used its default pattern, which contains a literal space (KineTube Setup 1.3.0.exe). Two different systems then "fixed" that space in two different, incompatible ways:

  • electron-builder itself replaced the space with a dash when it wrote the update-metadata file (latest.yml) - producing KineTube-Setup-1.3.0.exe
  • GitHub's release-asset upload silently replaced the space with a dot on the actual uploaded file - producing KineTube.Setup.1.3.0.exe

The in-app updater read the dash version from latest.yml, tried to download it, and got a 404, because the file that actually existed had dots instead.

The fix

The Windows build config now pins an explicit, space-free filename pattern (KineTube-Setup-<version>.exe), so there's nothing left for either system to rewrite - the built file, the GitHub asset, and latest.yml all agree on the same name. Verified on this release: latest.yml and the uploaded asset now match exactly.

Also fixed

  • The "Update Failed" dialog could overflow its own box when the error message was long (like the URL in the 404 above). Long messages now wrap properly inside the dialog instead of spilling out.

Not affected

macOS and Linux updates were never affected by this bug - their default filenames don't contain spaces.

Downloads

Platform File
Windows KineTube-Setup-1.3.1.exe
macOS (Intel) KineTube-1.3.1.dmg
macOS (Apple Silicon) KineTube-1.3.1-arm64.dmg
Linux KineTube-1.3.1.AppImage

Full Changelog: v1.3.0...v1.3.1

v1.3.0 - Cross-platform tool support, test suites, and documentation

Choose a tag to compare

@github-actions github-actions released this 26 Jul 17:43

Highlights

This release focuses on making KineTube's core tools work across all three shipped platforms, and adds automated test coverage and a full documentation suite for the project.

Cross-platform tool support (yt-dlp, ffmpeg, whisper.cpp)

Previously, yt-dlp, ffmpeg, and whisper.cpp only worked on Windows - the macOS and Linux builds installed and launched, but downloading, converting, or transcribing anything failed at first-run setup. This release adds platform-aware download and build logic for all three:

  • yt-dlp - downloads the correct standalone binary per platform (yt-dlp.exe / yt-dlp_macos / yt-dlp_linux) from the same GitHub release
  • ffmpeg - downloads from gyan.dev on Windows (unchanged), evermeet.cx's stable release build on macOS (x64, runs under Rosetta 2 on Apple Silicon), and johnvansickle.com's static build on Linux (x64)
  • whisper.cpp - since the upstream project only publishes official Windows binaries, KineTube now builds whisper.cpp from source on macOS/Linux (git + cmake required on the machine) rather than depending on an unofficial third-party binary

Known limitation: this environment could only build and test on Windows, so the macOS/Linux code paths are implemented from verified current documentation for each tool but have not yet been run end-to-end on real Mac/Linux hardware. Windows is confirmed fully working, as always. If you try this release on macOS or Linux, please open an issue with what you find.

Instagram

No functional change - but a leftover Windows-only instaloader.exe download path (which the app no longer actually used) was removed. Instagram login/scraping already worked cross-platform via pip install instaloader, and continues to.

Testing and documentation

  • Added an automated backend test suite (Node's built-in test runner + supertest) and a frontend test suite (Vitest + Testing Library)
  • Added a CLAUDE.md + docs/ documentation suite covering architecture, coding guidelines, workflows, and an explicit cross-platform support/verification breakdown, plus an architectural decision log (DECISIONS.md)

Downloads

Platform File
Windows KineTube.Setup.1.3.0.exe
macOS (Intel) KineTube-1.3.0.dmg
macOS (Apple Silicon) KineTube-1.3.0-arm64.dmg
Linux KineTube-1.3.0.AppImage

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Jun 09:30

What's New in v1.2.0

Auto-Update

KineTube now checks for updates automatically on startup. When a new version is available, a dialog will appear letting you download and install it without leaving the app - no uninstalling, no manual downloads.

  • Update dialog shows version, download progress, and speed
  • Download runs in the background; the dialog locks until it's complete
  • One-click restart to apply the update
  • Fully optional - dismiss with "Later" if you're not ready

Bug Fixes

  • Settings not applying immediately - saved download settings (output folder, prefix/suffix, numbering) now take effect right away without needing to navigate away and back
  • Batch download UI broken - fixed a React hooks violation that caused the batch results grid to crash or render incorrectly
  • Batch select-all checkbox - indeterminate state (partial selection) now displays correctly
  • Dead code removed - deleted unused Navbar component and leftover Instagram setup state that was never read

Upgrade Notes

This is the first release with auto-update support. Future releases (v1.3.0+) will be delivered automatically via the in-app updater.

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 25 Jun 09:08

What's fixed in v1.1.0

Bug fixes

Batch download

  • Fixed a React Rules of Hooks violation where useState was called inside a .map() loop inside MultiCard. This caused crashes when expanding a YouTube channel or Instagram profile in batch mode. Each thumbnail is now its own ThumbGridItem component.
  • Fixed the indeterminate (partial-select) checkbox state in the multi-item grid header.

Settings

  • Saved settings now apply immediately to downloads. Previously, the "Default quality", "Output folder", and filename settings were only picked up after navigating away from the Settings page and back. Now they take effect the moment you click Save.
  • Fixed a stale closure bug in the platform switcher that prevented settings from syncing even when navigating away.

Cleanup

  • Removed Navbar.jsx (fully replaced by the collapsible sidebar).
  • Removed two unused state variables left over from the sidebar migration (igSetupReady, igSetupLoading).

1.0.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 20:33

What's included

  • Download YouTube videos, Shorts, and entire channels in up to 4K quality
  • Download Instagram reels, posts, stories, and bulk-download full profiles (up to 500 posts)
  • Extract audio as MP3 from any video with one click
  • Transcribe any video or audio file locally using Whisper AI - no internet required after setup
  • Queue mixed YouTube and Instagram URLs in a single batch download
  • Instagram login with full 2FA support and multi-account management
  • Customize filenames with prefixes, suffixes, numbering, and yt-dlp templates
  • Real-time download progress with speed and ETA
  • Light, dark, and system theme support

Installation

Platform File Instructions
Windows .exe Run the installer
macOS .dmg Open and drag KineTube to Applications
Linux .AppImage chmod +x KineTube.AppImage && ./KineTube.AppImage

Requirements

  • Windows 10+, macOS 11+, or a modern Linux distribution
  • Python 3.8+ - optional, only needed for Instagram login

All other tools (yt-dlp, FFmpeg, whisper.cpp, instaloader) are downloaded automatically on first launch.


Note on security warnings

This release is not code-signed. Windows will show a SmartScreen warning and macOS will show a Gatekeeper prompt on first launch. This is expected for unsigned open-source software.

  • Windows - click "More info" then "Run anyway"
  • macOS - right-click the app, choose Open, then click Open in the dialog