Например, когда кто-то вводит:
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);
Есть ли надежный способ получить доступные размеры миниатюр?
Я использовал резервный метод, который проверяет доступность разрешения миниатюр.
Вот простой пример:
Код: Выделить всё
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
Мобильная версия