I have learned some things in the past couple of days that I believe will be useful for others. When I say learned, I mean it was all discovery on my part. I didn't read any documentation on this. I gather there is some. But I decided to do my usual thing. What happens if I click this? What's inside here? What does this thing do? Guessing. Improvising. Trial & error. You really should try it some time. It's the best way to learn. Don't be afraid. What's the worst that could happen? Something just doesn't do anything? Is that so terrible? This is really what everybody should be doing. Then you would answer your own questions more often than not.
In this thread over here:
https://groups.google.com/g/video-downloadhelper-q-and-a/c/ppuouJJcK4MA fellow user was having a problem getting VDH to download something. We weren't communicating until he posted some screenshots of what he was doing. It turned out he was trying to record a YouTube livestream. VDH is known to have problems with YouTube livestreams. You can find a handful of discussions in this forum on the subject. They are not recent at all. The problems were that VDH didn't record the livestreams properly, and worse, your system would go into a coma. If you were super patient, you could wait it out, after reloading the extension (VDH) then disabling it. Your system would come out of its coma after maybe an hour.
But that's a bit of a detour. The main point here is that the livestream mentioned in that other thread is a perfect vehicle for showing some new ideas here.
This story begins with a preliminary step. Go to the YouTube home page. This has to be the first time you've visited this page since you opened your first browser window. If you've been to this page in this browser session before, close all your browser windows & start over. This is important, & I will eventually get to why. Click in the search field at the top. Move the mouse cursor to the bottom of the screen, off the browser window. This is important. The mouse cursor must not be positioned over any of the YouTube content. Type in "le media" as the search key. Press Enter. When I did it, I got this. YouTube being what it is, every page changes all the time. So when you do this search, what you find will likely be similar to what I'm showing here but not identical. The differences will be unimportant.

Now scroll the page down a short way. You should find this livestream. When I generated this search results page, the livestream was the fourth clickable item on the page, after one of those "+8 more" things you see all the time on YouTube search results pages. Next, open our best friend the Network Monitor, same as what I did upthread here.

It's empty. That's what you should expect at this point. It is critically important that up to this point, the mouse cursor should be parked off the browser window.
At this point, I was going to click that link for the livestream. So I moved my mouse up into position . . . and stopped cold.

Ignore the blue arrows for the moment. I'll get to those.
Holy cow! You can see I was still hovering my mouse over the link. You can see the tooltip that hovered up. I never did actually click the link at this point, or at any other point in the rest of this story. I just sat there & marveled at the extremely annoying behavior of YouTube. I hadn't done anything yet. Why are they inundating me with all this junk? I might not click that link. Maybe I just want to read the tooltip. Some of these titles are long & the tooltip shows you what isn't immediately visible. I'm amazed that even at this late date, I am still discovering brand new reasons to hate YouTube.
But on a hunch, I figured YouTube was preloading the web page I was about to possibly or possibly not go visit. That means that maybe -- I was still guessing at this point -- maybe that json with the name player was already here in my Network Monitor.
Now pay attention to the blue arrows. Drag the top edge of the Network Monitor up as far as it will go. Yes, completely cover the YouTube web page. We're not going to be interested in anything there for the rest of this little story. So just make the Network Monitor as big as it can get so we can get a good view of what's in it.
At the same time, click the column heading for Type, to get the objects in the Network Monitor sorted into some kind of rational sequence.
Now scroll around in the Network Monitor until you bring the group of json objects into view.

Ignore the blue arrow there for the moment.
Well look at that! A player json. Maybe this is why so many YouTube pages are missing their player json. When you click a link on a search results page, it's like visiting the page for a SECOND time. You might have thought it was your first time. But YouTube, in its infinite wisdom, knows so much better than any of we stupid users do about how to browse web pages. Maybe this is why I so often have to fall back to the log_event approach I describe upthread. I have explained that if you reload a YouTube web page, it loses its player json. The same thing happens if you close a given YouTube page, & you're now revisiting it DURING THIS BROWSER SESSION. This is why I said above that you have to be doing all of this for the first time in THIS browser session. It's all about the elusive player json. This is the file we want the most. The log_event thing is a suboptimal, if workable, second choice, a fallback approach. The first choice is always the player json. So you have to be careful that you're doing things for the first time in THIS session. Otherwise, your player json will disappear & I have not discovered a reliable way to get it back short of cycling the browser.
Now pay attention to the blue arrow there. You want to drag the right side of the Network Monitor window into the middle of the display, more or less.

This brings a whole new area of the Network Monitor into view. Some of you may be snickering at me for being so dumb. You may have already known about this area. So sue me. I didn't. I'm slow. Senility, in my case, isn't creeping, it's galloping. I am discovering things that have always been there but I've never known about & never realized how useful they could be. Once you have that right side pulled into view, click the Response heading indicated by the blue arrow.
Now, this stuff looks interesting. What if we start poking around in here?

I'm just hovering my mouse over that area. The tooltip -- the HUGE tooltip -- that comes up is just an echo of the URL under the mouse cursor. The cursor does change as if that's a clickable link. But I tried it. It's not. So switch mouse buttons.

Ignore the black circle for the moment.
Now we've got a context menu popping up. I've tried the Copy All option. It gives a lot of stuff, more than we need. Copy Value is as much as we need.
The two items I've put in black boxes should be about jumping off the page at you. These are THE MOST USEFUL things you can get from a web page from which you want to download a video. In other words, we just hit the jackpot.
Back to Copy Value. It's not too much to expect that you already guessed that this puts something into your system clipboard. Now swap tasks over to your text editor & do a paste.

All the way at the bottom of what you pasted you'll find our 2 manifest URLs ripe for the picking. What do you do with master manifests? You should know from the many other threads I've posted in here. You run a master manifest through ffprobe. And most unusually, we have our choice of DASH & HLS master manifests here. Like I said. Jackpot.
I've got the output from both ffprobe invocations captured in attached file ffprobe French Livestream Manifests.txt. Two ffprobes, one output file. The first ffprobe report, the one for the DASH master manifest, is rather interesting. It shows 6 video Streams for mp4 video tracks of various resolutions. The h264 & avc1 labels tell us that these are of type mp4. Then it shows 6 video Streams for mkv video tracks of the same set of resolutions. The vp9 label tells us that these are of type mkv. Remember this. This says these are of type mkv. I'll mention this again below. Finally, we've got 2 Audio streams, one of bitrate 64,000, the other of bit rate 144,000. That means the second one is of a higher quality. Maybe that will be noticeable in a download. This is a livestream of a TV news channel. The emphasis is on talk, not music. Quality of audio content is not of the highest importance here. Since these are the only audio tracks here, I guess they are equally compatible with either mp4 or mkv. The mp4a label says they are audio mp4, which is equivalent to mp3. I don't know what exactly HE-AAC & LC mean. I suppose I should look that up at some point. Not knowing that, however, doesn't stop us from using this stuff.
I must point out that this structure of multiple video tracks sharing common audio tracks is something that has historically tripped up VDH. At the minimum, this structure causes VDH to offer separate video & audio tracks on its menu. Worst case is VDH recognizes nothing or downloads one of those too-fast things that needs to be repaired. But this is YouTube & Michel has written special code into VDH to handle this particular variation on the DASH theme. DASH as it occurs on other sites is currently beyond VDH's capabilities. Currently. I believe Michel is working on this. I don't know it for a fact. It's just that we've discussed it & it seems to be in his consciousness now, so that's a step. Just don't hold your breath waiting for proper support for DASH streams on other sites to appear in a new VDH.
The second ffprobe report, the one for the HLS master manifest, is kind of boring. Useful, but as these things go, boring. It's a simple set of 6 paired audio & video Streams of type mp4. This is the kind of master manifest that VDH has always handled properly.
So let's download this sucker. How? With ffmpeg, of course. Why not with VDH? Because, like I said earlier, VDH historically has problems with YouTube livestreams. VDH also does not reliably stop a download from the blue dot status menu. Sometimes it works, and you get a playable file. Sometimes it fails, & gives you a junk file that might be repairable, but that's still an untested possibility. Besides, this is a livestream. As a test, I didn't want to record hours upon hours of it. I just wanted 5 minutes. You can't tell VDH to record a livestream for any given duration. You can't tell it to download something that isn't a livestream for any duration, either. But it's a standard feature of ffmpeg.
Since the HLS master manifest contains only mp4 videos, I decided to use the DASH manifest to download one of its mkv videos with ffmpeg. I used a second invocation of ffmpeg to download one of the mp4 videos from the HLS master manifest. Those results are in attached files French Livestream via DASHmkv Log.txt and French Livestream via HLSmp4 Log Filtered.txt. What I filtered out of the full HLS log was a bunch of lines showing ffmpeg skipping stuff. Manifests, especially manifests for livestreams, regularly contain lines that ffmpeg doesn't need. But it dutifully reports each such line as it's skipping it. Bloat. I've filtered those out.
You'll note that the HLS download ran from 16:18 through 16:23, during which it recorded 5 minutes of the livestream. The DASH download ran from 16:20 through 16:22, during which it also recorded 5 minutes of what anybody would assume is the same live stream. So logic would dictate that the two result files show at least some of the same content.
Why oh why do I still at this stage of my life continue to make the egregious error of applying logic to a situation? The 2 files I recorded have NOTHING in common. They show completely different people in the 2 videos discussing completely different topics. The only things they had in common were that they played fine with video & audio, and they lasted 5 minutes.
Now how could that be? It's a livestream & I was recording the same livestream 2 different ways. Well, it must not have been the same livestream. At least, I must not have been recording the same part of the livestream in each operation. I don't know why that is. If somebody can enlighten me, I'd welcome it. I have always been under the impression that when ffmpeg got thrown into a livestream, it recorded from that moment forward, barring other things you could do. These 2 downloads overlapped. Why didn't they get the same thing?
I will point out something that might be relevant, although I still can't say these things totally explain my results. In each ffprobe report as well as each ffmpeg download there is a line like this:
Duration: N/A, start: 17131642.927667, bitrate: N/A
Duration: N/A is exactly what you expect with a livestream. You don't know how long it's going to last. So nobody can say what its duration might be. But the interesting thing is the start value. I believe that is a number expressed in milliseconds. It is my understanding that it expresses the current location of the measurement relative to the start of the livestream. Each ffprobe & each ffmpeg shows a different value for start. The number here is taken from the ffprobe of he DASH manifest. If I've got this right, that tells us that the stream had been in progress for about 4 hours & 45 minutes when I poked my nose in.
But the start reported in the ffprobe of the HLS manifest is 62312.450278, barely over an hour after the start of the livestream. That is way, way, way different.
The start values in the 2 ffmpegs are in the ballpark with their respective ffprobes, a bit later in each case. That at least makes some sense. What doesn't make sense is why the HLS manifest points so far back in the livestream. I think the DASH stream was probably much closer to "now," meaning around 16:20 my time in the afternoon. I guess that partly explains why the 2 videos were completely different. They were extracted from different moments in the livestream. But it doesn't explain why the HLS manifest didn't also point to "now."
The 2 ffmpegs ran at 2 wildly different download speeds. The DASH recording . . . It was a recording, not a download. It was getting what was being broadcast at the moment. That's a bit of a guess because I never did actually look in on the livestream. It got 5 minutes' worth of the program in under 2 minutes, at a speed of a little under 330,000 bytes per second. That's a bit faster than the usual throttling to 50% of the duration of the content. Not a lot faster, just a bit. But if it was recording live content, why didn't it take 5 minutes to get 5 minutes of content? I don't have an answer.
On the other hand, the HLS download . . . It was a download, not a recording. It was downloading something that was being held as an archival record of what had been broadcast about 3 hours before I came along. But it got 5 minutes of the livestream in 4:52. That would lead you to conclude it has to be a live recording. But the start value says otherwise. I have to say I'm stumped. Its speed was only about 140,000 bytes per second. But that's all it takes to broadcast a livestream. Look at the bitrates for the HLS mp4. They're pretty low. It doesn't take much bandwidth to broadcast such relatively low quality video. The Golf Channel stuff I have streamed usually requires on the order of 700,000 to 900,000 bytes per second. I'm not knocking this French broadcast. I'm just making observations. The picture quality of the livestream was perfectly acceptable. The DASH mkv reports only one bitrate, but it's, frankly, pitiful. Nevertheless, it looked OK when I played it in VLC. Maybe bitrates don't measure quality the same way for mkv as for mp4. I honestly don't know. Then again, we're not talking about a feature movie in a theater. It's a news broadcast. The expectations, the standards against which to measure it, are different.
The mystery remains why the HLS manifest pointed into the past while the DASH manifest pointed at the present. Also, why the DASH recording acted like a download while the HLS download acted like a recording. Mystery upon mystery . . .
For the sharp-eyed among you, you might notice a couple of ffmpeg parameters on the HLS download that don't appear on the DASH download. Initially, I coded both -m3u8_hold_counters 25 and -max_reload 25 on the DASH recording. But ffmpeg said it didn't recognize them & refused to execute, so I pulled them off & it worked. I'm not entirely sure why. Those parameters are meant to control how long a livestream recording lingers after the livestream ends. I don't know why they didn't work on the DASH recording. I don't understand why they were rejected. They were accepted for the HLS download, which doesn't make sense. It was a download so I can see how they would not be necessary. On the other hand, they were superfluous there since I was limiting the length of the recording to 5 minutes with -t 00:05:00. Maybe those 2 parameters are not permitted with mkv. I honestly don't know. And the ffmpeg documentation is so execrably bad, I'm not even going to look for an answer in there.
There is one ffmpeg parameter that would level the playing field. -live_start_index 0 would tell the download to begin from whenever the livestream began. If I had coded that on both invocations of ffmpeg, I'm sure I would have gotten the same 5 minutes of video twice, both from the start of the livestream. It's a tricky thing with livestreams. When do they begin? In this particular case of a TV station in France, maybe it began 10 or 15 years ago, whenever they first went on the air. They appear to be a 24x7 service. Obviously, their server doesn't hold an archival copy of every second they have ever broadcast. It looks like they do hold at least the most recent 4 hours. But how do they manage that? Do they incrementally throw away stuff so they only ever keep 4 hours into the past? Do they maybe keep up to 6 hours & then throw all of that away & start a new stream? Some other approach? I ask these questions just to make you aware that rewinding a livestream to the start (-live_start_index 0) should not be taken for granted.
Also, because they do broadcast 24x7, their stream never ends. With VDH being so unreliable about terminating an inflight download, I always hesitate to use VDH for something like this. If you can use another method, like for example ffmpeg, I think that is preferable.
I speak French. But I was able to make out only 1 word in 10 or 15 of what these people were saying. But these are people in France. They just don't pronounce the language like I'm used to hearing it. I'm used to Martin McGuire & Dany Dubé who are the French language radio announcers for the Montreal Canadiens hockey games. That's my hometown team. That's the kind of French I can understand.