Перейти к публикации

Вывод картинки-превью для видео с YOUTUBE и др. видеохостингов


Рекомендованные сообщения

Нашел в интернете код и немного инфы как якобы вставить в краткую новость, но ничего не получается, пишет "Неверный url". Сам файл, который якобы и считается модулем прикрепляю к теме. Помогите пожалуйста решить проблему или подскажите как по другому можно это организовать в DLE 9.2. Спасибо.

Цитирую строки:

Как известно, видеохостинги типа ютуба хранят картинки-превью к находящемуся у них видео. Необходимо использовать эти картинки при выводе краткой новости.

Нашел готовый код php. Из него сделал модуль vidprev.php:


<?php

if(!defined('DATALIFEENGINE')){die("Hacking attempt!");}


    if (preg_match("/<iframe.*?src=\"([^\"]+)\".*?><\/iframe>/i", $data, $matches)) {

	    $url = $matches[1];

    }

    if (preg_match("/<object.*?>.*?<param name=\"movie\" value=\"([^\"]+)\"( \/>|><\/param>).*?<\/object>/i", $data, $matches)) {

	    $url = $matches[1];

    }



    if (!is_string($url) || empty($url)) echo "Неверный url";

    $url = str_replace("&amp;", "&", $url);

    $arr = parse_url($url);

    $arr[host] = str_replace('www.', '', $arr[host]);

    $url = "";

    switch ($arr[host]) {

	    case 'rutube.ru':

		    if (preg_match("/\/tracks\/(.+)\.html/i", $arr[path], $matches)) {

			    $xml = simplexml_load_file("http://rutube.ru/cgi-bin/xmlapi.cgi?rt_mode=movie&rt_movie_id=".$matches[1]."&utf=1");

			    if ($xml) {

				    $url = (string) $xml->response->movie->thumbnailLink;

			    }

		    }

		    break;

	    case 'video.rutube.ru':

		    if (preg_match("/\/(.+)/i", $arr[path], $matches)) {

			    $s[0] = substr($arr[path], 1, 2);

			    $s[1] = substr($arr[path], 3, 2);

			    $url = "http://tub.rutube.ru/thumbs/".$s[0]."/".$s[1]."/".$matches[1]."-1-1.jpg";

		    }

		    //$url = "http://img-1.rutube.ru/thumbs/".$link[0].$link[1]."/".$link[2].$link[3]."/".$link."-2.jpg";

		    break;

	    case 'youtube.com':

		    if (preg_match("/\/(embed|v)\/(.+)\/?/i", $arr[path], $matches)) {

			    $url = "http://img.youtube.com/vi/".$matches[2]."/0.jpg";

		    }

		    break;

	    case 'player.vimeo.com':

		    if (preg_match("/\/video\/(.+)\/?/i", $arr[path], $matches)) {

			    $clip_id = $matches[1];

		    }

		    $xml = simplexml_load_file('http://vimeo.com/api/v2/video/'.$clip_id.'.xml');

		    if ($xml) {

			    $url = (string) $xml->video->thumbnail_medium;

		    }

		    break;

	    case 'vimeo.com':

		    parse_str($arr[query], $query);

		    $clip_id = $query['clip_id'];

		    $xml = simplexml_load_file('http://vimeo.com/api/v2/video/'.$clip_id.'.xml');

		    if ($xml) {

			    $url = (string) $xml->video->thumbnail_medium;

		    }

		    break;

	    default:

		    $url = "";

		    break;

    }

    echo "<img src='$url' />";

?>

Закинул его в engine/modules. В короткой новости прописал:

{include file="engine/modules/vidprev.php?&data=[xfvalue_video]"}

Так же пробовали выводить так: {include file="http://site.ru/engin...dprev.php?data=[xfvalue_video]"}

В доп поле video вставляю код ролика. Результат - вместо картинки пишет "Неверный url". В php не силен, может кто подскажет, что не так.

Изменено пользователем icebols
Ссылка на сообщение
Поделиться на других сайтах

{include file="engine/modules/vidprev.php?&data=[xfvalue_video]"}

Вы это прописали в шаблоне?

Да, прописывал 2-мя способами:

{include file="engine/modules/vidprev.php?&data=[xfvalue_video]"}

Так же пробовали выводить так: {include file="http://site.ru/engin...dprev.php?data=[xfvalue_video]"}

Вы пробовали, у вас работает?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...