Как извлечь URL-адрес миниатюры YouTube с помощью JavaScript?Javascript

Форум по Javascript
Anonymous
Как извлечь URL-адрес миниатюры YouTube с помощью JavaScript?

Сообщение Anonymous »

Я пытаюсь извлечь миниатюры видео YouTube прямо в браузере.
Например, когда кто-то вводит:
https://youtubeimgdownloader.com/
Я хочу, чтобы миниатюра автоматически отображалась без использования API YouTube.
Вот что я пробовал:

Код: Выделить всё

const url = "https://www.youtube.com/watch?v=abcd1234";
const videoId = url.split("v=")[1];
const thumbnailUrl = `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg`;
console.log(thumbnailUrl);

Он работает для большинства видео, но иногда файл maxresdefault.jpg не существует.
Есть ли надежный способ получить доступные размеры миниатюр?
Я использовал резервный метод, который проверяет доступность разрешения миниатюр.
Вот простой пример:

Код: Выделить всё

async function getBestThumbnail(videoId) {
const resolutions = ['maxresdefault', 'sddefault', 'hqdefault', 'mqdefault'];
for (const res of resolutions) {
const img = new Image();
img.src = `https://img.youtube.com/vi/${videoId}/${res}.jpg`;
const exists = await new Promise(resolve => {
img.onload = () => resolve(true);
img.onerror = () => resolve(false);
});
if (exists) return img.src;
}
return null;
}

// Usage:
const url = "https://www.youtube.com/watch?v=abcd1234";
const id = url.split("v=")[1];
getBestThumbnail(id).then(console.log);

Этот подход позволяет найти лучшее доступное изображение.
Вы можете протестировать эту логику в своем браузере или в онлайн-песочнице. если у вас есть другие, предложите, чтобы получить более точные результаты?

Подробнее здесь: https://stackoverflow.com/questions/797 ... javascript

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