If you want to get some background on the techniques I used to figure this out, you need to read this thread:
https://groups.google.com/forum/#!topic/video-downloadhelper-q-and-a/8V2cRB-bcK4. I'm not going to rehash what I've explained at length there. Either you're interested or not. Either you're sufficiently technical to do this or not. I'm not going to intervene in this thread further.
I tried your example video
https://xhamster.com/videos/ibi-makienok-danish-tv-hostess-13701934 & it wouldn't download for me, either. So here's how I made it download. As in that other thread, I opened the monitor before visiting the page. As in the other thread, the first entry in the monitor was the master manifest. But looking at the manifest, I saw that the first entry looked damaged to me. Maybe it wasn't but that's how I interpreted it. So I fixed the entry. It's easy to figure out what's wrong with the first entry. Just look at all the other entries. They all begin with https:// and the name of the web site hosting the video. So I copy/pasted the missing bit from one of the entries that looked good onto the front of the first entry, which looked bad. Then I saved my modified manifest as Q:\PH\index.m3u8. Obviously, your drive letter & directory structure will almost certainly be different. Also, there's nothing special about the name index.m3u8. That's just the name I chose & it's the name I used on the invocation of ffmpeg. Then I tried executing ffmpeg directly from a little .Bat file (which I will include at the bottom of this post, but not here because it went through a few iterations before I hit upon the magic formula).
It failed. But ffmpeg logged an interesting error message. (The log is part of what I've got on my invocation of ffmpeg, which you can see at the bottom of this thread.) It said https is not on the protocol whitelist & then it listed the whitelist: file,crypto,data. I don't know what any of that means but I went hunting in the ffmpeg documentation-that-is-nearly-impossible-to-understand. You read it & you guess. You try stuff & it fails. You make some more guesses & try new stuff & it fails. You keep trying until something works. So anyway, I found mention of a parameter that whitelists protocols. So I added https to the whitelist.
It made no difference. So then I thought maybe I need to put the parameter in a different place on the command line. So I moved it. Progress. Now it complained about tls not being on the whitelist. So I added it. Progress. Now it complained about tcp not being on the whitelist. So I added it. Finally, success. I don't understand why this whitelist parameter is even necessary. The documentation claims all protocols are whitelisted by default. Apparently that is not the case, as proven by my experience here.
There is still an error message in the ffmpeg log. I don't understand why the error occurred. Something about "Cannot reuse HTTP connection for different host" and then it listed a web address. I don't know where that came from. The other web site isn't mentioned in the manifest & it's not xhamster, although it might be part of the xhamster server farm for all I know. In any case, the log appears to be showing ffmpeg taking some sort of evasive action & retrying whatever it was that failed. It succeeded on the second attempt.
And then it proceeded to download the video. Kind of a lame video, plus it's all in a language (Danish?) that I don't understand. But that's not the point. The point is that I got the video to download by correcting 2 errors:
Error #1: The first entry in the manifest appeared to be damaged.
Error #2: Some protocols needed to be whitelisted to ffmpeg before the download would occur.
I believe there is nothing VDH can do about a faulty manifest. The serving web site would need to be made aware of that sort of thing. You can't expect VDH to be able to correct faulty manifests. It's easy to see the error by eyeballing the manifest. But VDH is a computer program & has no eyeballs, to say nothing of human intelligence. Which may be artificial. But that's a philosophical argument for another forum.
As for the business of the whitelist, you need to understand something. VDH -- or more accurately, the CoApp -- comes with a "captive" version of ffmpeg. Michel has modified ffmpeg (I don't know in what ways) & that's the version the CoApp uses. Moreover, I would not be surprised to learn that Michel wrote the CoApp to supply ffmpeg with the whitelist I discovered by trial & error. In contrast, I am using a non-captive version of ffmpeg, as I talk about in that other thread in this Google Group. So I am probably reinventing the wheel a bit here. I would not be at all surprised if Michel were to read what I'm saying here & say, "Oh yeah. I know about that. The CoApp takes care of all that." That is, if he reads this. Which he may not. Which would be OK. You will see below that I have ffmpeg on my G-drive. Nothing special about that. Put it wherever you want & name the directory as you please. Just be sure to use the right path in whatever you end up running. Saying that I "installed" ffmpeg would be an exaggeration. I just unzipped the file I got, as detailed in the other thread. The only thing you need is ffmpeg.exe itself. The rest of the zip file includes the alleged so-called documentation & some sample programs that I have made no effort to understand or use.
All I can say is that I used the script below & it downloaded that video. I named the script "Get Video.Bat" & it is located in Q:\PH, which is where the manifest, the log file, & the resulting video all reside. I've got the pause command in my script so the command window will stay open long enough for you to look at it & see what messages might appear. Turns out that if you typed everything correctly, there won't be any. Everything goes in the log. And, of course, the resulting video. And oh by the way, I'm doing this on Windows. Windows 7 64-bit to be precise, but I don't think anything I've done is unique to Windows 7. I believe this will work on any version of Windows. I could be wrong. But I think it will work on any Windows. If you're using another platform, your script will have to be adapted to execute on your system. Sorry, I don't know any other systems. You're on your own there.
The thing you need to take away from this is the approach. Capture the master manifest & then improvise from there. This exact approach may or may not work for other videos & other web sites. It's the approach, the attitude, the mindset that you need to internalize. Every video that doesn't download will likely be its own case. What worked here may need tweaking to work in another situation. I took this on mostly as a philosophical & technical challenge. I'm feeling oh so smug that I managed to download this one. Your mileage may vary. My mileage will probably vary in another situation. But I'm not about to look at every single case of a video that failed to download. Either this discussion is educational for you or you need to just give up. I'm just another user. I'm not tech support. I don't work for VDH.
So here is "Get Video.Bat". There's 3 lines here. The invocation of ffmpeg is a single line. It's wrapped onto more than one line here on Google Groups because it's a long line. But it's only 1 line.
"G:\ffmpeg\ffmpeg-20200420-cacdac8-win64-static\bin\ffmpeg.exe" -protocol_whitelist file,crypto,data,https,tls,tcp -i "Q:\PH\index.m3u8" -codec: copy "Q:\PH\Video.mp4" 1>"Q:\PH\Get Video.Err" 2>"Q:\PH\Get Video.Log"
pause
exit