Save a YouTube live stream from its available beginning

By

Save a YouTube livestream from the part YouTube still has, catch up to live, and keep a checked MP4 with Broadcast Keep on your Mac.

You joined a YouTube livestream late, and you want the file to include the start, not only the minutes after you pressed record. YouTube does not always keep the whole broadcast available. The part it still serves can be saved. The part it has already dropped cannot.

Broadcast Keep has a from-beginning mode for that. You choose it before you paste the link. The app asks YouTube for the history that is still available, catches up toward the live edge, and, when you stop, merges and checks an MP4.

Record only a stream you own or are allowed to save. Your own live presentation is the docs’ example. The app does not give you rights to someone else’s broadcast.

Current-point recording, the install in more detail, and a stream that only plays while you are signed in are covered in Record a YouTube live stream on your Mac. This one stays on from-beginning: the catch-up line, the stop, and what “available” means.

What you need

Broadcast Keep needs macOS 14 or later. The download runs on Apple silicon and Intel. After you buy it, download the ZIP from your Polar receipt, unzip it, and drag Broadcast Keep to Applications. The app page says the build is signed with an Apple Developer ID and a stapled notarization ticket, and that you enter the license key from the receipt. That page also says the app checks once a day and installs new versions in place. The docs also say you can download the latest zip from the receipt yourself. The recording tools are not part of that app update. You install them with Homebrew.

If Homebrew is new, start with the Homebrew guide. Then:

brew install yt-dlp ffmpeg deno

yt-dlp reads the stream. FFmpeg merges or remuxes the media, and it includes ffprobe, which checks duration and output. Deno is the JavaScript runtime the recording workflow uses. If ffmpeg is missing later, the usual message and the fix are in ffmpeg was not found.

Open Broadcast Keep. If a tool is missing, install it and click Check Again. The app looks on your PATH and in common Homebrew and user install locations. There is no Broadcast Keep account, no backend, and no analytics. The mode, the folder, and the browser choice are stored on the Mac. The recording stays in the folder you pick.

The steps below match the Broadcast Keep docs.

Choose the beginning before you paste

From-beginning mode is a setting, not something you can apply after the file already exists. Current-point mode records from the moment you paste. From-beginning mode asks YouTube for the earlier part that is still available, then catches up toward live. If you paste first, the recording starts on whatever mode is already selected. The app remembers the mode, so a previous current-point session will stay on current point until you change it.

Under Start recording, choose the available beginning. The window on the app page shows that choice with the line “Asks YouTube for the available stream from its beginning.”

Start recording: From beginning
Save to: Choose… a folder with free space
YouTube sign-in: the browser where the stream already plays
YouTube livestream URL: paste, or press Return

Under Save to, click Choose… and pick a folder with room to spare. The destination defaults to your Movies folder. The page’s screenshot uses a folder the user chose, /Users/admin/Movies/Livestreams/. Fragments and the final MP4 both land there while the file is finished, so a tight disk fills up before Recording saved appears.

Under YouTube sign-in, select the browser where you are signed into YouTube. Be signed in before you start. macOS may ask permission to read that browser’s cookies. The app stores the browser choice, not the cookie values. Approve that access only if you want yt-dlp to use the session.

The page’s recording is a fictional surf cam. A stand-in served it locally, and FFmpeg still merged and checked the files. The labels in the window are the ones you use on a real stream you are allowed to save.

Watch catch-up, then stop

Paste the livestream URL into YouTube livestream URL. Recording starts after the URL is validated. Return in the field does the same thing. The label beside the field is Paste to start.

Example 1: catch up, then record live

The fictional surf cam on the app page is the from-beginning run. After validation the status moves from preparing to recording. In this mode the window also follows catch-up toward the live edge. The screenshot’s status line says it has caught up and is recording live, with captured media time, elapsed time, a percent, and a download rate beside it. Captured time can move faster than the clock while the earlier part is still downloading. Eighteen seconds on the clock and half an hour captured is that situation, not a broken timer.

Expand Recording details if you want the recent lines. The screenshot includes this one:

[youtube] tdp7SurfCam: Downloading the stream from its beginning (33 minutes available)

That “33 minutes available” is the length YouTube still offered for that example, not a promise about your stream. A two-hour broadcast can report a shorter window. You get that window, then the live edge. You do not get the minutes the service has already dropped.

Save a livestream from the available beginningChoose from the beginning, a folder, and your YouTube browser. Paste the URL. Broadcast Keep downloads the history YouTube still has, catches up to live, and on Stop merges and verifies the MP4.Some of itNone of itFrom beginning,folder, browserPaste the livestreamURLYouTube still hashistory?Catch up toward liveThe dropped partcannot be savedStop RecordingFinishing recordingRecording savedReveal in Finder

Stop, then wait for the checked file

Catch-up filling the file is not the same as a file you can archive. Stop ends the download. The app still has to merge or remux what it captured, then ffprobe checks duration and output. The docs name that pause Finishing recording. Quit during it and you are left with fragments in the destination folder, which the docs say to keep until a finished MP4 checks out. The page says an interrupted recording keeps the usable media and checks the output before it reports success. That check is the difference between Recording saved and a pile of pieces.

Click Stop Recording when you have what you need. Leave the app open while Finishing recording is on screen. That step still has to merge or remux the captured media and verify the MP4. Quitting here is how a usable capture stays as fragments instead of a file you can play.

When Recording saved appears, click Reveal in Finder. The saved screenshot shows that button next to Record Another, and a file name that starts with the date. Open the MP4 and check the beginning and the end before you move it to an archive. The beginning should be the earliest part YouTube still had, which the details line reported. The end should be about where you pressed stop.

The same screenshot’s details include:

[download] Interrupted by user, finishing the recorded fragments
[download] 369 fragments saved

The page says an interrupted recording keeps the usable media and checks the output before it reports success. Those lines are that finish step on the example. Other lines in the same log name extra files in the destination folder. Keep fragments until you have played the MP4. The docs say an interrupted recording may leave them, and your normal backups should cover the destination folder.

Record Another clears the link so the next paste starts clean. The folder, the mode, and the browser stay as you left them.

Use a signed-in browser for a closed stream

A public URL can still be the wrong session. Members-only videos, unlisted team streams, and anything that only plays after you log in need the browser that is actually signed in. yt-dlp reads that browser’s local YouTube cookies. If the stream does not play in the browser you picked, the recording will not get it either.

Example 2: a stream that only plays in one browser

This is the same from-beginning choice as the surf cam, on a stream you are allowed to archive that does not play until you are signed in. Switch YouTube sign-in to the browser where that stream already plays. The page’s screenshot has Safari selected, with the note “Be signed into YouTube in this browser. macOS may ask for permission to read its cookies.” If your working login is in a different browser, pick that one. The docs don’t list every browser in the menu. They tell you to select the one where you are signed in.

Paste the URL only after the stream plays in that browser. From-beginning still means “the history YouTube will give this signed-in session”, not the whole clock time of the event. Catch-up, Stop Recording, Finishing recording, and Reveal in Finder are unchanged.

The app does not copy cookie contents into its preferences. It remembers which browser you picked. A later recording uses that browser again until you change it. Use a browser profile you trust.

Run the next one, and know the limit

The second run is Record Another, then a new URL. You do not reinstall the tools. You do not pick the folder again unless you want a different one. If the remembered mode is still From beginning, the next paste starts from the available beginning again. Switch to From current point when you only want the live edge. That remembered mode is why a “short” recording sometimes contains a long catch-up. Look at Start recording before you paste.

There is no undo for a part YouTube no longer provides. From-beginning cannot reconstruct it, and stopping the app does not put it back. Delete an MP4 you don’t want in Finder. That does not affect the live stream on YouTube. Cancel while the app is still preparing, before any video data has arrived, and the docs say it reports that the recording was cancelled. A failed attempt shows its error and a Try Again button.

The app page says FFmpeg merges or remuxes, and ffprobe checks duration and output, before success. That check is why Finishing recording has to finish. A file revealed early, from the fragments, is not the verified MP4.

Keep yt-dlp and the other two tools current. YouTube’s extraction changes, and the docs say updating yt-dlp and its dependencies can clear extractor errors. Those tools update on their own schedule, separate from the Broadcast Keep zip.

If something looks wrong

Example 3: the file starts late because YouTube dropped the opening

You asked for the beginning and the MP4 starts mid-event. Open Recording details and read the line about how many minutes were available. The page’s example says 33 minutes. Your line will name a different length. That length is the start of the file. The missing opening is gone. Record sooner next time, or keep a local backup while you go live. The app cannot fetch what the service no longer has.

If the status never leaves preparing, expand Recording details. A bad URL fails validation and does not start. Use the livestream’s own watch URL.

If Check Again still says a tool is missing, run yt-dlp, ffmpeg, and deno in Terminal. Install with the brew install line above, then click Check Again. The app only sees tools on PATH or in the Homebrew and user locations it searches.

If the stream plays in Chrome and the recording errors, the selected browser is probably a different login. Switch YouTube sign-in, confirm the stream plays there, and approve the cookie prompt if you want the tool to use that session.

If you clicked stop and the window still says Finishing recording, leave it. Merge and ffprobe are still running. Force-quitting now leaves fragments. The docs say to keep those until a finished MP4 checks out.

If Try Again appears, read the error in Recording details first. An extractor complaint is often a stale yt-dlp. Update it and its dependencies, then retry. Try Again repeats the attempt. It does not recover media YouTube has removed.

If the destination has extra media files after Recording saved, those can be the fragments the log named. Play the MP4 from Reveal in Finder before you delete anything next to it.

If macOS refused cookie access, the signed-in session was not used. Allow it for a stream that needs the login, or record a stream that plays while logged out, still only when you are allowed to save it.

Get Broadcast Keep

Record authorized live YouTube streams to local MP4 files, from the current point or the available beginning. Native Mac app and full source included.

See Broadcast Keep → · Read the docs · $20 including tax, with full source code.

More tutorials for my apps →

Want me to talk about your product? You can sponsor this site.