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)