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

Программирование на jquery
Ответить
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
Ответить

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

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

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

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

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