I've seen this on macOS and it seems to be caused by some videos being rendered in hardware.
A solution is to use javascript to create a canvas, draw the currebt video frame into the canvas, then show the canvas while you take the screenshot. That seems to force the video content to really get included in the webView properly and then it shows up in the screenshot.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags: