Nodes, найденные в субтитрах xml. < /P>
Вот соответствующая часть кода: < /p>
Код: Выделить всё
async function exportSubtitlesToTxt() {
const videoId = new URLSearchParams(window.location.search).get("v");
const subtitleTrack = await getFirstEnglishTrack(videoId);
if (!subtitleTrack) {
alert("No subtitles found.");
return;
}
const { lang_code, name, kind } = subtitleTrack;
const encodedName = encodeURIComponent(name || '');
const kindParam = kind ? `&kind=${kind}` : '';
const subtitleUrl = `https://www.youtube.com/api/timedtext?lang=${lang_code}&v=${videoId}&name=${encodedName}${kindParam}`;
const res = await fetch(subtitleUrl);
const xml = await res.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xml, "text/xml");
const texts = Array.from(xmlDoc.getElementsByTagName("text"));
if (texts.length === 0) {
console.log("No nodes found in subtitles XML.");
}
const subtitles = texts.map(node => decodeHTMLEntities(node.textContent));
const fullText = subtitles.join("\n");
saveTextToFile(fullText, `subtitles-${videoId}.txt`);
}
Любая идея, почему узлы могут отсутствовать, даже если XML успешно загружается? Может ли YouTube делать что -то по -другому с треками субтитров?
Подробнее здесь: https://stackoverflow.com/questions/795 ... t-nodes-in
Мобильная версия