Going by what's in the ffprobe report you posted, I would have used Program 2 for my download. That would mean -map 0:4 since it's the highest video resolution at 3840x2160. It's paired with -map 0:1 for the audio. But you can download any of them. For testing, you might go with the lowest resolution just to shorten the download time.
Yes, there appear to be 2 audio Streams. Some of the video Streams are paired with 0:0 & the rest with 0:1. Stream 0:0 shows bit rate 140 kb/s while 0:1 shows 255 kb/s. I would presume that means 0:1 has a higher fidelity sound. Whatever you download, you should use 2 Streams from the same Program.
In your 2 posts where you quote those ugly long URLs, you'll note that there is actually only 1 URL from each site. In the first case, there's the same URL repeated from adaptive & the same URL repeated from skyfire. In the second case, there's 4 occurrences of the same URL from adaptive & 3 from skyfire. So the total number of unique URLs you've provided in your 2 posts is actually only 4, even though it looks like you've supplied 11 URLs. This is what I usually see with these embedded Vimeo videos. I experimented with one video one time. I found that I got the same file downloaded from both sources, both adaptive & skyfire. I assumed all their content would be like that, but maybe that's not true. It certainly doesn't hurt to investigate both sources.
It is interesting that the json claims there are captions. You're using -strict experimental so ffprobe should show any captions that are there. But it didn't find any so I don't know what's up with that.
The 403 Forbidden error always needs a second try. You need to reload the page & find the manifest URL again. Reloading will generate new URLs. You need to do it as quickly as possible since these things expire. If you think you were fast enough twice in a row, then you can admit defeat. But you always need to try it twice before you give up.
I've mentioned I'm not a Linux guy. I'm assuming your .sh file is using the command environment on your system. I'm assuming the $ things are parametric substitutions. I have to trust that you're doing all that correctly. But I'm wondering about your 1> & 2> things. In Windows, those are redirects. And I'm not 100% certain but I believe you can't say 1> filename. It has to be 1>filename, no space. I think. I always code those without the space. But I'm surprised to see those in Linux. I didn't know they would work. I thought the > notation was purely a Windows thing. You educate me on that.
On Windows, only the 2> redirect ever collects anything from ffprobe & ffmpeg. 1>, 2>, my understanding is that it is a programmer choice what goes in each of these. Whoever wrote ffmpeg/ffprobe, chose to send output to 2>. I've seen other tools that put their output in 1>. I've seen things that put output in both redirects, one example being the dir command. The directory listing goes in one of the redirects & any error messages (there could be none) go in the other. I can't remember now which way round it goes so I always code both of them when I'm doing a dir on a directory with a lot of files. That habit spilled over to ffmpeg & that's why I always code them both. I've never seen either command put any output in 1> but it doesn't hurt to code it, so I do. Just being a little anal retentive, I guess.
I don't know why it's not working for you. If you can get an ffrobe report, that usually means ffmpeg will get that content. So I'm surprised.