Subtitles Subtitles Subtitles Script возвращает пустой файл .txt и сообщение «Нет текстовых узлов в XML»Javascript

Форум по Javascript
Ответить
Anonymous
 Subtitles Subtitles Subtitles Script возвращает пустой файл .txt и сообщение «Нет текстовых узлов в XML»

Сообщение Anonymous »

Я работаю над пользователем, который добавляет кнопку загрузки в видео на YouTube для экспорта английского субтитры в виде файла .txt. Идея состоит в том, чтобы принести трек подзаголовок в формате XML и извлечь узлы. Журналы консоли:
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»