protected function scrapeAndKneadMedia(\DOMDocument $doc)
{
$fullpath = $this->tmpDir . '/OEBPS/assets';
$tags = array('source', 'audio', 'video');
foreach ($tags as $tag) {
$sources = $doc->getElementsByTagName($tag);
foreach ($sources as $source) {
if ($source->getAttribute('src') != '') {
// Fetch the audio file
$url = $source->getAttribute('src');
$filename = $this->fetchAndSaveUniqueMedia($url, $fullpath);
if ($filename) {
// Change src to new relative path
$source->setAttribute('src', 'assets/' . $filename);
} else {
// Tag broken media
$source->setAttribute('src', "{$url}#fixme");
}
}
}
}
return $doc;
}