I've launched the recording of today's round of golf at 14:49. It's running now. I
remembered to open the debug console. Yay! I expect this will fail in a couple of hours.
In the meantime, I've noticed some things about the manifest NBC gives us here. I've
attached it for you to analyze along with me. I've also attached 2 screenshots of the
VDH menu this is giving me. It took 2 screenshots because I had to scroll it.
At the top of the manifest there's #EXT-X-MEDIA:TYPE=CLOSED-CAPTIONS. VDH doesn't
process captions, subtitles, call them what you will. That's fine. This entry in the
manifest does NOT contain a URL so VDH couldn't do anything with it anyway. Which is
moot because these are closed captions. In other words, the captions are embedded in the
media. They are not a separately downloadable entity. In ffmpeg's notation, a stream
(let's say for program 2) would consist of stream 2:0 of video, 2:1 of audio, & 2:2 of
closed captions. VDH would simply see this as part of the stream it's downloading. VDH
wouldn't process this in any way. It would just include that data in whatever it is
saving to my hard drive. I wouldn't have to do anything about it. When it comes time to
play the resulting MP4 in VLC, I could turn the captions on & off at will. They would
not be a separate file. Since the captions are not their own stream, I question why
there is even an entry in the manifest for them. Maybe the video player embedded in the
Golf Channel web page uses it in some way. Nevertheless, this entry contains the
identifier GROUP-ID="cc". Every subsequent entry in the manifest refers back to these
captions with the reference CLOSED-CAPTIONS="cc". This is not information that VDH can
act upon. It must be something used by the embedded video player.
There's a number of entries in the manifest for #EXT-X-I-FRAME-STREAM-INF. In the big
opera thread
https://groups.google.com/g/video-downloadhelper-q-and-a/c/8V2cRB-bcK4
I did find out what these I-FRAME things are. There's a link in there to an external
location where I had a conversation with somebody who seemed to know what they're for. I
refer you to that. VDH should ignore these I-FRAME things, and it does. They are not
streams usable by the end user. Unfortunately, the manifest is littered with these
things so you need to concentrate on blocking them out of your consciousness.
Then we come to the information VDH can use. I see entries for the following resolutions:
1920x1080, 1280x720, 1024x576, 896x504, 640x360, 512x288, 384x216, 256x144
That's 8 resolutions. But look at the VDH menu. There's 16 variants being offered.
This is double what's correct. Why?
Here's my speculation on what the problem is. If you look carefully, for each resolution
there's actually TWO #EXT-X-STREAM-INF entries. You can link them together by both their
RESOLUTION parameter values as well as their BANDWIDTH parameter values. But look
closely at the first entry of each pair. It does NOT contain a URL. It is NOT a stream
descriptor. The second entry of each pair is a stream descriptor. I believe VDH is
mistakenly interpreting the first #EXT-X-STREAM-INF descriptor in each pair and
ERRONEOUSLY placing an entry for it in the VDH menu. It's noise. It's a duplicate. The
value in the exp parameter of the first entry in each pair appears to be the same as the
URL that appears as part of the second entry of each pair. Well, not quite the same.
The exp value in the first of each pair doesn't start with https:// like the second of
each pair does. But I say these are duplicates & shouldn't be cluttering up the VDH
menu. As a test, I launched the download of the duplicate of the 1920x1080 stream I had
started about an hour earlier. I was a bit surprised to discover that it actually
launched. VDH must do something with the exp parameter value to make it work. This
second download is no doubt cluttering up the debug console. Sorry about that.
But this reminds me of something I see with nearly every video on YouTube. I typically
see a bunch of entries on YouTube that VDH puts in its menu as simply MP4. There's no
resolution, no duration, no file size. The VDH menu entry says simply MP4. Often as
not, attempting to download one of these things results in an immediate error. I'm
wondering if that's another manifestation of what I'm seeing here with NBC. I can't tell
because I haven't found any m3u8 manifests on YouTube so I don't know how you figure out
what to do on YouTube. This is why I'm guessing.
I'd be most interested to hear your take on this. Am I analyzing this right or am I
completely wrong?
Oh. My second download of what I believed was a duplicate stream just completed. I
guess what I thought would be clutter in the debug console is not clutter after all.
It's probably helpful to note that this download terminated at 15:59. There's an error
in the debug console right then. I don't understand it. Maybe it means something to
you. Anyway, I have an MP4 that took 21 minutes to download, is 2.18G, duration 1:34:57,
resolution 1920x1080, frame rate 30fps. It starts with about 54 minutes of the usual
"Coverage will begin shortly" & then there's actual program content, which lasts only
about 40 minutes. Obviously, this is wrong. My first download is still in progress,
which is encouraging for the moment. Also, this is once again, same as yesterday, a 3
hour broadcast window. This clip of only 40 minutes clearly isn't what I should be
getting. It's playable, looks & sounds just fine, but it's only a fragment of what I'm
trying to get. It will be interesting to see what happens with the download that
continues as I write this. It's approaching 90 minutes & continues normally . . . so
far. These streams are of the type that won't play in VLC while the download is in
progress. Some downloads can play in VLC while the download is still running, but this
one happens to not be like that. I'd be curious to know if there's some way you can tell
without trying it whether you'll be able to chase play a download during the download.
In any case, since I can't play it yet, I'm assuming the download still in progress is
going along normally.