HttpRequest request = HttpRequest.newBuilder(uri) .header("Range", "bytes=" + start + "-" + end) .build(); Each chunk is written to a temporary file; a RandomAccessFile reassembles chunks in order. We implemented a prototype (JDK 17) and tested it on 20 random YouTube videos (10 under 10 minutes, 10 over 30 minutes). | Video Resolution | Stream Type | Avg