Testei e funcionou,
import { conectaApi } from "./conectaApi.js";
import constroiCard from "./mostrarVideos.js";
async function buscarVideo(evento) {
evento.preventDefault();
const dadosDePesquisa = document.querySelector("[data-pesquisa]").value;
const busca = await conectaApi.buscaVideo(dadosDePesquisa);
const lista = document.querySelector("[data-lista]");
lista.innerHTML = '';
// Depois da lista vazia, irei inserir os elementos da lista que retornou com a busca.
busca.forEach(elemento => lista.appendChild(constroiCard(elemento.titulo, elemento.descricao, elemento.url, elemento.imagem)));
}
const botaoDePesquisa = document.querySelector("[data-botao-pesquisa]");
botaoDePesquisa.addEventListener("click", evento => buscarVideo(evento));
Para ser mais otimizado logo determinar a UL vazia do que exclui filho a filho, pois usa menos recurso de memória e não precisa processar todo o loop para obter o resultado, imagina uma lista gigante.
Não sei se foi ensinado dessa maneira para aprender como excluir filho a filho ou se é melhor de alguma maneira.