Мы создаем расширение chrome для загрузки видео, в настоящее время у меня есть эта функция:
function downloadvideo(video)
{
const url = URL.createObjectURL(video.captureStream());
const aelem = document.createElement('a');
document.body.appendChild(aelem);
aelem.setAttribute("href",url);
aelem.setAttribute("download","video.mp4");
aelem.click();
//URL.revokeObjectURL(url);
}
Здесь video
параметр - это элемент html5 video, я использую caputreStream
, потому что некоторые веб-сайты (особенно youtube) используют blob-url, которые явно отменены. Поэтому я создаю новый URL-адрес Blob из MediaStream
.
Функция выше выполняется как часть видео onloadeddata
.
Диалоговое окно отображается, и имя файла верное, но когда я нажимаю "Сохранить", хром говорит "не удалось: не удалось найти файл".
Итак, как это сделать на самом деле?
Кстати, я пытался сделать ajax против url
, но хром отказывается от сообщения: "Cross-origin поддерживается только для схем http, https, chrome, chrome-extension": 3.