Я знаю, что в их API есть метод video.get, который возвращает «элементы». массив, содержащий массив изображений предварительного просмотра различной ширины. Но в документах утверждается, что для его использования вам нужен «токен доступа пользователя», который можно получить с помощью «неявного потока» (похоже, это включает в себя открытие всплывающего окна и выполнение входа пользователя в ВК) или «поток кода авторизации» ( это со стороны сервера, но, насколько я могу судить, также предполагает вход пользователя в систему).
Я не хочу, чтобы пользователь входил в систему. И это должно быть быть каким-то образом, так как другие сайты, получающие миниатюры видео ВК, не требуют логина пользователя - например, Google во вкладке "Видео" показывает видео из ВК с миниатюрами. Другой пример — загрузчик миниатюр видео ВКонтакте ImgPanda, который получает миниатюру после того, как пользователь вводит URL-адрес видео ВКонтакте, после нескольких секунд ожидания и, по-видимому, без входа в систему.
Я сталкивался проект GitHub с миниатюрами видео, в котором есть некоторый PHP-код, который кажется актуальным. Похоже, что во встроенном в iframe видео ВКонтакте миниатюра представляет собой src тега img с идентификатором "player_thumb" (что я также убедился, проверив содержимое iframe с помощью инструментов разработчика в браузере).
Я бы предпочел использовать API, но решил попробовать следующий запрос GET с клиентом VSCode REST:
GET https://vk.com/video_ext.php ?oid=-135285&id=456240123&js_api=0
Это действительно работало две недели назад (он возвращал исходный код встраивания видео ВК), но теперь я получаю сообщение «413 Request Entity Too Large» .
Когда это работало, я написал небольшой код JavaScript+Regex, чтобы попытаться получить источник миниатюры:
Код: Выделить всё
function fetchVkThumbnail (oid,id) {
const vkThumbnailRegex = /background-image:url\((?.+\.jpg)\)/;
return fetch(`https://vk.com/video_ext.php?oid=-${oid}&id=${id}`)
.then(res => res.text())
.then((text) => {
const thumbnailSrc = text.match(vkThumbnailRegex).groups.thumbnail;
console.log(thumbnailSrc);
return thumbnailSrc;
});
}
Кроме того, я нашел интересное обсуждение о том, как работают openID и oAuth в ВК. Не уверен, что это актуально.
Подробнее здесь: https://stackoverflow.com/questions/785 ... -vkontakte
Мобильная версия