public WARCRecordInfo getWarcRecordInfo(Page page, URI uri) throws IOException {
        WARCRecordInfo warcRecord = new WARCRecordInfo();

        warcRecord.setUrl(page.getFinalUrl());
        warcRecord.setRecordId(uri);
        warcRecord.setType(WARCRecordType.response);
        warcRecord.setMimetype(WARCConstants.HTTP_RESPONSE_MIMETYPE);

        // Store fetch times using ISO-8601 format
        Date fetchTime = createFetchTimeDate(page);
        warcRecord.setCreate14DigitDate(dateFormater.get().format(fetchTime));

        // Re-create response body based on content bytes and response headers
        byte[] contentBytes = createContentBytes(page);
        warcRecord.setContentLength(contentBytes.length);
        warcRecord.setContentStream(new ByteArrayInputStream(contentBytes));

        // Store ACHE-specific metadata as non-standard extension header fields
        if (page.getTargetRelevance() != null) {
            TargetRelevance targetRelevance = page.getTargetRelevance();
            warcRecord.addExtraHeader("ACHE-IsRelevant", String.valueOf(targetRelevance.isRelevant()));
            warcRecord.addExtraHeader("ACHE-Relevance", String.format("%.10f", targetRelevance.getRelevance()));
        }
        warcRecord.addExtraHeader("ACHE-Requested-URL", page.getRequestedUrl());

        return warcRecord;
    }
Returns Iterator of WarcReader

@return
@throws IOException
ache/src/main/java/achecrawler/target/repository/WarcTargetRepository.java