Итак, есть сайт, который требует вывод видео в формате ленты довольно крупных превью.
Крупных - 1280 точек в ширину, но меньшей чем обычно высоты.
Далее: берем модуль Video Embed Field, который позволяет просто скопировать ссылку и получить весьма простое для контент-редакторов добавление видеозаписей. Он же сам по себе собирает тамбиналы. Но сохраняет их не в нужном мне размере. Он проверяет наличие /0.jpg (оказывается, это и есть 480х360, а оригинал - /maxresdefault.jpg), и сохраняет их в разрешении 480х360 точек. Именно в таком размере он выводит их, если в выводе брать "Оригинальное изображение".
Кусок кода, отвечающий за забор превью-картинок:
<?php
/**
* Get the thumbnail url for youtube videos
*/
function video_embed_field_handle_youtube_thumbnail($video_url) {
$info = array();
$id = _video_embed_field_get_youtube_id($video_url);
//Playlist
if (stristr($id, '?list=')) {
//Strip out all but the ID, including the PL behind the ID.
$start = strpos($id, '?list=PL') + 8;
$length = strpos($id, '&') - $start;
$id = substr($id, $start, $length);
$info['id'] = $id;
//Playlist info is stored in XML. The thumbnail is in there.
$xml = drupal_http_request('http://gdata.youtube.com/feeds/api/playlists/' . $id);
if (!isset($xml->error)) {
$xml = new SimpleXMLElement($xml->data);
$media = $xml->children('http://search.yahoo.com/mrss/');
if ($media->group->thumbnail && $media->group->thumbnail[0]->attributes()) {
$attrs = $media->group->thumbnail[0]->attributes();
$info['url'] = (string) $attrs['url'];
}
}
}
//Regular video
elseif ($id) {
$info['id'] = $id;
$info['url'] = 'http://img.youtube.com/vi/' . $id . '/0.jpg';
}
return $info;
}
?>
Как можно сделать так, чтобы он брал те самые оригинальные 1280х720 точек и сохранял именно эту картинку?
Комментарии
тоже интересно, как вставить миниатюру с видео больше 480х360?
В моем вопросе есть ответ, заменяем /0.jpg на версию с большим разрешением.
Http лучше заменить на Https.
Плюсы - есть большие картинки. Минусы - картинки есть не у всех видео, особенно старых.
Кто может доработать код, чтобы при ненахождении скрипт брал /0.jpg? Найдете - пишите. Буду рад.
То есть файл /0.jpg заменить на любую картинку большого размера, и какого размера будет эта картинка, такие и будут миниатюры?
И подскажите где лежит эта картинка 0.jpg?
Подцепить код модуля или переписать в самом модуле участок кода, заменить /0.jpg на /maxresdefault.jpg
Как я уже писал в таком случае есть шанс что картинки макс-размера у видео не будет вообще.
Может кто в курсе, почему не формируются превью видео, если поле находится в collection?