Releases: liquidcryptid/yt-live-recorder
Release list
YTLiveRecorder 1.3.4
YTLiveRecorder 1.3.4
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux | YTLiveRecorder-Linux.AppImage |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4under your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Patch notes (1.3.4)
Bug fixes
- Stream-end save is not dropped while the monitor loop is running — yt-dlp exit 1 (live ended,
Did not get any data blocks) starts an async “still live?” check before save.hasActiveRecordingtreated the dead process as a stale slot and deleted it, so the close handler returned without copying the MP4. The check is now read-only; only save/retry paths clear the slot. - Help → About no longer opens the logs folder when you close the window with X — Windows maps the title-bar close button to cancel. That was hitting Open Logs Folder (the second button). Esc and X now just dismiss the dialog.
- Log timestamps and daily log files use local time — line stamps and
yt-live-recorder-YYYY-MM-DD.logfollow the computer’s clock (and roll at local midnight), not UTC. Recording filename prefixes were already local.
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.3.4 (filenames do not include the version number)
YTLiveRecorder 1.3.3
YTLiveRecorder 1.3.3
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux | YTLiveRecorder-Linux.AppImage |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4under your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Patch notes (1.3.3)
Bug fixes
- LIVE size and speed after per-channel Stop — Stop restarts from the live edge (
--no-live-from-start). The 1s size/speed ticker only sampled--live-from-startjobs, so the LIVE row came back with no KiB/s. The ticker now samples every active recording; live-edge segments are LIVE from the first byte and use disk size/rate (HLS/ffmpeg rarely fills yt-dlpprogress.speed). - Stop leaves other people’s yt-dlp alone — never
taskkill /IM/pkill -x. Stop kills the spawned PID tree, then only yt-dlp/ffmpeg/ffprobe whose command line includes this app’sYTLiveRecorderTempscratch and that segment’srec-…folder. PyInstaller can exit the wrapper while a child keeps writing; that leftover is now stopped so remux is not EBUSY. A yt-dlp you started yourself is not matched. - Linux Stop leftover kill matches Windows — the bundled yt-dlp is also PyInstaller: SIGKILL of the wrapper left the child running (reparented to init). Stop/resume snapshot-kill that tree (Linux
/T) and session-sweep leftovers. Distropython3 …/yt-dlpis matched too; unrelated yt-dlp is not.
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.3.3 (filenames do not include the version number)
YTLiveRecorder 1.3.2
YTLiveRecorder 1.3.2
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux | YTLiveRecorder-Linux.AppImage |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4under your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Patch notes (1.3.2)
Changes
- Let yt-dlp run the live — one CLI-like
--live-from-start --continuejob on@handle/live. Catch-up vs LIVE is a UI label. A connection drop (yt-dlp dies while/liveis still up) restarts yt-dlp on the same file. If the live ends during catch-up, that same file keeps grabbing remaining DVR (UI: ENDED — finishing catch-up). When the live has ended and nothing is written for 60 seconds, the file is saved and the channel goes back on the 20s live-detect loop. A new live is a new from-start job. Per-channel Stop still splits and resumes from the live edge. Cookies unchanged. - From-start args match a working CLI —
bestvideo[height<=?1080]+bestaudio/best, no-N 8, no forced native dash, noformats=missing_potunless Firefox cookies are on. Downloads always start at@handle/live. - JS runtime matches the installer — Deno is not used even if it is on PATH (
npm startused to pick a local Deno). yt-dlp gets--js-runtimes node:with the Electron binary as Node, same as a packaged build. Public lives do not need it. - Recording scratch is on disk cache, not
/tmp— Linux/tmpis often a small RAM disk (tmpfs). Overnight lives filled it (Errno 28) while the SSD still had space. Scratch is now~/.cache/yt-live-recorder/YTLiveRecorderTemp(Windows:%LOCALAPPDATA%\yt-live-recorder\YTLiveRecorderTemp). Old/tmp/YTLiveRecorderTempis not auto-deleted.
Bug fixes
- Channel stop/restart is not treated as a connection drop —
/liveoffline → wait for yt-dlp (force-save if nothing is written for 60s) → move the file → live detection. If catch-up is still unfinished and yt-dlp drops,--continuethat video’s VOD (watch?v=), not/live(which may already be a new stream). Connection-drop resume (@handle/live, same file) only runs while the channel is still live. - LIVE label waits for both video and audio — YouTube can report
109/3071on video while audio is already3575/3575. Using the lagging total kept the row on Catch-up at live bitrate. Both.ytdlstreams within 3 fragments of their totals (or fragment index at live-edge rate for ~12s) flips to LIVE. - Failed remux no longer deletes the recording — if ffmpeg cannot produce MP4 (disk full, etc.), leftover parts stay in the temp folder instead of being deleted.
- On save, extra audio is trimmed if video died early — leftover remux of split DASH can have hours of AAC after VP9 stopped. If audio is ≥15 minutes longer than a real video duration, audio is cut to the video end. Leftover
-FragNfiles are joined when the.partis empty.
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.3.2 (filenames do not include the version number)
YTLiveRecorder 1.3.1
YTLiveRecorder 1.3.1
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux | YTLiveRecorder-Linux.AppImage |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4under your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Patch notes (1.3.1)
Bug fixes
- Long from-start recordings are no longer truncated on save — killing yt-dlp at stream end leaves
.f248.mp4.part+.f140.mp4.part. ffmpeg remux used-shortestanddiscardcorrupt, so a YouTube DASH timestamp gap (common on multi-hour lives) stopped the copy at the first A/V overlap. Overnight jobs saved minutes (or seconds) of an 8-hour stream. Remux now copies the full parts (-max_interleave_delta 0, no-shortest) and retries a two-pass remux if the output is much smaller than the inputs. Auto-end waits ~20s for yt-dlp to close those parts (was 5s). - LIVE DASH hang after catch-up was invisible — the ~75s “no new bytes” failover only ran during catch-up. Once the row said LIVE, a hung googlevideo URL sat there until
/livewent offline, then remuxed whatever tiny prefix existed. The same stall now saves and switches to the live edge. Size is logged every 5 minutes while LIVE so this shows up in the log. - In-progress yt-dlp merge is not treated as a finished file —
title.temp.mp4has nomoovyet (killed mid-merge). Finalize skipped the real.fXXXparts and published a broken.temp.mp4. Those temp merges are ignored; leftovers are remuxed instead.
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.3.1 (filenames do not include the version number)
YTLiveRecorder 1.3.0
YTLiveRecorder 1.3.0
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux | YTLiveRecorder-Linux.AppImage |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4under your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Patch notes (1.3.0)
Security
- UI process is isolated — yt-dlp/ffmpeg spawn, kill, and file save run in the main process. The window uses
nodeIntegration: false,contextIsolation: true, a sandboxed preload, and a frozenwindow.ytlrallowlist (no free-form argv, no temp-folder access from the page). Closing the app still saves recordings if the UI process has crashed. Closing/reloading the window no longer kills other programs’ yt-dlp (unchanged: PID tree only).
Tools
- yt-dlp nightly 2026.08.20.234504 (was 2026.07.23.234303)
Features
- YouTube
--live-from-start— recordings start from the beginning of the stream (YouTube DVR) using yt-dlp’s native dash/m3u8 downloader (fixed upstream 2026.03.17 / #16254, in our 2026.08.20 nightly). If from-start is unavailable, real 403s before any bytes, or “no data blocks” at start, the app retries from the live edge. Per-channel Stop always resumes from the live edge. While catching up, auto-end does not kill the job just because/livelooks offline (stalls after 3 minutes still save). - Finished files are always
.mp4— Stop, stream-end, and a clean yt-dlp merge used to leave.mkv,.mp4, or.f247.mkvdepending on how the job ended. Every published file is now MP4 (--merge-output-format mp4/--remux-video mp4, ffmpeg remux of leftovers with+faststart). Premiere, Resolve, Final Cut, and similar NLEs import MP4; MKV is a common reject. Codecs are still whatever YouTube served (often VP9/Opus or H.264/AAC); this is a remux, not a re-encode. - Per-channel Stop no longer saves a broken
.f247.mkv— from-start writes separate video/audio fragments; a hard kill left a truncated video-only.part. Stop now asks yt-dlp to exit (Windows:taskkillwithout/F, 8s grace) then ffmpeg remuxes leftovers (-c copy, discardcorrupt,+faststart) into a closed.mp4with audio when the audio part exists. - YouTube player clients — without cookies, yt-dlp’s default clients (
formats=missing_potonly). With Firefox cookies:tv,web_safari,mweb,web_creator. Forcingandroid,ios,tvon public lives skipped SABR URLs. A PO-token warning that mentions HTTP 403 is no longer treated as a from-start crash. - Firefox cookies checkbox — Chrome/Edge cookie options are removed. Check Use cookies from Firefox for members-only / age-restricted streams. You must be signed in to YouTube in Firefox; Firefox does not need to stay open. On Start Monitoring the app copies Firefox cookies to
%APPDATA%\yt-live-recorder\cookies.from-browser.txt. A warning appears if those cookies are missing or out of date (open Firefox, sign in, Start Monitoring again). - Download status shows stream title, size, and speed — Catch-up / LIVE rows show the stream name with downloaded size and rate (e.g.
123.6 MiB · 76.3 KiB/s). Fragmentcurrent/totalis not shown (yt-dlp’s.ytdlindex only moves when a DASH fragment finishes, so it looked stuck while the file was still growing). Catch-up closes and the row is LIVE once DVR catch-up finishes. After Stop, the next segment is LIVE only. - Catch-up continues after the live ends — if
/livegoes offline while DVR catch-up is still running, the job keeps grabbing remaining fragments (UI: ENDED — finishing catch-up). Auto-stop only if the VOD is private/removed/members-only, or catch-up stalls for 3 minutes with no new fragments. - Stuck catch-up fails over to LIVE — only if the fragment index and disk size are frozen ~75s (a real googlevideo hang).
.ytdlcurrent_fragment.indexdoes not move until a DASH fragment finishes; 1080p frags can take over a minute while the.partstill grows, which used to look stuck and abort a healthy catch-up. - Catch-up downloads 8 DASH fragments at a time (
--concurrent-fragments 8). Do not pass--throttled-rate(that aborts slow DVR fragments). Live-edge stays sequential. - Live channel no longer sits idle for 10 minutes after “No video formats found” — if live-check already confirmed the stream, a miss retries in ~30s (Start Monitoring also clears that cooldown). Age-restricted lives wait 5 minutes and show a cookies hint instead of looping.
- Public lives do not need Firefox — cookies stay opt-in for members-only / age-restricted only. Without cookies the app uses yt-dlp’s default clients (visionos + webpage), which return 1080 DVR (
399+140/248+140). Forcingandroid,ios,tvskipped SABR URLs and broke catch-up on every public live. Age-restricted lives still need Firefox cookies — the row shows AGE RESTRICTED: REQUIRES COOKIES in red. Checking that box retries only those blocked streams and never stops recordings that are already working.
Bug fixes
- Catch-up no longer aborts when the live ends — the ~75s DASH-hang failover (save + switch to live edge) was firing after
/livewent offline (log:Did not get any data blocks→ “continuing catch-up of remaining DVR” → then “stuck — switching to LIVE”). There is no live edge then, so the partial file was saved and catch-up stopped. Failover now re-checks liveness; if the stream has ended, the job keeps going and, if the DVR URL is dead, resumes the same file from the VOD (watch?v=). Auto-save still happens if the VOD is gone or nothing arrives for 3 minutes. - Catch-up matches CLI
--live-from-startspeed — dropped--throttled-rate 100K(that flag is not a cap; it aborts a DASH fragment after 3s below 100 KiB/s and re-extracts the live, which is a VOD HTTP workaround). Slow DVR catch-up sat under 100 KiB/s for a long stretch, so the tripwire kept interrupting. Concurrent fragments for catch-up went from 3 to 8. Live-edge recordings stay sequential. There is still no--limit-rate. - Catch-up row switches to LIVE without a fragment total — YouTube live DVR almost never reports
fragment_count, so the old “within 3 fragments of total for 5s” check never fired. A catch-up that had already reached live cadence (~15 frags / 30s, live bitrate) stayed on the Catch-up row. When the count is missing, catch-up is treated as done if fragments arrive at live-edge rate (not a burst) for ~12s. - No 15-minute sit-out after a stream ends — auto-end used to set a 900s cooldown, so a channel that dropped and came right back (tech issue, BRB) was ignored. After save, the next 20s check (or the immediate resume probe) can start a new file if they are live again.
- Stop Monitoring / stream end no longer kill other programs’ yt-dlp — 1.2.5 stopped
taskkill /IMwhile this app still had sibling recordings, but when the last channel in the app stopped (or on startup temp purge) it still rantaskkill /IM yt-dlp.exe/pkill -x yt-dlp, which aborted every yt-dlp on the machine. Stop now kills only that job’s PID tree; leftover lock cleanup only targets processes whose command line includesYTLiveRecorderTemp. - Cookie file on the live probe hid live channels — sending
.google.comcookies toyoutube.com/@handle/liveredirected to GoogleCookieMismatch/ sign-in, which has no LIVE markers, so the probe reported not live and never ran yt-dlp (e.g. @SekturVision). Probe Cookie header is YouTube-only; sign-in pages fall back to yt-dlp. - Chrome/Edge cookies no longer abort recordings —
--cookies-from-browseron Windows often fails with “Could not copy Chrome cookie database” (browser lock / Chromium encryption). The app now detects that, records without browser cookies, and retries immediately so public lives still save. Members-only still needs Firefox, a closed browser, orcookies.txt. - Firefox cookies recorded no formats — cookie-safe YouTube clients need yt-dlp’s JS challenge solver. The app now passes
--js-runtimes node:<path>(system Node, or Electron as Node) so n-challenge solving works and members/restricted lives can get playable formats.
Reliability
- Recording logs now include extractor clients, yt-dlp pid, YouTube video id, cooldown remaining, and a warning when live-check says LIVE but yt-dlp listed no formats (so a silent sit-out is visible in Help → Open Logs Folder).
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.3.0 (filenames do not include the version number)
YTLiveRecorder 1.2.11
YTLiveRecorder 1.2.11
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux (recommended, auto-update) | YTLiveRecorder-Linux.AppImage |
| Linux (.deb package) | YTLiveRecorder-Linux.deb |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4/.mkvunder your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Linux (.deb)
sudo dpkg -i YTLiveRecorder-Linux.debUpdate by installing a newer .deb, or use the AppImage for auto-update.
Patch notes (1.2.11)
Packaging
- Microsoft Store AppX tiles use the YTLiveRecorder icon —
build/appx/is generated frombuild/icon.pngso electron-builder no longer ships the default Electron sample logos (Store certification 10.1.1) - Window and packaged resources now include the app icon (no Electron atom in the title bar)
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.2.11 (filenames do not include the version number)
YTLiveRecorder 1.2.10
YTLiveRecorder 1.2.10
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux (recommended, auto-update) | YTLiveRecorder-Linux.AppImage |
| Linux (.deb package) | YTLiveRecorder-Linux.deb |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4/.mkvunder your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Linux (.deb)
sudo dpkg -i YTLiveRecorder-Linux.debUpdate by installing a newer .deb, or use the AppImage for auto-update.
Patch notes (1.2.10)
Bug fixes
- Long-run Chromium FD / shared-memory leak while monitoring — live probes and yt-dlp status checks no longer run inside the UI renderer. Multi-MB YouTube page fetches used Chromium Mojo shared memory and left deleted
/dev/shmFDs growing for hours (often ~1k+ FDs after a day of 20s polls). Probes now use Nodefetch+ a queued yt-dlp status print in the main process (lib/live-check.js); the renderer only receives yes/no via IPC. Recording spawn is unchanged for this release (stillnodeIntegrationin the UI process).
Reliability
- Probe HTML body capped at 3 MiB in main (markers appear earlier; less peak memory)
- Live-check helper processes are killed from main on Stop Monitoring and quit
Notes
- After upgrading, multi-hour monitoring should keep the UI process open file-descriptor count roughly flat (dozens), not climbing into the thousands
- Concurrent recordings still use ~100 MB RAM each (yt-dlp + ffmpeg); that is expected, not this leak
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.2.10 (filenames do not include the version number)
YTLiveRecorder 1.2.9
YTLiveRecorder 1.2.9
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux (recommended, auto-update) | YTLiveRecorder-Linux.AppImage |
| Linux (.deb package) | YTLiveRecorder-Linux.deb |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4/.mkvunder your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Linux (.deb)
sudo dpkg -i YTLiveRecorder-Linux.debUpdate by installing a newer .deb, or use the AppImage for auto-update.
Patch notes (1.2.9)
Bug fixes
- Recording filenames use local time — the
YYYY-MM-DD-HH-MMprefix is the computer’s wall-clock time (not UTC), so evening streams no longer get the next day’s date when the machine is west of UTC
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.2.9 (filenames do not include the version number)
YTLiveRecorder 1.2.8
YTLiveRecorder 1.2.8
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux (recommended, auto-update) | YTLiveRecorder-Linux.AppImage |
| Linux (.deb package) | YTLiveRecorder-Linux.deb |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4/.mkvunder your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Linux (.deb)
sudo dpkg -i YTLiveRecorder-Linux.debUpdate by installing a newer .deb, or use the AppImage for auto-update.
Patch notes (1.2.8)
Bug fixes
- Scheduled / upcoming streams no longer flash Recording then idle — pages like
@channel/livefor a not-yet-started stream often still contain"style":"LIVE"and"isLive":truewhile"isLiveNow":false/"isUpcoming":true. The HTTP probe no longer treats weak LIVE chrome as live when the stream is offline-now, and yt-dlpis_upcomingis treated as not live (so we do not start a download that immediately fails with “No video formats found”). - Cooldown skips the live check — channels waiting out a no-formats / error cooldown no longer re-run probe + yt-dlp every 20s (was spamming “starting record anyway” in the log).
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.2.8 (filenames do not include the version number)
YTLiveRecorder 1.2.7
YTLiveRecorder 1.2.7
Automatic YouTube livestream recorder (yt-dlp + ffmpeg).
Not affiliated with YouTube or Google.
Which file do I download?
| Your computer | Download this |
|---|---|
| Windows | YTLiveRecorder-Windows-Setup.exe |
| Linux (recommended, auto-update) | YTLiveRecorder-Linux.AppImage |
| Linux (.deb package) | YTLiveRecorder-Linux.deb |
Other files on this page (latest.yml, latest-linux.yml, *.blockmap, checksums) are for automatic updates — you can ignore them for a first install.
Usage
Windows
- Download
YTLiveRecorder-Windows-Setup.exeand run it. - If Windows protected your PC (SmartScreen): More info → Run anyway.
- Allow admin install when asked.
- Open YTLiveRecorder.
- Browse → pick a folder for finished recordings.
- Add channel — handle only (e.g.
liquid_cryptid;@optional). - Start Monitoring. When a channel is live, recording starts.
- While Recording, click Stop next to that channel to save the current segment (monitoring continues; a new segment starts if the stream is still live).
- Stop Monitoring when done watching entirely — the app saves any active files as normal
.mp4/.mkvunder your folder.
Updates later: green badge next to the title, or Help → Check for Updates…
Linux (AppImage)
chmod +x YTLiveRecorder-Linux.AppImage
./YTLiveRecorder-Linux.AppImageSame steps as Windows inside the app. AppImage supports in-app updates.
Linux (.deb)
sudo dpkg -i YTLiveRecorder-Linux.debUpdate by installing a newer .deb, or use the AppImage for auto-update.
Patch notes (1.2.7)
Features
- Faster live detection — two-phase check: cheap page probe first, then yt-dlp only when needed; fixed 20s check interval (no longer user-configurable)
- Smarter end detection while recording — probe first; full yt-dlp only when the page looks offline (less hammering YouTube mid-stream)
- Reliable app close (X) — shows a please-wait status window, stops downloads, moves files to your recordings folder, then exits
- Best quality lives —
bestvideo*+bestaudio/bestwith format sorting suited to live HLS; bundled yt-dlp 2026.07.23 nightly for current YouTube - Cleaner filenames —
YYYY-MM-DD-HH-MM - Stream Title.mkv(strips YouTube’s trailing clock from titles; no random suffix)
UX
- Cookies hint: only needed for members-only / age-restricted streams
- Separator between settings and Start/Stop Monitoring
- Remove channel mid-recording still saves the segment, then drops that channel (no auto-resume)
- Progress line shows the file name only (not full
Destination:path)
Reliability
- Hybrid save path so Stop/close does not double-copy the same segment to the NAS
- Live-check queue, monitor re-entrancy guard, log prune on day roll, clearer WARN/ERROR text for testers
- FFmpeg live HLS fix (
allowed_extensions) for current stream URLs
Notes
- Prefer Stop Monitoring or wait for the close status window to finish before force-killing the process
- If a save fails, use Help → Open Logs Folder and look for WARN/ERROR lines
Full history: see CHANGELOG.md in the project repository.
Notes
- 64-bit only (no macOS build)
- First-time Windows installs may need SmartScreen “Run anyway”
- Release version 1.2.7 (filenames do not include the version number)